jeg kan godt finde vinduet med FindWindow har en test med et tekst dokument men har et lille problem... jeg kender ikke den fulde tekst på vinduet :S den skifter nemlig... hvad kan jeg gøre
PostMessage(HLTVWnd, WM_KEYDOWN, 'q', 'q'); PostMessage(HLTVWnd, WM_KEYUP, 'q', 'q'); hvordan får jeg den til og skrive bokstaver.... det der funker nemlig ikke så godt :S
Følgende konsol app ser ud til at virke. Du kalder det ved at angive (dele af) titlen på det vindue der skal modtage taste trykkene som første parameter (brug "" hvis der er mellemrum i titlen) og de tegn der skal sendes som anden parameter (evt i ""), der skal bruges STORE bogstaver, de modtages som små bogstaver.
int main(int argc, char *argv[]) { char MyTitle[1024]; if(argc != 3) { fprintf(stderr, "Usage: %s windowtitle keystosend\n", argv[0]); return EXIT_FAILURE; } /* First get my window handle */ GetConsoleTitle(MyTitle, sizeof(MyTitle)); Me = FindWindow(0, MyTitle);
EnumWindows(EnumWinProc, (LPARAM )argv[1]); if(DestWin) { int i; /* Set focus to dest window, to do that we have to Attatch to it's input queue */ DWORD OtherThreadId = GetWindowThreadProcessId(DestWin, 0); DWORD MyThreadId = GetCurrentThreadId(); AttachThreadInput(MyThreadId, OtherThreadId, TRUE); SetFocus(DestWin); for(i = 0; argv[2][i] != 0; i++) { keybd_event(argv[2][i], 0, 0, 0); keybd_event(0, 0, KEYEVENTF_KEYUP, 0); } /* Put me back in focus, detatch for the other window */ SetWindowPos(Me, HWND_TOP, 0, 0, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE | SWP_NOMOVE); SetFocus(Me); AttachThreadInput(MyThreadId, OtherThreadId, FALSE); return EXIT_SUCCESS; } return EXIT_FAILURE; }
projektet droppet... programmet jeg vilde kalde var dårligt lavet så det gik hele tiden kold
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.