Jump to content
Son zamanlarda artan kullanıcı hesap hırsızlıkları sebebiyle tüm kullanıcılara şifre sıfırlama maili gönderilmiştir. Lütfen güveli şifreler seçiniz. Mevcut e-mail adresinize erişemiyorsanız, en aşağıdaki destek linkinden bize ulaşınız. ×

Detect Mouse Fonksiyonu


SimpsoN_Bart
 Share

Recommended Posts

[size=3][font=georgia,serif]Çalışmalarınız kullanabileceğiniz güzel bir fonksiyon.Mouse imlecini Form'un üstüne getirdiğiniz zaman form aktif olur aksi hali durumunda form şeffaf şekilde görünür arada bir kullandığınız ama hep açık olan çalışmalar için güzel bir yöntem.Sleep ve diğer değişkenleri isteğinize göre düzenleyebilirsiniz..Umarım faydalı olmuştur, kolay gelsin..[/font][/size]

[code]#RequireAdmin
#NoTrayIcon

AdlibRegister("_DETECT_MOUSE", 1);Fonksiyonu 1 saniyede bir çalıştırmak için.

Local $MAIN_GUI = GUICreate("Form1", 431, 280)
Local $EXIT = GUICtrlCreateButton("Çıkış", 8, 232, 409, 25)
GUISetState(@SW_SHOW)


While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3, $EXIT
Exit
EndSwitch
WEnd


Func _DETECT_MOUSE()
Local Static $MOUSEOUT = False
$M_POS = MouseGetPos()
$W_POS = WinGetPos("Form1")
If $M_POS[0] > $W_POS[0] And $M_POS[0] < $W_POS[0] + $W_POS[2] And $M_POS[1] > $W_POS[1] And $M_POS[1] < $W_POS[1] + $W_POS[3] Then
If $MOUSEOUT = True Then
For $i = 30 To 255 Step 30
WinSetTrans("Form1", "", $i)
Sleep(50)
Next
WinSetTrans("Form1", "", 255)
$MOUSEOUT = False
EndIf
Else
If $MOUSEOUT = 0 Then
For $i = 255 To 30 Step -30
WinSetTrans("Form1", "", $i)
Sleep(50)
Next
$MOUSEOUT = True
EndIf
EndIf
EndFunc ;==>_DETECT_MOUSE
[/code] Edited by SimpsoN_Bart
Link to comment
Share on other sites

  • 11 ay sonra...

AdlibRegister ile fonksiyonu 1 saniyede bir çalıştırmana gerek yoktur. Windows Events'den FormActive-Deactive (Neyse artık tam olarak bilmiyorum eventin ismini...) olayını bul, gerekli kodları event'in fonksiyonunu açarak yaz. Geriye kalanı Windows'a bırak. Böylelikle programı yormazsın. Basit-küçük programların senin verdiğini kullanmasında bir sorun yok ama uzun işler için 1 saniyede bir böyle bir fonksiyon ile işletim sistemini rahatsız etmek hiç hoş olmaz.

Link to comment
Share on other sites

  • 3 hafta sonra ...

Burada ki asıl amaç aslında FormActive-Deactive meselesi değil.. Yani bu fonksiyonu ben bile bir kere ya kullandım ya kullanmadım. Ben böyle fonksiyonlar verirken kodların kullanım yerlerini göstermeyi amaçlıyorum..Misal bunu hazırlamadan önce forumda bir arkadaşım fonksiyonu belirli saniyede çalıştırmak için nasıl bir yol izlemeliyim diye sordu ve yanlış hatırlamıyorsam local dim const ve static kodlarını da sormuştu bende bunların içerdiği ek olarak işe yarabilecek diğer kodlardan oluşan sorularını cevap olur ümidiyle bu fonksiyonu yazdım. Böylece hem static hemde AdlibRegister kodlarının kullanıldığı yerleri gösterdim ve farklı olarak mouse hareketine göre formun şeffaflığını ayarlayan kod demetlerini açıklamış oldum.. Böyle basit fonksiyonları veya program kodlarını verirken bu açıklamayı da yapıyorum.. Amaç autoit kodlarının kullanım yerlerini göstermek bunun yanında işe yarar projeler üretmek..Ayrıca bu programı sistemi fazla yormaz ben 1 ms yazmışım onu yazmaya gerek yoktur ve her autoit e yeni başlayan üye de Windows Eventleri bilmeye bilir ki forumda çok var. Bu yüzden kodlarla iş görülmesini sağlıyorum ince noktaları ve teknik kodları her autoit programcısı bilmeyebilir. Ben hep bunları baz alarak kod paylaşıyorum foruma proje atıyorum. Kendi kod sitilim tam olarak bu şekilde değil zaten..Büyük projeler için teknik konuları bilmek gerekiyor.Örneğin C# da Bellek Yönetimi ve Garbage Collector gibi ince detaylarla kendimi geliştiriyorum.. Sattığım veya geliştirdiğim programlarda buna önem gösteriyorum çünkü başka şekilde tam performans sağlayamam neyse lafı çok uzattık. Dediklerinde doğru pay var fakat sen dediğin şekilde kullan bilmeyen arkadaşlar bu şekilde kullanır zaten üstte arkadaş da yararlanmış işine gelen bu şekilde diğer çok ince detayları bilen ve takılan arkadaşlar senin doğru dediğin gibi kullanır tabi sorun böylece çözülmüş olur.Kolay gelsin.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...