Diskuze: Inject kláves do procesu, Macro do aplikace
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 11 zpráv z 11.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Zkoušel jsi funkci SendInput? Takhle nějak by to mělo fungovat, vstupem je virtuální kód, hodnoty lze dohledat v dokumentaci k WinAPI.
bool simulovat_klavesu(WORD vk) noexcept
{
INPUT ki[2];
ZeroMemory(&ki, sizeof(ki));
ki[0].type = INPUT_KEYBOARD;
ki[0].ki.wVk = vk;
ki[1].type = INPUT_KEYBOARD;
ki[1].ki.wVk = vk;
ki[1].ki.dwFlags = KEYEVENTF_KEYUP;
UINT ui = SendInput(2, ki, sizeof(INPUT));
return (0 != ui)
}
Radek Chalupa
www.radekchalupa.cz
Nebo zkus SetWindowsHookEx s WH_JOURNALPLAYBACK, ale nebude to úplně snadné řešení.
Děkuji za tip. Zkusím zprovoznit touto cestou. SendInput jsem nezkoušel. Nepřipadal mi zrovna, že by se chtěl se mnou kamarádit =)
Mohu se zeptat v jaká je to knihovně? používám windows.h;
Nevypadá to že by se tomu chtělo fungovat.
Input was not declared in this scope.
#define WINVER 0x0500
#include <windows.h>
nefakčí i tak
někdo nějakou radu?
V zásadě teď řeším jen a pouze funci sendInput. Zkoušel jsem snad
všechno na co jsem narazil na internetu. Visual studio 2017 com. verze.
kod:
#define _WIN32_WINNT 0x0400
// bzw. gleich
#define _WIN32_WINNT 0x0501 // WinXP
#define _WIN32_WINNT 0x0500
#include <conio.h> .
#include <windows.h>
#include "pch.h"
#include <iostream>
int main()
{
// This structure will be used to create the keyboard
// input event.
INPUT ip;
// Pause for 5 seconds.
Sleep(5000);
// Set up a generic keyboard event.
ip.type = INPUT_KEYBOARD;
ip.ki.wScan = 0; // hardware scan code for key
ip.ki.time = 0;
ip.ki.dwExtraInfo = 0;
// Press the "A" key
ip.ki.wVk = 0x41; // virtual-key code for the "a" key
ip.ki.dwFlags = 0; // 0 for key press
SendInput(1, &ip, sizeof(INPUT));
// Release the "A" key
ip.ki.dwFlags = KEYEVENTF_KEYUP; // KEYEVENTF_KEYUP for key release
SendInput(1, &ip, sizeof(INPUT));
// Exit normally
return 0;
}
Je to tam celkem naprasený.
+Zkoušel jsem kompilovat i v Codeblocks. Input není deklarován. Furt to
stejné dokola
Já z toho nemůžu. Ten samý soubor dnes otevřu a najednou funguje. Ono si to žije vlatním životem. No každopádně to najednou fakčí.
Zobrazeno 11 zpráv z 11.