Avatar billede loproc Praktikant
06. oktober 2006 - 08:35 Der er 7 kommentarer

SendMessage med VK_MENU

Hejsa

Jeg har brug for en stump kode der sender ALT+F9 til et vindue, og det skal være via SendMessage (ie. ikke keybd_event el. lign.). Jeg har prøvet med følgende:

procedure TForm1.Button1Click(Sender: TObject);
var win: HWnd;
begin
  Win := HWndGet(Edit1.Text);
  SendMessage(Win, WM_KEYDOWN, VK_MENU, 0);
  SendMessage(Win, WM_KEYDOWN, VK_F9, 0);
  SendMessage(Win, WM_KEYUP, VK_F9, 0);
  SendMessage(Win, WM_KEYUP, VK_MENU, 0);
end;

Det virker bare ikke. Applikationen jeg forsøger at sende til "modtager" kun F9, men uden ALT... Jeg har også forsøgt med ALT+F for at aktivere "Filer" menuen i notepad, men det virker heller ikke. Bruger jeg derimod keybd_event så fungerer det fint, men den "trykker" jo tasten ned globalt... Det her må kun være for det enkelte vindue, da det er noget multi-user halløj.

Håber nogen kan hjælpe
Martin Kruse Jensen
Avatar billede vallemanden Nybegynder
06. oktober 2006 - 09:46 #1
har du prøvet  SendMessage(Win, WM_KEYDOWN, VK_MENU+VK_F9, 0);
Avatar billede loproc Praktikant
06. oktober 2006 - 10:03 #2
Hjælper heller ikke :( Har også prøvet at AND'e dem
Avatar billede psycosoft-funware Nybegynder
07. oktober 2006 - 10:07 #3
har ikke lige delphi ved hånden så denne er ikke testet:
SendMessage(Win, WM_KEYDOWN, VK_LALT + VK_F9, 0);

:)
Avatar billede loproc Praktikant
09. oktober 2006 - 08:00 #4
Ikke noget der hedder VK_LALT
Avatar billede kroning Nybegynder
09. oktober 2006 - 08:23 #5
Der ser ud til at der måske kan være en løsning her men der kræver et abo. for at se løsningen. Jeg har prøvet koden og det virker næsten, jeg kan få notepad til at reagere på ALT men mangler så F tasten.
http://www.experts-exchange.com/Programming/Programming_Platforms/Win_Prog/Q_20981129.html

Mht. tallene for lParam og wParam så står det beskrevet i win32 api hjælpen.
Avatar billede loproc Praktikant
09. oktober 2006 - 09:42 #6
Kan du give et eksempel på hvordan du får notepad til at reagere på ALT tasten? Har læst den lange tråd igennem og prøvet en masse ting af, men uden success
Avatar billede loproc Praktikant
09. oktober 2006 - 11:10 #7
Hmmm, jeg tror jeg er kommet problemstillingen lidt nærmere... Jeg kan nemlig nu godt sende [ALT]+[Enter] til vinduet (som er af ConsoleWindowClass typen, altså et konsol vindue) og så bliver det fullscreen. Måske problemet er at jeg sender til vinduet, og ikke applikationen? Det skal siges at jeg godt kan få F9 igennem uden ALT...
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester