![]() |
Mit einem Button eine Tastenkombi simulieren
Hi,
ich möchte in einem Fremdprogramm per Button eine Tastenkombination simulieren. Beispiel: ich hol mir das Handle vom " Notepad " und möchte mit einem klick auf Button1 in meinem Prog ein STRG + P im Notepad simulieren (Drucken) kann mir jemand weiterhelfen ? Danke und Gruß, Dirk |
Dieser Code offnet den Datei-Öffnen-Dialof vom Notepad:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var hWindow, hMenu, hSubmenu, ItemID: Cardinal; begin hWindow := FindWindow(nil, 'Unbenannt - Editor'); if hWindow <> 0 then begin hMenu := GetMenu(hWindow); if hMenu <> 0 then begin hSubmenu := GetSubMenu(hMenu, 0); ItemID := GetMenuItemID(hSubMenu, 1); SendMessage(hWindow, WM_COMMAND, MAKEWPARAM(ItemID, BM_CLICK), 0); end; end; end; |
Zitat:
GENAU DAS hab ich gebraucht... vielen Dank :) Gruß, Dirk |
zum Thema
... das funktioniert bei Apps ohne ControlBar sehr gut.. aber wenn ich nun ne ControlBar drin hab, gehts nimmer. Ich hab mir mal die Unit sndkeys32 eingebunden, die diese Tastenkombinationen vereinfachen soll, aber irgendwie werd ich nicht schlau draus und bekomms nicht zu laufen.
Die Zeile
Delphi-Quellcode:
soll die Kombi CTRL+P (drucken) simulieren, aber haut irgendwie nicht hin... hier mal mein bisheriger Testcode um ne Outlook Mail auszudrucken per CTRL+P (da ich den vorherigen Tip hier nicht nutzen kann.. wegen ControlBar )
SendKeys('^P',true);
Delphi-Quellcode:
Kann mir jemand einen Tip geben ?
procedure TForm1.Button1Click(Sender: TObject);
var target: HWND; begin target := FindWindow('rctrl_rewnd32', nil); if target <> 0 then begin showmessage('habs gefunden'); SendKeys('^P',true); end else begin showmessage('nicht gefunden'); end; end; end. Gruß, Dirk |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:16 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