![]() |
Mausrad simulieren
Hallo,
ich will aus meinem Programm heraus in einer anderen Anwendung die Anzeige vergrößern/verkleinern (= Zoomen). Um dies zu erreichen nutze ich die sendinput Funktion. der nachfolgende Code zeigt meine Programm. Es funktioniert aber nicht :( kann mir einer sagen was falsch ist? Vielen Dank im vorraus Beispiel [DELPHI ]unit MausradMain; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type TForm1 = class(TForm) ButtonPlus: TButton; ButtonMinus: TButton; procedure ButtonPlusClick(Sender: TObject); procedure ButtonMinusClick(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.ButtonMinusClick(Sender: TObject); var Inp: TInput; begin Inp.Itype := INPUT_MOUSE; Inp.mi.dwFlags :=MOUSEEVENTF_WHEEL; Inp.mi.dx := 0; Inp.mi.dy := 0; Inp.mi.time := cardinal(-120); Inp.mi.dwExtraInfo := 0; SendInput(1, Inp, SizeOf(Inp)); end; procedure TForm1.ButtonPlusClick(Sender: TObject); var Inp: TInput; begin Inp.Itype := INPUT_MOUSE; Inp.mi.dwFlags :=MOUSEEVENTF_WHEEL; Inp.mi.dx := 0; Inp.mi.dy := 0; Inp.mi.time := 600; Inp.mi.dwExtraInfo := 0; SendInput(1, Inp, SizeOf(Inp)); end; procedure TForm1.FormCreate(Sender: TObject); begin SetWindowLong(handle, GWL_EXSTYLE, GetWindowLong(handle, GWL_EXSTYLE) or WS_EX_NOACTIVATE); end; end. [/DELPHI] |
AW: Mausrad simulieren
So wie ich die
![]() ![]() ![]() ![]() ![]() Zum Ermitteln des WindowHandles gab es hier in der DP mal ein Programm namens ![]() |
AW: Mausrad simulieren
Die externe Anweisung hat den Eingabefokus, durch die Zeile in Formvcreate behält die externe Anweisung den Eingabefokus auch dann noch wenn ich einen Button in meinem Program drücke.
Werde den Vorschlag mal in die Tat umsetzen. |
AW: Mausrad simulieren
Findwindow und Sendmessage funktionieren ebenfalls nicht.
Liegt der Fehler an Windows 10 64Bit? Habe versucht eine Seite in Firefox zu sctllen
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var fenster : hwnd; begin fenster:=FindWindow('MozillaWindowClass',nil); if fenster<>0 then begin sendmessage(fenster,wm_mousewheel,120,0); end; end; |
AW: Mausrad simulieren
Zitat:
Wenn FindWindow nicht geht, dann hast du wohl einen Fehler gemacht. Es wurde dir doch aber schon ein Grund genannt? Und das nächste mal bitte selber in der Hilfe nachsehen und prüfen, ob es z.B. Probleme mit der ![]()
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var fenster: HWND; begin fenster := FindWindow('MozillaWindowClass', nil); if fenster <> 0 then begin SetLastError(ERROR_SUCCESS); SendMessage(fenster, WM_MOUSEWHEEL, 120, 0); if GetLastError <> ERROR_SUCCESS then RaiseLastOSError; // ERROR_ACCESS_DENIED end else ShowMessage('Pech gehabt'); end; |
AW: Mausrad simulieren
Danke
|
AW: Mausrad simulieren
Und, hat der Rückgabewert etwas gesagt?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:36 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