![]() |
Öffnen von Programmen und simulieren von Tastenkombinationen
Ich hab folgendes Problem, und zwar muss sich ein Programm nach dem Start automatisch öffnen und starten.
Nun muss ich ein Programm schreiben mit dem ich zuerst das Programm öffne(.exe), dann die Tastenkombinationen ALT+Z und ALT+S nacheinander simuliere. Dieses geschriebene Programm möchte ich dann in den Autostart kopieren. Ich hab keine Ahnung ob oder wie das geht. Würde mich über eine baldige Rückmeldung tierisch freuen. MFG Matthias P.s sollte ich im falschen Themenbereich sein tut es mir leid, wusste nicht wo ich es sonst hätte reinschreiben sollen |
Re: Öffnen von Programmen und simulieren von Tastenkombinati
Hört sich nach Virenverbreitung an ... :? :? Wieso in den Autostart Ordner ??
###Sorry, dass ich gleich an was Schlimmes denke, war ein dummer Post### |
Re: Öffnen von Programmen und simulieren von Tastenkombinati
erstmal hallo und herzlich willkommen in der dp!! :dp: :dp:
um es kurz zu sagen, ja es ist möglich solch einprogramm umzuseten... um ein programm zu starten schau dir mal den befehl "Shellexecute" an (ggf googeln oder hier suchen)
Delphi-Quellcode:
Shellexecute(hwnd, 'open', PChar('deinprogramm.exe'), nil, nil, SW_SHOWNORMAL);
um die tasten zu übermitteln musst du sie als nachricht an dein geöffnetes programm schicken, hierzu solltest du hier im forum auch was finden.. |
Re: Öffnen von Programmen und simulieren von Tastenkombinati
Zitat:
|
Re: Öffnen von Programmen und simulieren von Tastenkombinati
Hi,
Tastenklicks kannst du übrigens so simulieren:
Delphi-Quellcode:
Wenn du damit Tastenklicks simulieren willst, an ein Programm, desen Entwickler explizit wollen, dass der User selbst Tasten drückt (z.B. Surfbars, wo überwacht werden soll, dass jemand vor dem Bildschirm sitzt), solltest du lieber einen Treiber benutzen.
procedure PostKeyEx32(key: Word; const shift: TShiftState; specialkey: Boolean) ;
{ Parameters : * key : virtual keycode of the key to send. For printable keys this is simply the ANSI code (Ord(character)) . * shift : state of the modifier keys. This is a set, so you can set several of these keys (shift, control, alt, mouse buttons) in tandem. The TShiftState type is declared in the Classes Unit. * specialkey: normally this should be False. Set it to True to specify a key on the numeric keypad, for example. } type TShiftKeyInfo = record shift: Byte ; vkey: Byte ; end; ByteSet = set of 0..7 ; const shiftkeys: array [1..3] of TShiftKeyInfo = ((shift: Ord(ssCtrl) ; vkey: VK_CONTROL), (shift: Ord(ssShift) ; vkey: VK_SHIFT), (shift: Ord(ssAlt) ; vkey: VK_MENU)) ; var flag: DWORD; bShift: ByteSet absolute shift; j: Integer; begin for j := 1 to 3 do begin if shiftkeys[j].shift in bShift then keybd_event(shiftkeys[j].vkey, MapVirtualKey(shiftkeys[j].vkey, 0), 0, 0) ; end; if specialkey then flag := KEYEVENTF_EXTENDEDKEY else flag := 0; keybd_event(key, MapvirtualKey(key, 0), flag, 0) ; flag := flag or KEYEVENTF_KEYUP; keybd_event(key, MapvirtualKey(key, 0), flag, 0) ; for j := 3 downto 1 do begin if shiftkeys[j].shift in bShift then keybd_event(shiftkeys[j].vkey, MapVirtualKey(shiftkeys[j].vkey, 0), KEYEVENTF_KEYUP, 0) ; end; end; Wie man ein Proggy starten kann, wurde hier ja bereits beantwortet. Viele Grüsse, Macci |
Re: Öffnen von Programmen und simulieren von Tastenkombinati
Zitat:
|
Re: Öffnen von Programmen und simulieren von Tastenkombinati
Zitat:
![]() Zitat:
|
Re: Öffnen von Programmen und simulieren von Tastenkombinati
Zum Thema der "Fernsteuerung" per Senden von Tastencodes hilft dies weiter:
![]() |
Re: Öffnen von Programmen und simulieren von Tastenkombinati
@bigben37:
Wieso Missbrauch? Eine Datei auszuführen ist eine ganz normale Funktion von shellexecute, ohne wenn und aber. Und "Performs an operation on a specified file" ... naja was soll das schon bedeuten? Ausführen IST eine Operation an einer spezifizierten Datei. Das hat nichts mit Missbrauch zu tun, sondern ist einfach eine stinknormale Anwendung von shellexecute. Intern macht shellexecute wahrscheinlich auch nichts großartig anderes, als den von dir verlinkten Code auszufüren, also warum das Rad neu erfinden? CreateProcess benutzt man, wenn man mehr will, als einfach nur eine Datei "irgendwie" auszuführen. Viele Grüße, Macci |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 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