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. ×

Mouse Clikck Vb. Autoit


asmazh
 Share

Recommended Posts

[color="#FF0000"]Öncelikle Selamün Aleyküm ve Günaydın Millet...[/color]

[color="#0000FF"]AutoİT ile ilgili bir kaç sorum vardı bunları size bildirmek istiyorum inş yardımcı olursunuz.

1. SORU : Mouse bir butonun üstüne geldiğinde butona tıklamışım gibi işlev görmesini istiyorum bunu bana en sade bir şekilde kodlarını gösterirseniz sevinirim.

2. SORU : Bir butona tıklayacağım ve XP SP3 WİN7 WİNWİSTA Gibi işletim sistemlerinin ekran koruyucu ayar sayfası açılacak yada o sayfaya girmeden AutoİT ile ekran koruyucu ayarlarını değiştirebilirmiyim. eğer değiştirilebiliniotsa bana bunun kodlarını verirseniz sevinirim.

3. SORU : AutoİT ile tam bir Guicreate("Deneme",@dekstoph,@desktopw,0,0) yani böyle tam ekran bir gui sayfası oluşturup üstüne herhangi bir tema yapamazmıyız daha doğrsu yapılırda nasıl bir örnek verirseniz sevinirim.[/color]

[color="#FF0000"]TEŞEKKÜRLER...[/color]
Link to comment
Share on other sites

@asmazh

As. günaydın,

Cevap 1: Tam anlayamadım, sen butona mouse ile tıklatmak mı istiyorsun, yoksa mouse belirlediğin butona geldinde tıklamasını mı istiyorsun?

Cevap 2: Bu ayarları registrydende ayarlayabilirsin. Yani zamanı, ekran koruyucunun açık olup olmayacağın, haliyle ekran koruyucuyu.
Ilgili registry anahtarı [b]HKEY_CURRENT_USER\Control Panel\Desktop[/b]
Yani basit regwrite komutlarıyla bu ayarları değiştirebilirsin!
Bir örnek vermem gerekirse;
[codebox]RegWrite("HKCU\Control Panel\Desktop", "ScreenSaveActive","Reg_Sz","1") ;0 değeri hatırladığım kadarıyla kapatıyordu
RegWrite("HKCU\Control Panel\Desktop", "SCRNSAVE.EXE","Reg_Sz","ekrankouruycu konumu") ;ekran koruyucu konumu
RegWrite("HKCU\Control Panel\Desktop", "ScreenSaveTimeOut","Reg_Sz",5 * 60) ;Misal 5 dakika için[/codebox]

Cevap 3: Windows temasından farklı bir tema kullanmak için aşağıdaki konuya bak!
http://www.tnctr.com/topic/163354-autoit-icin-bir-cok-skinler-temalar/

Edited by blue_life
Link to comment
Share on other sites

Yine sorunda eksik kısımlar var! Neyse autoit ile oluşturduğun gui için böyle bir şey yapmak istiyorsan aşağıdaki örneği incele!

[codebox]Local $GG_CINFO
Opt("GUIOnEventMode", 1)
Local $Form1 = GUICreate("Form1", 250, 250)
GUISetOnEvent(-3, "_EXIT")
Local $Button1 = GUICtrlCreateButton("Button1", 10, 120, 230, 25)
GUISetState(@SW_SHOW)

While 1
If WinActive($Form1) Then
$GG_CINFO = GUIGetCursorInfo()
If IsArray($GG_CINFO) Then
Switch $GG_CINFO[4]
Case $Button1
ToolTip("Butonun üstüne!")

Case Else
ToolTip("")

EndSwitch
EndIf
EndIf
Sleep(100)
WEnd


Func _EXIT()
Exit

EndFunc ;==>_EXIT[/codebox]

Link to comment
Share on other sites

  • 3 hafta sonra ...

@mehmetben
ControlClick normal mouseclick komutlarından farkıdır!
Neyse, yardım dosyasında ControlClick komutuna bakarsak;

[b]ControlClick ( "title", "text", controlID [, button [, clicks [, x [, y ]]]] )[/b]

Bak orda clicks sayısı mevcut! Yani aşağıdaki gibi bir komut işine yarayabilir;
ControlClick("ShowMyPC Collaboration 3050","","ThunderRT6TextBox3","",2)

Link to comment
Share on other sites

[font="Verdana"][codebox]# ;Başlat
^ ;Ctrl
+ ;Shift
! ;Alt
@CRLF ;Alt satıra inmek için kullanılır.UP DOWN LEFT RIGHT Tuşlarıyla aşağı yukarı vs yapabilir, CTRL + A İLe seçtirebilirsin.
_IsPressed Fonksiyonu ile sağ tıklama sol tıklama vs gibi şeyleri yapabilirsin.Help Dosyasında örnek var.

Örn:
Sağ tık ; _IsPressed("02")
Sol tık ; _IsPressed("01")
[/codebox][/font]

Edited by SimpsoN_Bart
Link to comment
Share on other sites

[quote name='SimpsoN_Bart' date='11 May 2011 - 16:37 ' timestamp='1305131823' post='1008971']
[font="Verdana"][codebox]# ;Başlat
^ ;Ctrl
+ ;Shift
! ;Alt
@CRLF ;Alt satıra inmek için kullanılır.UP DOWN LEFT RIGHT Tuşlarıyla aşağı yukarı vs yapabilir, CTRL + A İLe seçtirebilirsin.
_IsPressed Fonksiyonu ile sağ tıklama sol tıklama vs gibi şeyleri yapabilirsin.Help Dosyasında örnek var.

Örn:
Sağ tık ; _IsPressed("02")
Sol tık ; _IsPressed("01")
[/codebox][/font]
[/quote]
deneme1
deneme2
Send("+{DOWN 2}")
yukarıdan aşağı iki satırı seçmiyor acaba yanlışmı yazdım

içeriği böyle
Run("notepad.exe")
WinWait("Adsız - Not Defteri")
WinWaitActive("Adsız - Not Defteri")
ClipPut("deneme1")
send("^v")
Send("{ENTER}")
ClipPut("deneme2")
send("^v")
Send("{ENTER}")
Sleep(2000)
Send("+{DOWN 2}")

Edited by mehmetben
Link to comment
Share on other sites

Send vs. komutları için ilgili pencerenin aktif olması lazım!
Söylediklerin bir çok yol ile yapılabilir lakin en basit en güvenli olan haliyle en iyisidir.
Öncelikle yapmak istenile kafada iyi canlandırılmalı. Yoksa zaman kaybı çok olacaktır.

Şimdi diyelim ben notepad edit1 içindeki yazıları almak istiyorsam o zaman ControlGetText kullanırım.
Eğer ilgili kısma yeni bir şey yazmak istiyorsam ControlSText kullanırım.

Istediğim satırdaki bilgiyi almak için ise ControlGetText ile tüm veriyi alıp StringSplit ile parçalarım :)
Eğer ilgili içeriği dokunmayıp sonuna bir şey ekleyeceksem haliyle ControlGetText ile veriyi alıp bir değişkene atar ve yine ekleyeceğim veriyi değişkenin sonunda eklerdim.

Sonrada haliyle ControlSetText kullanırdım.

[codebox]#include <Array.au3>

Local $HWND = WinGetHandle("[CLASS:Notepad]")
If $HWND = "" Then Exit
ControlSetText($HWND,"","Edit1","Selam Millet" & @CRLF & "Ben BlueLife")
Local $ControlGT = ControlGetText($HWND,"","Edit1")
Local $GET_LINE = StringSplit($ControlGT,@CRLF,1)

_ArrayDisplay($GET_LINE,"Line")[/codebox]

Edit: Bu arada _IsPressed; fonksiyonu gönderimde bulunmaz. Gönderileni keyi öğrenmeye yarar.
Bir nevi keylogger gibi bir şey ama, tam sağlıklı deyil!

Edited by blue_life
Link to comment
Share on other sites

BlueLife hocam daha basit bir örnekle açıklayabilirmisin Send("+{DOWN 2}") olayını
demek istediğim
Send("+{UP 2}") aşağıdan yukarıya iki satır seçiyor sorun yok
Send("+{DOWN 2}") neden yukarıdan aşağı 2 satır seçmiyor.!

Link to comment
Share on other sites

Benim kafam karıştı :) Yukarda aşağı veya bunu tersinin ne farkı varki.Sen belli bi yerden bi yazı alacaksan Bluelife hocamın dediği gib yapacaksın

Edited by SimpsoN_Bart
Link to comment
Share on other sites

BlueLife'in verdiği örnek sadece kopyalama artı not defteriyle beraber başka bir pencere daha açılıyor benim istediğim ise sadece not defteriyle çalışmak ve sadece kopyalama amaçlı değil örneğin 4 satır yazdım ve yukarıdan aşağı sadece iki satırı seçtim veya seçtim sildim

Link to comment
Share on other sites

@mehmetben

Benim verdiğim örnekte çıkan ilgili pencere bilgilendirme amaçlıdır!
Send vs. yerine benim verdiğim örneği geliştirerek yapmanı tavsiye ederim.

Misal üsten iki satır seçip sileceksen;
Tabi önce notepade en az üç satır yaz :)

[codebox]Local $HWND = WinGetHandle("[CLASS:Notepad]")
If $HWND = "" Then Exit
Local $ControlGT = ControlGetText($HWND,"","Edit1")
Local $GET_LINE = StringSplit($ControlGT,@CRLF,1)
Local $CSetText = ""
For $I = 3 to $GET_LINE[0] ;Burdaki üç üçüncü satırdan başlamak için
$CSetText &= $GET_LINE[$I] & @CRLF
Next

ControlSetText($HWND,"","Edit1",$CSetText)[/codebox]

Alttan iki satırı sileceksen;
Tabi yine notepade en az üç satır yaz

[codebox]Local $HWND = WinGetHandle("[CLASS:Notepad]")
If $HWND = "" Then Exit
Local $ControlGT = ControlGetText($HWND,"","Edit1")
Local $GET_LINE = StringSplit($ControlGT,@CRLF,1)
Local $CSetText = ""
For $I = 1 to $GET_LINE[0] -2 ;Sondan iki satırı atlıyoruz
$CSetText &= $GET_LINE[$I] & @CRLF
Next
ControlSetText($HWND,"","Edit1",$CSetText)[/codebox]

Hadi notepadde ilk satıra istediğimiz veriyi diğer verileri silmeden ekleyelim.
[codebox]Local $HWND = WinGetHandle("[CLASS:Notepad]")
If $HWND = "" Then Exit
Local $ControlGT = ControlGetText($HWND,"","Edit1")
$ControlGT = "Selam Millet" & @CRLF & "Nasılsınız" & @crlf & $ControlGT

ControlSetText($HWND,"","Edit1",$ControlGT)[/codebox]

Hadi şimdide son satıra bir şeyler ekleyelim.
[codebox]Local $HWND = WinGetHandle("[CLASS:Notepad]")
If $HWND = "" Then Exit
Local $ControlGT = ControlGetText($HWND,"","Edit1")
$ControlGT &= "Selam Millet" & @CRLF & "Nasılsınız" & @CRLF

ControlSetText($HWND,"","Edit1",$ControlGT)[/codebox]

Hadi şimdide ikinci satıra bir şeyler ekleyelim.
Abartıyorum galiba :)
Tabi notepadde 2den fazla satır olsun!

[codebox]Local $HWND = WinGetHandle("[CLASS:Notepad]")
If $HWND = "" Then Exit
Local $ControlGT = ControlGetText($HWND,"","Edit1")
Local $GET_LINE = StringSplit($ControlGT,@CRLF,1)
Local $CSetText = ""
For $I = 1 to $GET_LINE[0] ;Sondan iki satırı atlıyoruz
If $I = 2 Then
$CSetText &= "Selam Millet" & @CRLF & "Nasılsınız" & @CRLF
EndIf
$CSetText &= $GET_LINE[$I] & @CRLF
Next
ControlSetText($HWND,"","Edit1",$CSetText)[/codebox]

Son olarakta ikinci satırı sileim mi?
[codebox]Local $HWND = WinGetHandle("[CLASS:Notepad]")
If $HWND = "" Then Exit
Local $ControlGT = ControlGetText($HWND,"","Edit1")
Local $GET_LINE = StringSplit($ControlGT,@CRLF,1)
Local $CSetText = ""
For $I = 1 to $GET_LINE[0] ;Sondan iki satırı atlıyoruz
If $I = 2 Then ContinueLoop
$CSetText &= $GET_LINE[$I] & @CRLF
Next
ControlSetText($HWND,"","Edit1",$CSetText)[/codebox]

Gördüğünüz gibi istediğimiz satırdaki bilgiyi silebileceğimiz gibi, istediğim satırada istediğimiz bilgiyi sorunsuz ekleyebiliyoruz.
Send ve mouseclick komutları bu konularda control komutları kadar başarılı deyildir.
Mümkünse Send ve mouseclick kullanmamaya çalışın...

Neyse umarım anlatmak istediklerim anlaşılmıştır, kolay gelsin arkadaşlar....

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...