Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   problem mit sendmessage (https://www.delphipraxis.net/117057-problem-mit-sendmessage.html)

SimStar001 10. Jul 2008 20:52


problem mit sendmessage
 
Hallo, nachdem ich nun das WindowHandle herausgefunden habe, wollte ich ne Taste an das programm senden mittels sendmessage


hier mal der code:
Delphi-Quellcode:
wnd := FindWindow('Afx:00400000:0',nil);
  try

  sendMessage(wnd, WM_KEYDOWN, VK_F10,0);

    except
      showmessage('nicht funktioniert');
    exit;
    end;
ja nur leider passiert nix im programm, er gibt mir nicht aus dass es nicht funktioniert, aber er reagiert auch nciht auf die taste.


was mache ich falsch!?

Dunkel 10. Jul 2008 20:56

Re: problem mit sendmessage
 
Hallo!

Bist Du Dir sicher, dass FindWindow ein Handle zurückgibt? Irgendwie sieht die Fensterbezeichnung komisch aus...

Prüf mal den Wert von wnd.

SimStar001 10. Jul 2008 21:00

Re: problem mit sendmessage
 
Ja ich bin mir sogar sehr sicher dass er einen wert zurückgibt.


im moment ist es 131748, ist ja auch egal, auf jedenfall nicht null....

ich könnte vielleicht ja mal testen ob das Handle auch auf das richtige fenster zeigt, weiß jemand wie man das handle (fenster) maximieren kann!

Dunkel 10. Jul 2008 21:02

Re: problem mit sendmessage
 
:wall: Seh' ich jetzt erst: Du musst noch ein
Delphi-Quellcode:
  sendMessage(wnd, WM_KEYUP, VK_F10,0);
hinterherschicken. Irgendwann muss die Taste ja auch wieder losgelassen werden.

Luckie 10. Jul 2008 21:04

Re: problem mit sendmessage
 
Und SendMessage löst keine Exception aus, sondern hat einen Rückgabewert, abhängig von der Nachricht, den man auswerten kann.

SimStar001 10. Jul 2008 21:06

Re: problem mit sendmessage
 
Danke, habe den Code eingefügt aber es passiert nix...


habe auch nchmal überprüft ob das richtige windowhandle für die anwendung gefunden wurde und es wurde auch...


ich habe zum test das programm maximiert und dann den sendmessage teil ausgefürht aber es geht noch net!



Delphi-Quellcode:
wnd :=
FindWindow('Afx:00400000:0',nil);
  showwindow(wnd,3);


  sendMessage(wnd, WM_KEYDOWN, VK_F10,0);

  sendMessage(wnd, WM_KEYUP, VK_F10,0);
=====>keine reaktion auf tastendruck

Coder1990 10. Jul 2008 22:02

Re: problem mit sendmessage
 
wie führst du den teil aus während das prog maximiert ist?
setze mal ne showmessage hinter den except bereich damit du dir auch sicher sein kannst das das alles durchgeführt wird

SimStar001 10. Jul 2008 22:07

Re: problem mit sendmessage
 
also so wie der code einen beitrag weiter oben steht führe ich ihn aus... (ohne try und so)


das fenster wird auch maximiert, nur der virtuelle tastendruck funktioniert halt nicht

lbccaleb 10. Jul 2008 22:27

Re: problem mit sendmessage
 
musst du nicht als message WM_SYSKEYDOWN und WM_SYSKEYUP senden?? :gruebel:

SimStar001 10. Jul 2008 22:30

Re: problem mit sendmessage
 
da bin ich ehrlich gesagt überfragt, weil ich mich mit diesen ganzen funktionen nicht auskenne, ich werds aber mal ausprobierne, vielleicht klappts ja dann!


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz