コード例 #1
0
void keyPressTilde() {

	ip.ki.wVk = 0xC0; // virtual-key code for the key
	ip.ki.dwFlags = 0;
	SendInput(1, &ip, sizeof(INPUT));

	ip.ki.dwFlags = KEYEVENTF_KEYUP; // KEYEVENTF_KEYUP for key release
	SendInput(1, &ip, sizeof(INPUT));
};
コード例 #2
0
ファイル: common.cpp プロジェクト: lenny93/TouchEnabler
void CommonAPI::MouseClick()
{
    inputMouse.mi.dwFlags = (MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTDOWN);
    SendInput(1, &inputMouse, sizeof(INPUT));

    Sleep(10);

    inputMouse.mi.dwFlags = (MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTUP);
    SendInput(1, &inputMouse, sizeof(INPUT));
}
コード例 #3
0
void MouseClick()
{
    mouseBuffer.mi.dwFlags = (MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTDOWN);
    SendInput(1, &mouseBuffer, sizeof(INPUT));

    Sleep(10);

    mouseBuffer.mi.dwFlags = (MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTUP);
    SendInput(1, &mouseBuffer, sizeof(INPUT));
}
コード例 #4
0
void MouseClick(INPUT *buffer)
{
	buffer->mi.dwFlags = (MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTDOWN);
	SendInput(1, buffer, sizeof(INPUT));

	Sleep(10);

	buffer->mi.dwFlags = (MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTUP);
	SendInput(1, buffer, sizeof(INPUT));
}
コード例 #5
0
BOOL WINAPI pausePlayMediaEnumProc(HWND hwnd, LPARAM lParam)
{	
	if (hwnd == msgWindow ||
		!IsWindowVisible(hwnd))
	{
		return true;
	}

	int length = GetWindowTextLength(hwnd) + 1;
	char* titleBuff = new char[length];
	GetWindowText(hwnd, titleBuff, length);

	UINT count = sizeof(mediaCommands) / sizeof(mediaCommands[0]);
	for (UINT i = 0; i < count; i++)
	{
		if (strstr(titleBuff, mediaCommands[i].title) > 0)
		{
			mediaEnumInput* input = (mediaEnumInput*)lParam;
			input->hasChangedVolume = true;

			if (input->simulatePause && mediaCommands[i].button == NULL)
			{
				KEYBDINPUT kb = {};
				kb.wVk = VK_MEDIA_PLAY_PAUSE;
				kb.dwExtraInfo = GetMessageExtraInfo();

				INPUT input = {};
				input.type = INPUT_KEYBOARD;
				input.ki = kb;

				SendInput(1, &input, sizeof(INPUT));
				
				kb.dwFlags = KEYEVENTF_KEYUP;
				SendInput(1, &input, sizeof(INPUT));
			}
			else
			{
				LONG windowStyles = GetWindowLong(hwnd, GWL_EXSTYLE);
				LONG windowStyleNoActive = windowStyles | WS_EX_NOACTIVATE;

				SetWindowLong(hwnd, GWL_EXSTYLE, windowStyleNoActive);
				SendMessage(hwnd, WM_ACTIVATE, WA_ACTIVE, 0);
				SendMessage(hwnd, WM_KEYDOWN, mediaCommands[i].button, 0);
				SendMessage(hwnd, WM_KEYUP, mediaCommands[i].button, 0);
				SendMessage(hwnd, WM_ACTIVATE, WA_INACTIVE, 0);
				SetWindowLong(hwnd, GWL_EXSTYLE, windowStyles);
			}

			break;
		}
	}

	delete[] titleBuff;
	return true;
}
コード例 #6
0
void keyPressBackslash() {

	ip.ki.wVk = 0xBF; // virtual-key code for the key
	ip.ki.dwFlags = 0;
	SendInput(1, &ip, sizeof(INPUT));

	Sleep(500);

	ip.ki.dwFlags = KEYEVENTF_KEYUP; // KEYEVENTF_KEYUP for key release
	SendInput(1, &ip, sizeof(INPUT));
};
コード例 #7
0
ファイル: _global.cpp プロジェクト: cdaze/akt
void LeftClick()
{
    INPUT Input= {0};
    Input.type=INPUT_MOUSE;
    Input.mi.dwFlags=MOUSEEVENTF_LEFTDOWN;
    SendInput(1, &Input, sizeof(INPUT));
    ZeroMemory(&Input, sizeof(INPUT));
    Input.type=INPUT_MOUSE;
    Input.mi.dwFlags=MOUSEEVENTF_LEFTUP;
    SendInput(1, &Input, sizeof(INPUT));
}
コード例 #8
0
ファイル: VirtualMouse.cpp プロジェクト: arkandius/bot
// Generate a mouse right click based on hardware.
void VirtualMouse::generate_right_click()
{
	mouse_event.mi.dx = 0;
	mouse_event.mi.dy = 0;

	mouse_event.mi.dwFlags = MOUSEEVENTF_RIGHTDOWN;
	SendInput(1, &mouse_event, sizeof(mouse_event));

	mouse_event.mi.dwFlags = MOUSEEVENTF_RIGHTUP;
	SendInput(1, &mouse_event, sizeof(mouse_event));
}
コード例 #9
0
void KeyboardKeyPress(WORD vKey)
{
	keyboardBuffer.ki.wScan = MapVirtualKey(vKey, MAPVK_VK_TO_VSC);
	keyboardBuffer.ki.wVk = vKey;
	keyboardBuffer.ki.dwFlags = 0;
	SendInput(1, &keyboardBuffer, sizeof(INPUT));

	Sleep(10);

	keyboardBuffer.ki.dwFlags = KEYEVENTF_KEYUP;
	SendInput(1, &keyboardBuffer, sizeof(INPUT));
}
コード例 #10
0
// Uses SendInput to emulate a keyboard press
void PressKeyboardKey(char key){
	    INPUT ip;
	    ip.type = INPUT_KEYBOARD;
	    ip.ki.wVk = key;
	    ip.ki.wScan = 0;
	    ip.ki.dwFlags = 0;
	    ip.ki.time = 0;
	    ip.ki.dwExtraInfo = 0;
	    SendInput(1, &ip, sizeof(INPUT));
	    ip.ki.dwFlags =  KEYEVENTF_KEYUP;
        SendInput(1, &ip, sizeof(INPUT));	
}
コード例 #11
0
void GTKeyboardDriver::keyRelease(GUITestOpStatus &os, int key, int modifiers)
{
    GT_CHECK(key != 0, " Error: key = 0 in GTKeyboardDriver::keyRelease()");

    if (modifiers) {
        INPUT input = getKeyEvent(modifiers, true);
        SendInput(1, &input, sizeof(input));
    }

    INPUT input = getKeyEvent(key, true);
    SendInput(1, &input, sizeof(input));
}
コード例 #12
0
void keyMouse::applyKeys(){
	INPUT eventPress = {0};
	INPUT eventRelease = {0};
	bool send = false;

	//Check if there is anything new to press
	for(std::vector<std::string>::size_type i = 0; i != buttons.size(); i++) {
		//if in buttons and not in buttonsOld press it
		if(!(std::find(buttonsOld.begin(), buttonsOld.end(), buttons[i]) != buttonsOld.end())){
			// buttonsOld does not contain buttons[i] so press the button
			if(buttons[i].find("KEY") != std::string::npos){
				pressKey(eventPress, bmap[buttons[i]]);
				send = true;
			}else if(buttons[i].find("MOUSE") != std::string::npos){
				pressMouse(eventPress, bmap[buttons[i]]);
				send = true;
			}else if(buttons[i].find("MOTION") != std::string::npos){
				send = false;
				processMotionPress(buttons[i]);
			}
			if(send == true){
				SendInput( 1, &eventPress, sizeof( eventPress ) );
			}
		}
	}

	//Check if anything that was pressed last time is now unpressed
	for(std::vector<std::string>::size_type i = 0; i != buttonsOld.size(); i++) {
		//if in buttonsOld and not in buttons release it
		if( !(std::find(buttons.begin(), buttons.end(), buttonsOld[i]) != buttons.end())) {
			// buttons does not contain buttonsOld[i] so release the button press
			if(buttonsOld[i].find("KEY") != std::string::npos){
				releaseKey(eventRelease, bmap[buttonsOld[i]]);
				send = true;
			//	std::cout << " ReleaseKey: " << buttonsOld[i] << "\n";
			}else if(buttonsOld[i].find("MOUSE") != std::string::npos){
				releaseMouse(eventRelease, bmap[buttonsOld[i]]);
				send = true;
				//std::cout << " ReleaseMouse: " << buttonsOld[i] << "\n";
			}else if(buttonsOld[i].find("MOTION") != std::string::npos){
				send = false;
				processMotionRelease(buttonsOld[i]);
			}
			if(send == true){
				SendInput( 1, &eventRelease, sizeof( eventRelease ) );
			}
		}
	}
	buttonsOld = buttons;
	//clear the vector
	buttons.clear();
}
コード例 #13
0
void KeyPresser::sendKeys(int numKeys, int keys[MAX_KEYS]) {
    int i;
    for (i=0; i<numKeys; i++) {
        input.ki.wVk = keys[i];
        input.ki.dwFlags = KEYPRESS;
        SendInput(1, &input, sizeof(INPUT));
    }
    for (i=numKeys-1; i>=0; i--) {
        input.ki.wVk = keys[i];
        input.ki.dwFlags = KEYEVENTF_KEYUP;
        SendInput(1, &input, sizeof(INPUT));
    }
}
コード例 #14
0
ファイル: main.cpp プロジェクト: aust/Bejeweled-Bot
// SendInput: http://msdn.microsoft.com/en-us/library/ms646310(VS.85).aspx
// INPUT: http://msdn.microsoft.com/en-us/library/ms646270(v=VS.85).aspx
void MouseLeftClick()
{
	INPUT input = { 0 };
	input.type = INPUT_MOUSE;
	input.mi.mouseData = 0;
	input.mi.dx =  0;
	input.mi.dy = 0;
	input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
	SendInput(1, &input, sizeof(input));

	input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
	SendInput(1, &input, sizeof(input));
}
コード例 #15
0
ファイル: relax.cpp プロジェクト: Dabraleli/OsuBot-3.0
void Relax::ReleaseButtons()
{
    if(Button1.Pressed && Time > Button1.ReleaseAt)
    {
        SendInput(1, &Button1.ReleaseButton, sizeof(INPUT));
        Button1.Pressed = false;
    }
    if(Button2.Pressed && Time > Button2.ReleaseAt)
    {
        SendInput(1, &Button2.ReleaseButton, sizeof(INPUT));
        Button2.Pressed = false;
    }
}
コード例 #16
0
ファイル: main.cpp プロジェクト: arielivandiaz/WinAPI
void LeftClick()
{
    puts("LEFT CLICK");
    INPUT    Input= {0};												// Crear la esturctura de INPUT

    Input.type        = INPUT_MOUSE;									// Decimos que vamos a usar el mouse
    Input.mi.dwFlags  = MOUSEEVENTF_LEFTDOWN;							// Establecemos el evento como  apretar el boton izquierdo
    SendInput( 1, &Input, sizeof(INPUT) );								// Enviamos los cambios de INPUT

    ZeroMemory(&Input,sizeof(INPUT));									// Borramos los datos de estructura INPUT
    Input.type        = INPUT_MOUSE;									// Decimos que vamos a usar el mouse
    Input.mi.dwFlags  = MOUSEEVENTF_LEFTUP;								// Establecemos el evento como soltar el boton izquierdo
    SendInput( 1, &Input, sizeof(INPUT) );								// Enviamos los cambios de INPUT
}
コード例 #17
0
bool keyReleaseWindows(int key, int modifiers = 0, bool extended = false)
{
	DRIVER_CHECK(key != 0, " Error: key = 0 in GTKeyboardDriver::keyRelease()");

	if (modifiers) {
		INPUT input = getKeyEvent(modifiers, true);
		SendInput(1, &input, sizeof(input));
	}

	INPUT input = getKeyEvent(key, true, extended);
	SendInput(1, &input, sizeof(input));

	return true;
}
コード例 #18
0
void KeyboardSimuliator::Sendchar(char c)
{
	INPUT ip;
	ip.type = INPUT_KEYBOARD;
	ip.ki.wScan = 0;
	ip.ki.time = 0;
	ip.ki.dwExtraInfo = 0;
	ip.ki.wVk = c;
	ip.ki.dwFlags = 0; // 0 for key press
	SendInput(1, &ip, sizeof(INPUT));
	ip.ki.dwFlags = KEYEVENTF_KEYUP;
	SendInput(1, &ip, sizeof(INPUT));
	Sleep(1); 
}
コード例 #19
0
ファイル: main.cpp プロジェクト: arielivandiaz/WinAPI
void RightClick()
{
    puts("RIGHT CLICK");
    INPUT    Input= {0};

    Input.type        = INPUT_MOUSE;
    Input.mi.dwFlags  = MOUSEEVENTF_RIGHTDOWN;							// Establecemos el evento como  apretar el boton derecho
    SendInput( 1, &Input, sizeof(INPUT) );

    ZeroMemory(&Input,sizeof(INPUT));
    Input.type        = INPUT_MOUSE;
    Input.mi.dwFlags  = MOUSEEVENTF_RIGHTUP;							// Establecemos el evento como soltar el boton derecho
    SendInput( 1, &Input, sizeof(INPUT) );
}
コード例 #20
0
ファイル: wf_input.c プロジェクト: FreeRDP/FreeRDP
BOOL wf_peer_extended_mouse_event(rdpInput* input, UINT16 flags, UINT16 x, UINT16 y)
{
	if ((flags & PTR_XFLAGS_BUTTON1) || (flags & PTR_XFLAGS_BUTTON2))
	{
		INPUT mouse_event;
		ZeroMemory(&mouse_event, sizeof(INPUT));
		mouse_event.type = INPUT_MOUSE;

		if (flags & PTR_FLAGS_MOVE)
		{
			float width, height;
			wfInfo* wfi;
			wfi = wf_info_get_instance();

			if (!wfi)
				return FALSE;

			//width and height of primary screen (even in multimon setups
			width = (float) GetSystemMetrics(SM_CXSCREEN);
			height = (float) GetSystemMetrics(SM_CYSCREEN);
			x += wfi->servscreen_xoffset;
			y += wfi->servscreen_yoffset;
			mouse_event.mi.dx = (LONG)((float) x * (65535.0f / width));
			mouse_event.mi.dy = (LONG)((float) y * (65535.0f / height));
			mouse_event.mi.dwFlags = MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE;
			SendInput(1, &mouse_event, sizeof(INPUT));
		}

		mouse_event.mi.dx = mouse_event.mi.dy = mouse_event.mi.dwFlags = 0;

		if (flags & PTR_XFLAGS_DOWN)
			mouse_event.mi.dwFlags |= MOUSEEVENTF_XDOWN;
		else
			mouse_event.mi.dwFlags |= MOUSEEVENTF_XUP;

		if (flags & PTR_XFLAGS_BUTTON1)
			mouse_event.mi.mouseData = XBUTTON1;
		else if (flags & PTR_XFLAGS_BUTTON2)
			mouse_event.mi.mouseData = XBUTTON2;

		SendInput(1, &mouse_event, sizeof(INPUT));
	}
	else
	{
		wf_peer_mouse_event(input, flags, x, y);
	}

	return TRUE;
}
コード例 #21
0
//does not work
void SendKeyPress2( int code )
{
    INPUT ip;
    ip.type = INPUT_KEYBOARD;
    ip.ki.wScan = 0;
    ip.ki.time = 0;
    ip.ki.dwExtraInfo = 0;
	ip.ki.wVk = 0; 
	ip.ki.wScan = MapVirtualKey( 0x12, MAPVK_VK_TO_VSC);
	ip.ki.dwFlags = KEYEVENTF_SCANCODE; // 0 for key press
	SendInput(1, &ip, sizeof(INPUT));
	Sleep( SLEEP_BETWEEN_KEYPRESS );
	ip.ki.dwFlags = KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP; // KEYEVENTF_KEYUP for key release
	SendInput(1, &ip, sizeof(INPUT));
}
コード例 #22
0
ファイル: C2ZDlg.cpp プロジェクト: xfgryujk/CheatingTutorial
//定时模拟按下Z
void CALLBACK CC2ZDlg::timerProc(HWND hWnd, UINT nMsg, UINT nTimerid, DWORD dwTime)
{
	if ((GetKeyState('C') & (1 << 15)) != 0) // C键按下
	{
		INPUT input;
		ZeroMemory(&input, sizeof(input));
		input.type = INPUT_KEYBOARD;
		input.ki.wVk = 'Z';
		input.ki.wScan = MapVirtualKey(input.ki.wVk, MAPVK_VK_TO_VSC);
		SendInput(1, &input, sizeof(INPUT)); // 按下Z键
		Sleep(100); // 可能东方是在处理逻辑时检测一下Z键是否按下才发弹幕,如果这时Z键刚好弹起就没有反应,所以要延迟一下
		input.ki.dwFlags = KEYEVENTF_KEYUP;
		SendInput(1, &input, sizeof(INPUT)); // 弹起Z键
	}
}
コード例 #23
0
//does not work
//http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731%28v=vs.85%29.aspx
void SendKeyPress1( int code )
{
    INPUT ip;
    ip.type = INPUT_KEYBOARD;
    ip.ki.wScan = 0;
    ip.ki.time = 0;
    ip.ki.dwExtraInfo = 0;
//			ip.ki.wVk = 0x45; // E
	ip.ki.wVk = 0x12; // Alt
	ip.ki.dwFlags = 0; // 0 for key press
	SendInput(1, &ip, sizeof(INPUT));
	Sleep( SLEEP_BETWEEN_KEYPRESS );
	ip.ki.dwFlags = KEYEVENTF_KEYUP; // KEYEVENTF_KEYUP for key release
	SendInput(1, &ip, sizeof(INPUT));
}
コード例 #24
0
ファイル: KeyboardSystem.cpp プロジェクト: AranHase/ipgm
	void KeyboardSystem::pressNumber(const uint8_t N) {
		memset(&input_, 0, sizeof(INPUT));
		input_.type = INPUT_KEYBOARD;
		input_.ki.dwFlags = 0;
		input_.ki.wVk = 0x30 + N;
		SendInput(1, &input_, sizeof(INPUT));

		std::this_thread::sleep_for(this->sleep_time_);
		memset(&input_, 0, sizeof(INPUT));
		input_.type = INPUT_KEYBOARD;
		input_.ki.dwFlags = KEYEVENTF_KEYUP;
		input_.ki.wVk = 0x30 + N;
		SendInput(1, &input_, sizeof(INPUT));
		std::this_thread::sleep_for(this->sleep_time_);
	}
コード例 #25
0
ファイル: InputProcessor.cpp プロジェクト: HughP/keymagic
void sendKeyStrokes (std::wstring * s, bool noInternalActions = false)//Send Keys Strokes
{
	HWND hwnd = GetFocus();

	int cInputs = s->length() * 2;

	INPUT * ip = new INPUT[cInputs];

	for(int i=0, ii=0; i < s->length(); i++, ii++){
		ip[ii].type = INPUT_KEYBOARD;
		ip[ii].ki.dwExtraInfo = 0xDEADC0DE;
		ip[ii].ki.dwFlags = KEYEVENTF_UNICODE;
		ip[ii].ki.time = 0;
		ip[ii].ki.wScan = s->at(i);
		ip[ii].ki.wVk = 0;
		//SendInput(1, &ip, sizeof(INPUT));

		ii++;

		ip[ii].type = INPUT_KEYBOARD;
		ip[ii].ki.dwExtraInfo = 0;
		ip[ii].ki.dwFlags = KEYEVENTF_KEYUP | KEYEVENTF_UNICODE;
		ip[ii].ki.time = 0;
		ip[ii].ki.wScan = s->at(i);
		ip[ii].ki.wVk = 0;
		//SendInput(1, &ip, sizeof(INPUT));
	}

	int cSent = SendInput(cInputs, ip, sizeof(INPUT));
	Debug(L"cInputs=%d, cSent=%d\n",cInputs, cSent);

	if (noInternalActions == false) {
		InternalEditor.AppendText(s->c_str(), s->length());
	}
}
コード例 #26
0
ファイル: main.c プロジェクト: vgalnt/reactos
/***********************************************************************
 *
 *           OSK_ReleaseKey
 *
 *  Release the key of ID wCommand
 */
BOOL OSK_ReleaseKey(WORD ScanCode)
{
    INPUT Input;
    BOOL bExtendedKey;
    LONG WindowStyle;
    HWND hWndControl;

    /* Is it a 2-states key ? */
    hWndControl = GetDlgItem(Globals.hMainWnd, ScanCode);
    WindowStyle = GetWindowLongW(hWndControl, GWL_STYLE);
    if ((WindowStyle & BS_AUTOCHECKBOX) != BS_AUTOCHECKBOX) return FALSE;

    /* Is the key down ? */
    if (SendMessageW(hWndControl, BM_GETCHECK, 0, 0) != BST_CHECKED) return TRUE;

    /* Extended key ? */
    if (ScanCode & 0x0200)
        bExtendedKey = TRUE;
    else
        bExtendedKey = FALSE;
    ScanCode &= 0xFF;

    /* Release the key */
    Input.type = INPUT_KEYBOARD;
    Input.ki.wVk = 0;
    Input.ki.wScan = ScanCode;
    Input.ki.time = GetTickCount();
    Input.ki.dwExtraInfo = GetMessageExtraInfo();
    Input.ki.dwFlags = KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP;
    if (bExtendedKey) Input.ki.dwFlags |= KEYEVENTF_EXTENDEDKEY;
    SendInput(1, &Input, sizeof(Input));

    return TRUE;
}
コード例 #27
0
ファイル: datahandler.cpp プロジェクト: Nauscar/TcpClient
void DataHandler::sendKey(int vkey)
{
    INPUT* key = new INPUT;
    key->type = INPUT_KEYBOARD;
    key->ki.wVk = vkey;
    key->ki.dwFlags = 0;
    key->ki.time = 0;
    key->ki.wScan = 0;
    key->ki.dwExtraInfo = 0;

    SendInput(1,key,sizeof(INPUT));

    key->ki.dwExtraInfo = KEYEVENTF_KEYUP;

    SendInput(1,key,sizeof(INPUT));
}
コード例 #28
0
    virtual bool injectKeyEvents( const std::vector<KeyEventDesc> & intputlist)
    {
        if (!intputlist.size()) return false;


        INPUT * inputs = new INPUT[intputlist.size()];
        
        do
        {
            for (int pos=0; pos<intputlist.size(); ++pos)
            {
                inputs[pos].type = INPUT_KEYBOARD;
                inputs[pos].ki.wVk = intputlist[pos].keyval;
                
                if (intputlist[pos].type == KEY_EVENT_PRESSED) {
                
                    inputs[pos].ki.dwFlags =  0;
                } else {
                    inputs[pos].ki.dwFlags =  KEYEVENTF_KEYUP;
                }
                
                inputs[pos].ki.time = 0;
            }

            SendInput(intputlist.size(), inputs, sizeof(INPUT));

        }while(0);


        delete [] inputs;

        return true;
    }
コード例 #29
0
void SharedMemoryTracker::updateOrientation()
{
	OutputDebugString("Motion Tracker updateOrientation\n");

	if(getOrientation(&yaw, &pitch, &roll) == 0)
	{
		yaw = fmodf(yaw + 360.0f, 360.0f);
		pitch = -fmodf(pitch + 360.0f, 360.0f);

		deltaYaw = yaw - currentYaw;
		deltaPitch = pitch - currentPitch;

		// hack to avoid errors while translating over 360/0
		if(fabs(deltaYaw) > 4.0f) deltaYaw = 0.0f;
		if(fabs(deltaPitch) > 4.0f) deltaPitch = 0.0f;

		mouseData.mi.dx = (long)(deltaYaw*multiplierYaw);
		mouseData.mi.dy = (long)(deltaPitch*multiplierPitch);
		
		OutputDebugString("Motion Tracker SendInput\n");
		SendInput(1, &mouseData, sizeof(INPUT));

		currentYaw = yaw;
		currentPitch = pitch;
		currentRoll = (float)( roll * (PI/180.0) * multiplierRoll);			// convert from deg to radians then apply mutiplier
	}
}
コード例 #30
0
ファイル: NotInScreensave.cpp プロジェクト: winwingy/MyTool
void SimulateKeyboard()
{
    INPUT inputKeyboard = {0};
    inputKeyboard.type = INPUT_KEYBOARD;
    inputKeyboard.ki.wVk = VK_F24;//键盘上没有的按键
    SendInput(1, &inputKeyboard, sizeof(inputKeyboard));
}