Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Taste in anderem Programm drücken (https://www.delphipraxis.net/114680-taste-anderem-programm-druecken.html)

Larsi 29. Mai 2008 12:28


Taste in anderem Programm drücken
 
Hi,
ich habe mir diesen Usb Raktenwerfer gekauft. Die Software gefällt mir gar nicht. Also wenn man bspw. die linke pfeiltaste drück und gefürckt hält dann bewegt der sich nach links. Meine Frage ist jetzt wie ich es schaffen kann dass die linke taste zum beispiel für 5 sekunden gedrückt wird. Aber die Tasten werden von der Software nur wahrgenommen wenn diese auch aktiv ist also nachdem ich einaml irgendwo draufgedrückt habe, wenn ich jetzt während dem nachrichten schreiben hier eine taste drücke, passiert nichts. Ich hoffe ihr könnt mir helfen. Kann man der Software irgendwie eine Message jede Millisekunde oder so schicken so dass sich das Teil nach links bewegt?

MFG Lars Wiltfang

Die Muhkuh 29. Mai 2008 12:30

Re: Taste in anderem Programm drücken
 
Ist bei dem Ding nicht sowieso ein SDK dabei? Dann könntest Dir Deine eigene Software schreiben. :zwinker:

Ansonsten: Suchwörter (wie immer...): Tastendruck simulieren

Luckie 29. Mai 2008 12:35

Re: Taste in anderem Programm drücken
 
Zitat:

Zitat von Larsi
wenn ich jetzt während dem nachrichten schreiben hier eine taste drücke, passiert nichts.

Weil ja auch das Eingabefeld im Webbrowser den Fokus hat und somit gehen alle Eingaben an dieses Fenster. Oder woher, denkst du, soll Windows wissen, dass die Eingabe auf einmal für etwas ganz anderes bestimmt ist? Windows ist kein Hellseher, der weiß, was du beabsichtigst.

Lösung wäre die Definition eines Hiotkeys, wenn das die Software zu lässt.

Larsi 29. Mai 2008 12:36

Re: Taste in anderem Programm drücken
 
Also SDK gibts nicht und Hotkeys gehen auch nicht.

Larsi 29. Mai 2008 14:08

Re: Taste in anderem Programm drücken
 
Also ich habe jetzt folgenden Code gefunden:
Delphi-Quellcode:
var
  wndmain: HWND;
begin
     wndMain := FindWindow('?','?');
            if wndMain <> 0 then
            begin
                wndMain := FindWindowEx('?', 0, '?', nil);
                PostMessage(wndMain, WM_KEYDOWN, VK_Left, 0);
            end;
end;

Aber was muss jetzt da hin wo die Fragezeichen sind?


Ich habe mit Winspy einfach mal auf das gesammte Fenster geklickt und das kan raus:
http://img145.imageshack.us/img145/8061/bildev1.th.jpg


Ich hoffe Ihr könnt mir helfen. Wie heißt eigentlich dieses VK_Left für die Entertaste?

DeddyH 29. Mai 2008 14:11

Re: Taste in anderem Programm drücken
 
WinSpy kann Dir den Code doch generieren. Alternativ kannst Du auch einen Blick in die Hilfe werfen, da steht FindWindow() nämlich bestimmt drin. Und die Taste heißt VK_RETURN.

Larsi 29. Mai 2008 14:20

Re: Taste in anderem Programm drücken
 
Delphi-Quellcode:
var
  wndMain, wndChild: HWND;
begin
  wndMain := FindWindow('TForm1','Missile Launcher');
  if wndMain <> 0 then
  begin
    wndChild := FindWindowEx(wndMain, 0, 'TPanel', nil);
    if wndChild <> 0 then
    begin
     PostMessage(wndMain, WM_KEYDOWN, VK_Return, 0);
          PostMessage(wndMain, WM_KEYUp, VK_Return, 0);

    end;
  end;
end;

So gehts immernoch nicht. Nichts schießt.

DeddyH 29. Mai 2008 14:21

Re: Taste in anderem Programm drücken
 
Du drückst RETURN auf einem Panel?

Larsi 29. Mai 2008 14:23

Re: Taste in anderem Programm drücken
 
Naja wenn ich das Programm starte dann kann ich per Enter Taste zum Beispiel schießen.

Larsi 29. Mai 2008 14:26

Re: Taste in anderem Programm drücken
 
Oder kann man auch einen Mausklick per Message in einem minimierten Programm machen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:25 Uhr.
Seite 1 von 2  1 2      

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