konulara baktım ama bulamadım eger gözum kacırmıs ise şimdiden özr diliyorum ve konuya giriyorum
benım amacım delphi ile farenin imlecini verilen kordinatlara yollamak ve sol clik yaptırmak örn
560*120 de bir edit var oraya getirip sol clik yaptırıp kalvyedende programdaki edit1 teki yazıyı yazdırmam mumkun mu ?umarım anlamısınızdır
mouse kontrolu
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
kordinatları ayarlamak kolay.
ile mouse u belirttiğin kordinatlara alırsın. fakat mouse click olayını ben de bilmiyorum. bi ara lazım olmuştu. biraz araştırdım, sanırım windows mesajlarıyla yapılacak fakat tam net birşey bulamadım.
bilen arkadaş varsa paylaşırsa seviniriz
Kod: Tümünü seç
Mouse.CursorPosition.X:=560;
Mouse.CursorPosition.Y:=120;
bilen arkadaş varsa paylaşırsa seviniriz
Koordinatları ayarlamanın diğer bir yolu
Kod: Tümünü seç
procedure SetMousePos(x, y: longint) ;
//x ve y form üzerindeki koordinatlar
var pt: TPoint;
begin
pt := ClientToScreen(point(x, y)) ;
SetCursorPos(pt.x, pt.y) ;
end;
s.a
İnternette biraz araştırınca çözüme hemen ulaştım. İşte link :
http://delphi.about.com/od/vclusing/a/mouseadvanced.htm
Bu işlem için Mouse_Event() api'si kullanılması gerekiyor. Fareyi hem hareket ettirmek hem de tıklama simulasyonu için gerekiyor. Örnek şöyle :
Form üzerindeki bir butona tıklandığında ikinci bir butona tıklanmış efekti veriyor. Hatta efekt demeyelim tıklamanın kendisi.
Her şey iyi güzel düzgün de çalışıyor ama anlayamadığım bi kaç satır var
Çözen olursa lütfen paylaşsın.
İnternette biraz araştırınca çözüme hemen ulaştım. İşte link :
http://delphi.about.com/od/vclusing/a/mouseadvanced.htm
Bu işlem için Mouse_Event() api'si kullanılması gerekiyor. Fareyi hem hareket ettirmek hem de tıklama simulasyonu için gerekiyor. Örnek şöyle :
Form üzerindeki bir butona tıklandığında ikinci bir butona tıklanmış efekti veriyor. Hatta efekt demeyelim tıklamanın kendisi.
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject) ;
var
Pt : TPoint;
begin
Application.ProcessMessages;
{Get the point in the center of Button 2}
Pt.x := Button2.Left + (Button2.Width div 2) ;
Pt.y := Button2.Top + (Button2.Height div 2) ;
{Convert Pt to screen coordinates and Mickeys}
Pt := ClientToScreen(Pt) ;
Pt.x := Round(Pt.x * (65535 / Screen.Width)) ;
Pt.y := Round(Pt.y * (65535 / Screen.Height)) ;
{Simulate the mouse move}
Mouse_Event(MOUSEEVENTF_ABSOLUTE or
MOUSEEVENTF_MOVE,
Pt.x, Pt.y, 0, 0) ;
{Simulate the left mouse button down}
Mouse_Event(MOUSEEVENTF_ABSOLUTE or
MOUSEEVENTF_LEFTDOWN,
Pt.x, Pt.y, 0, 0) ;;
{Simulate the left mouse button up}
Mouse_Event(MOUSEEVENTF_ABSOLUTE or
MOUSEEVENTF_LEFTUP,
Pt.x, Pt.y, 0, 0) ;;
end;
Kod: Tümünü seç
Pt.x := Round(Pt.x * (65535 / Screen.Width)) ;
Pt.y := Round(Pt.y * (65535 / Screen.Height)) ;
koddaki açıklamada
delphi about da açıklama olarak
google codesearch den de
anladığım kadarıyla mouse hareketinin birimi gibi bişi

geçiyor. "Mickeys" nedir acep dedim;{Convert Pt to screen coordinates and Mickeys}
delphi about da açıklama olarak
denmiş.Mouse coordinates given are in "Mickeys", where their are 65535 "Mickeys" to a screen's width.
google codesearch den de
çıktı.Return the number of mickeys in each centimeter for the installed mouse
driver.
Number of physical mouse motion units (mickeys) in each centimeter (a constant
based upon the attached mouse device) returned in MickeyCnt, MouHandle is
the mouse device handle from a previous MouOpen call.
anladığım kadarıyla mouse hareketinin birimi gibi bişi


cok sagolun verdiginiz bilgiler için fakat benim olay şöle bişi
programmda 1button 1 edit olsun
button1 e tıkladıgında bir baska program acıcak ve o programdaki atıuyorum yine 500*120 de bir yer var oraya getirip tıklatıp klavyedende benım programımdaki edit1deki yazıyı yazmasını istiyorum
yani fare benım formda ,işlem yapmıcak baska form a gidicek
programmda 1button 1 edit olsun
button1 e tıkladıgında bir baska program acıcak ve o programdaki atıuyorum yine 500*120 de bir yer var oraya getirip tıklatıp klavyedende benım programımdaki edit1deki yazıyı yazmasını istiyorum
yani fare benım formda ,işlem yapmıcak baska form a gidicek
s.a
O zaman işin şekli değişti. Bu daha önce forumda defalarca konuşulmuştu. SendKey olayı. Bi göz atın isterseniz.
viewtopic.php?t=1587&highlight=sendkey
1. Önce tuş göndereceğiniz uygulamayı çalışmıyorsa çalıştır
2. SendKey olayı ile istediğin metni edite yazdır.
O zaman işin şekli değişti. Bu daha önce forumda defalarca konuşulmuştu. SendKey olayı. Bi göz atın isterseniz.
viewtopic.php?t=1587&highlight=sendkey
1. Önce tuş göndereceğiniz uygulamayı çalışmıyorsa çalıştır
2. SendKey olayı ile istediğin metni edite yazdır.