20. september 2001 - 17:00Der er
13 kommentarer og 1 løsning
SendMessage HURTIGT
Davs
Jeg skal sende nogle bogstaver / tastetryk til et andet program, f.eks. kør-menuen (kun et eksempel, det er ikke den :)). Jeg har prøvet at gøre det sådan: SendMessage(HWND_BROADCAST, WM_KeyDown, 69, 0); SendMessage(HWND_BROADCAST, WM_KeyUp, 69, 0);
I min forvirring har jeg også prøvet at gøre det på en lokal memo, men det virker heller ikke. Formen kan godt fange tasten, der kommer en keydown med key = 69 (formens keypreview = true og 69 = VK_E) men den bliver ikke printet i memoen. Hvad går der galt?
WM_KeyDown indeholder ikke bare tastens kode, men også nogle bits af forskellig betydning (i det 2. parameter). I delphi er den simpel, men ikke i Windows. Du kan se det i hjælpen hvis du trykker F1 på WM_KeyDown.
Prøv at skrive 1179649 i det andet parameter, i dit eksempel (med E). Det er den kode min Windows kommer frem til når jeg trykker E en enkelt gang.
jeg har nu altså liiidt svært ved at se hvordan et program med tastaturgenveje kan have noget at gøre med at simulere tastetryk.... er du helt sikker på at det er den rigtige source :))
Hvis andre har forslag så ligger problemet stadig i det her kode: memo1.setFocus(); SendMessage(Memo1.handle, WM_KeyDown, 69, 1179649); SendMessage(Memo1.handle, WM_KeyUp, 69, 1179649); eller varianter af den. den får sendt beskederne, men de returnerer 0 og der bliver ikke skrevet noget i memoen.....
Har stadig ikke fået det rigtige program af borrisholt.... jeg fik et til noget andet (windows-tastatur-genveje), men det hjalp ikke rigtigt.... nogen forslag?
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.