Yorumları: 120
Konuları: 24
Kayıt Tarihi: 03-12-2016
Rep Puanı: 112 Başlangıç
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?
Yorumları: 701
Konuları: 74
Kayıt Tarihi: 20-12-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.626 Programcı
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.
Yorumları: 120
Konuları: 24
Kayıt Tarihi: 03-12-2016
Rep Puanı: 112 Başlangıç
(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.
Yorumları: 701
Konuları: 74
Kayıt Tarihi: 20-12-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.626 Programcı
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Yorumları: 22
Konuları: 0
Kayıt Tarihi: 04-08-2020
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 124 Başlangıç
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
Yorumları: 120
Konuları: 24
Kayıt Tarihi: 03-12-2016
Rep Puanı: 112 Başlangıç
(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ü.
Yorumları: 1
Konuları: 0
Kayıt Tarihi: 17-01-2022
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 0 Başlangıç
(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
Yorumları: 120
Konuları: 24
Kayıt Tarihi: 03-12-2016
Rep Puanı: 112 Başlangıç
(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;