Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Mouse Tıklatma
#1
Arkadaşlar internette araştırmalarımda hep mouseyi istenilen yere götürme veya tıklanıldığı zaman neler yapılacağına dair olaylarına değinilmiş. Peki mouseyi bir koordinata götürüp yazılan programa tıklattırma işini bilgisayara nasıl yaptırırız?
Cevapla
#2
Selamlar
Mouse istenen koordinata gönderilebiliyor. Ancak arka planda çalışan programın bir butonuna mı tıklanacak ya da masaüstünde olan bşr programı mı açacaksınız?
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Cevapla
#3
(29-06-2021, Saat: 10:28)shooterman Adlı Kullanıcıdan Alıntı: Selamlar
Mouse istenen koordinata gönderilebiliyor. Ancak arka planda çalışan programın bir butonuna mı tıklanacak ya da masaüstünde olan bşr programı mı açacaksınız?

Yani timer koyup belli aralıklarla mouse istenilen koordinatlardaki (açık olan bir web sayfasında) nesneler tıklatmak istiyorum.
Cevapla
#4
Selamlar aşağıdaki linki takip edebilirsin.

https://www.delphitips.net/2007/08/18/si...nd-clicks/
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Cevapla
#5
zamanında lazım olmuştu. bişeyler karalamıştım. belki işinize yarar.

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ExtCtrls, StdCtrls,unit2;

type
 TForm1 = class(TForm)
   Edit1: TEdit;
   Edit2: TEdit;
   Timer1: TTimer;
   GroupBox1: TGroupBox;
   ListBox1: TListBox;
   Timer2: TTimer;
   Button2: TButton;
   Edit3: TEdit;
   Timer3: TTimer;
   Button1: TButton;
   procedure Timer1Timer(Sender: TObject);
   procedure Button1Click(Sender: TObject);
   procedure Timer2Timer(Sender: TObject);
   procedure Button2Click(Sender: TObject);
   procedure Timer3Timer(Sender: TObject);
   procedure Button3Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
var
p:TPoint;
begin

p:= Mouse.CursorPos;
Edit1.Text:=inttostr(p.X);
Edit2.Text:=inttostr(p.Y);


end;

procedure soltikla;
begin
 Mouse_Event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
 Mouse_Event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
end;

// Sağ tuş ile tıklama için
procedure sagtikla;
begin
 Mouse_Event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0);
 Mouse_Event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);
end;

// Çift tıklama için
procedure cifttikla;
begin
 soltikla;
 GetDoubleClickTime;
 soltikla;

end;


procedure TForm1.Timer2Timer(Sender: TObject);
var
pt:TPoint;
begin
 pt:= Mouse.CursorPos;
 if GetKeyState(VK_RBUTTON)<0 then
  begin
  ListBox1.Items.Add(inttostr(pt.X)) ;
  ListBox1.Items.Add(inttostr(pt.Y))   ;
   Edit3.Text:= inttostr(pt.X)+','+inttostr(pt.Y) ;

 end;
end;

procedure TForm1.Button1Click(Sender: TObject);

begin
//SetCursorPos(316,211);
//cifttikla;
//SendKeys('deneme',true);

//Sleep(1000);


end;






procedure TForm1.Button2Click(Sender: TObject);
var
getlnX,getlnY:integer;
psX,psY:String;
begin

if (ListBox1.Count>0) then

begin
getlnY:=ListBox1.Count-1;
getlnX:=ListBox1.Count-2;

psX:=ListBox1.Items[getlnX];
psY:=ListBox1.Items[getlnY];
SetCursorPos(strtoint(psX),strtoint(psY));

cifttikla;
timer3.Enabled:=true;
end
else
begin
MessageBox(0,'Nokta Seçilmedi!','Uyarı',MB_OK+MB_ICONWARNING);
end;


end;

procedure TForm1.Timer3Timer(Sender: TObject);
begin
//SendKeys('deneme',true);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Timer1.Enabled:=false;
end;

end.


Ek Dosyalar Resimler
   
Cevapla
#6
(29-06-2021, Saat: 16:44)Rnd0M Adlı Kullanıcıdan Alıntı: zamanında lazım olmuştu. bişeyler karalamıştım. belki işinize yarar.

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ExtCtrls, StdCtrls,unit2;

type
 TForm1 = class(TForm)
   Edit1: TEdit;
   Edit2: TEdit;
   Timer1: TTimer;
   GroupBox1: TGroupBox;
   ListBox1: TListBox;
   Timer2: TTimer;
   Button2: TButton;
   Edit3: TEdit;
   Timer3: TTimer;
   Button1: TButton;
   procedure Timer1Timer(Sender: TObject);
   procedure Button1Click(Sender: TObject);
   procedure Timer2Timer(Sender: TObject);
   procedure Button2Click(Sender: TObject);
   procedure Timer3Timer(Sender: TObject);
   procedure Button3Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
var
p:TPoint;
begin

p:= Mouse.CursorPos;
Edit1.Text:=inttostr(p.X);
Edit2.Text:=inttostr(p.Y);


end;

procedure soltikla;
begin
 Mouse_Event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
 Mouse_Event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
end;

// Sağ tuş ile tıklama için
procedure sagtikla;
begin
 Mouse_Event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0);
 Mouse_Event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);
end;

// Çift tıklama için
procedure cifttikla;
begin
 soltikla;
 GetDoubleClickTime;
 soltikla;

end;


procedure TForm1.Timer2Timer(Sender: TObject);
var
pt:TPoint;
begin
 pt:= Mouse.CursorPos;
 if GetKeyState(VK_RBUTTON)<0 then
  begin
  ListBox1.Items.Add(inttostr(pt.X)) ;
  ListBox1.Items.Add(inttostr(pt.Y))   ;
   Edit3.Text:= inttostr(pt.X)+','+inttostr(pt.Y) ;

 end;
end;

procedure TForm1.Button1Click(Sender: TObject);

begin
//SetCursorPos(316,211);
//cifttikla;
//SendKeys('deneme',true);

//Sleep(1000);


end;






procedure TForm1.Button2Click(Sender: TObject);
var
getlnX,getlnY:integer;
psX,psY:String;
begin

if (ListBox1.Count>0) then

begin
getlnY:=ListBox1.Count-1;
getlnX:=ListBox1.Count-2;

psX:=ListBox1.Items[getlnX];
psY:=ListBox1.Items[getlnY];
SetCursorPos(strtoint(psX),strtoint(psY));

cifttikla;
timer3.Enabled:=true;
end
else
begin
MessageBox(0,'Nokta Seçilmedi!','Uyarı',MB_OK+MB_ICONWARNING);
end;


end;

procedure TForm1.Timer3Timer(Sender: TObject);
begin
//SendKeys('deneme',true);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Timer1.Enabled:=false;
end;

end.

Çok teşekkür ederim biraz düzenlemeyle işimi gördü.
Cevapla
#7
(29-06-2021, Saat: 22:37)apachi2006 Adlı Kullanıcıdan Alıntı:
(29-06-2021, Saat: 16:44)Rnd0M Adlı Kullanıcıdan Alıntı: zamanında lazım olmuştu. bişeyler karalamıştım. belki işinize yarar.

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ExtCtrls, StdCtrls,unit2;

type
 TForm1 = class(TForm)
   Edit1: TEdit;
   Edit2: TEdit;
   Timer1: TTimer;
   GroupBox1: TGroupBox;
   ListBox1: TListBox;
   Timer2: TTimer;
   Button2: TButton;
   Edit3: TEdit;
   Timer3: TTimer;
   Button1: TButton;
   procedure Timer1Timer(Sender: TObject);
   procedure Button1Click(Sender: TObject);
   procedure Timer2Timer(Sender: TObject);
   procedure Button2Click(Sender: TObject);
   procedure Timer3Timer(Sender: TObject);
   procedure Button3Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
var
p:TPoint;
begin

p:= Mouse.CursorPos;
Edit1.Text:=inttostr(p.X);
Edit2.Text:=inttostr(p.Y);


end;

procedure soltikla;
begin
 Mouse_Event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
 Mouse_Event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
end;

// Sağ tuş ile tıklama için
procedure sagtikla;
begin
 Mouse_Event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0);
 Mouse_Event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);
end;

// Çift tıklama için
procedure cifttikla;
begin
 soltikla;
 GetDoubleClickTime;
 soltikla;

end;


procedure TForm1.Timer2Timer(Sender: TObject);
var
pt:TPoint;
begin
 pt:= Mouse.CursorPos;
 if GetKeyState(VK_RBUTTON)<0 then
  begin
  ListBox1.Items.Add(inttostr(pt.X)) ;
  ListBox1.Items.Add(inttostr(pt.Y))   ;
   Edit3.Text:= inttostr(pt.X)+','+inttostr(pt.Y) ;

 end;
end;

procedure TForm1.Button1Click(Sender: TObject);

begin
//SetCursorPos(316,211);
//cifttikla;
//SendKeys('deneme',true);

//Sleep(1000);


end;






procedure TForm1.Button2Click(Sender: TObject);
var
getlnX,getlnY:integer;
psX,psY:String;
begin

if (ListBox1.Count>0) then

begin
getlnY:=ListBox1.Count-1;
getlnX:=ListBox1.Count-2;

psX:=ListBox1.Items[getlnX];
psY:=ListBox1.Items[getlnY];
SetCursorPos(strtoint(psX),strtoint(psY));

cifttikla;
timer3.Enabled:=true;
end
else
begin
MessageBox(0,'Nokta Seçilmedi!','Uyarı',MB_OK+MB_ICONWARNING);
end;


end;

procedure TForm1.Timer3Timer(Sender: TObject);
begin
//SendKeys('deneme',true);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Timer1.Enabled:=false;
end;

end.

Çok teşekkür ederim biraz düzenlemeyle işimi gördü.
düzenlenmiş halini rica etsem paylaşırmısınız
Cevapla
#8
(17-01-2022, Saat: 22:52)dvice Adlı Kullanıcıdan Alıntı:
(29-06-2021, Saat: 22:37)apachi2006 Adlı Kullanıcıdan Alıntı: Çok teşekkür ederim biraz düzenlemeyle işimi gördü.
düzenlenmiş halini rica etsem paylaşırmısınız

procedure soltikla;
begin
Mouse_Event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
Mouse_Event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
end;

procedure sagtikla;
begin
Mouse_Event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0);
Mouse_Event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);
end;

procedure cifttikla;
begin
soltikla;
GetDoubleClickTime;
soltikla;
end;

procedure TForm4.FormMouseActivate(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y, HitTest: Integer;
 var MouseActivate: TMouseActivate);
 var
pt:TPoint;
begin
sLabel1.Caption:='X: '+floattostr(pt.X)+', Y:'+floattostr(pt.y);
end;


procedure TForm4.sBitBtn1Click(Sender: TObject);
begin
if sBitBtn1.Caption='Tıklamayı Durdur!' then
 begin
 Timer3.Enabled:=false;
 abort
 end;
Timer2.Enabled:=false;
if VirtualTable1.RecordCount =0 then
 begin
 Application.MessageBox('Lütfen koordinat noktası tanımlayınız!','Uyarı',MB_ICONWARNING);
 abort
 end;
sBitBtn1.Caption:='Tıklamayı Durdur!';
Timer3.Enabled:=true;
end;

procedure TForm4.sBitBtn2Click(Sender: TObject);
var
getlnX,getlnY:integer;
psX,psY:String;
begin

if (ListBox1.Count>0) then

begin
getlnY:=ListBox1.Count-1;
getlnX:=ListBox1.Count-2;

psX:=ListBox1.Items[getlnX];
psY:=ListBox1.Items[getlnY];
SetCursorPos(strtoint(psX),strtoint(psY));

cifttikla;
timer3.Enabled:=true;
end
else
begin
MessageBox(0,'Nokta Seçilmedi!','Uyarı',MB_OK+MB_ICONWARNING);
end;
end;



procedure TForm4.sBitBtn4Click(Sender: TObject);
begin
timer2.Enabled:=true;
end;


Procedure TForm4.Timer1Timer(Sender: TObject);
var
p:TPoint;
begin
p:= Mouse.CursorPos;
Edit1.Text:=inttostr(p.X);
Edit2.Text:=inttostr(p.Y);
end;

procedure TForm4.Timer2Timer(Sender: TObject);
var
pt:TPoint;
begin
virtualtable1.active:=true;
pt:= Mouse.CursorPos;
if GetKeyState(VK_RBUTTON)<0 then
 begin
 VirtualTable1.Append;
 VirtualTable1px.Value:= pt.X;
 VirtualTable1py.Value:= pt.Y;
 VirtualTable1beklemesuresi.Value:=5000;
 VirtualTable1.Post;
 end;
end;


procedure TForm4.Timer3Timer(Sender: TObject);
var I:integer;
begin
for I := 0 to spintekrar.Value  do
 begin
 SetCursorPos(VirtualTable1px.Value,VirtualTable1py.Value);
 Sleep(VirtualTable1beklemesuresi.Value);
 cifttikla;
 spintekrar.Value:= spintekrar.Value-1;
 end;
Timer3.Enabled:=false;
ShowMessage('Tıklama Döngüsü Bitti!');
end;
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  UYGULAMAYA MOUSLA TIKLATMA fatih3 1 597 14-04-2025, Saat: 15:13
Son Yorum: berk06
  Fare Hareketi Yakalamak : Mouse.CursorPos.X bydelphi 8 2.315 24-06-2024, Saat: 11:17
Son Yorum: bydelphi
  Mouse Orta tuşu ile Dbgrid Scroll unu hareket ettirme stevenskat 2 1.019 22-08-2023, Saat: 22:37
Son Yorum: stevenskat
  Bir yarışma web sayfasındaki Butona Tıklatma Jakarta2 11 4.925 31-01-2022, Saat: 19:00
Son Yorum: Jakarta2
  Mouse Up eventinda click sayımı kofmaster 7 3.409 08-04-2021, Saat: 00:57
Son Yorum: savasabd



Konuyu Okuyanlar: 1 Ziyaretçi