Delphi Sendkey Kullanarak Makro Yapımı
Delphi Sendkey Kullanarak Makro Yapımı
Delphi send key nedir?
Delphi, bir yazılım geliştirme ortamı ve programlama dilidir. “Send key” ise, Delphi veya diğer birçok programlama dilinde kullanılan bir işlevdir. Bu işlev, klavye girişlerini programatik olarak göndermek için kullanılır. Örneğin, bir uygulamanın otomatik olarak belirli bir tuş kombinasyonunu veya tek bir tuş vuruşunu simüle etmek için kullanılabilir.
Makro yapımı ise, genellikle tekrarlayan işlemleri otomatikleştirmek için kullanılan bir yöntemdir. Örneğin, belirli bir dizi işlemi gerçekleştirmek için sık sık aynı tuş kombinasyonlarını kullanmanız gerekiyorsa, bir makro oluşturarak bu işlemleri otomatikleştirebilirsiniz. Bu noktada, “send key” işlevi, makro oluştururken kullanılabilecek önemli bir araçtır. Makro, belirli bir diziyi programatik olarak gerçekleştirmek için bir dizi klavye veya fare girdisi içerebilir ve “send key” işlevi bu girdileri göndermek için kullanılabilir. Bu sayede, kullanıcı tekrarlayan işlemleri manuel olarak yapmak zorunda kalmaz, bunun yerine bu işlemleri otomatikleştirebilir.
SendInput
fonksiyonunu kullanarak bir fare tıklama programı oluşturabiliriz. SendInput
fonksiyonu, klavye ve fare girdilerini simüle etmek için kullanılır. Aşağıda basit bir Delphi programı örneği veriyorum:unit Unit1;
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)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation
{$R *.dfm}
procedure DoMouseClick(X, Y: Integer);
var
Input: TInput;
begin
// Hazırla
Input.Itype := INPUT_MOUSE;
Input.mi.dx := X * (65536 div Screen.Width); // X koordinatı
Input.mi.dy := Y * (65536 div Screen.Height); // Y koordinatı
Input.mi.mouseData := 0;
Input.mi.dwFlags := MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN or MOUSEEVENTF_LEFTUP; // Sol tıklama
Input.mi.time := 0;
Input.mi.dwExtraInfo := 0;// Tıklama gönder
SendInput(1, Input, SizeOf(TInput));
end;procedure TForm1.Button1Click(Sender: TObject);
begin
// Mouse’un tıklanacağı koordinatları belirleyin
DoMouseClick(100, 100); // Örneğin (100, 100) koordinatlarında tıklama yapacak
end;end.
Bu örnekte, DoMouseClick
adında bir prosedür tanımlanmıştır. Bu prosedür, belirli bir X ve Y koordinatında fare tıklamasını simüle eder. TForm1.Button1Click
olayı, bir düğmeye tıklandığında bu prosedürü çağırır. SendInput
fonksiyonu, fare tıklamasını gerçekleştirmek için kullanılır.
Bu kodu bir Delphi projesine ekleyebilir ve formda bir düğme ekleyerek fare tıklamasını tetiklemek için kullanabilirsiniz. Düğmeye tıklandığında belirlediğiniz koordinatlarda fare tıklaması gerçekleşecektir.
Programı biraz daha geliştirecek olursak ;
Koordinatları program içerisinden nasıl bulurum ?
Delphi mouse koordinatlarını nasıl bulurum ?
Ekranın herhangi bir noktasının koordinatlarını bulmanın birkaç yolu vardır. İşte bunlardan bazıları:
- Ekran Koordinatları İle Fare İmlecini Kullanmak: Fare imlecinizi belirli bir noktaya getirin ve ekranın üst kısmındaki pencerenin başlığında bulunan x ve y koordinatlarını not alın. Bunu yapmak için, ekranın üst kısmında bulunan pencerenin başlığına gelin ve fareyi istediğiniz noktaya getirdiğinizde pencerenin başlığında görünen x ve y koordinatlarını kaydedin.
- Ekran Yakalama Araçları Kullanmak: Birçok işletim sistemi, ekran yakalama araçlarına sahiptir. Bu araçları kullanarak ekranın belirli bir noktasının koordinatlarını görebilirsiniz. Örneğin, Windows’ta “Snipping Tool” gibi bir ekran yakalama aracı kullanabilirsiniz.
- Delphi ile Kod Yardımıyla Bulmak: Delphi’de, fare imlecinin mevcut konumunu almak için
GetCursorPos
fonksiyonunu kullanabilirsiniz. Bu fonksiyon, birTPoint
yapısal türüne fare imlecinin X ve Y koordinatlarını döndürür.
var
MousePos: TPoint;
begin
GetCursorPos(MousePos);
ShowMessage(Format(‘X: %d, Y: %d’, [MousePos.X, MousePos.Y]));
end;
Bu kodu Delphi projenize ekleyebilir ve çalıştırdığınızda fare imlecinin mevcut X ve Y koordinatlarını gösteren bir iletişim kutusu açacaktır. Bu iletişim kutusu, fare imlecinin bulunduğu yeri işaret eder.
Bir konumuzu ve kodlarımı biraz daha geliştirip bunların hepsini tek program içerisinde yapalım..