Thema: Delphi Mausrad simulieren

Einzelnen Beitrag anzeigen

markbolten

Registriert seit: 5. Jun 2005
25 Beiträge
 
#1

Mausrad simulieren

  Alt 7. Apr 2016, 16:32
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]
  Mit Zitat antworten Zitat