EgZOtiCs Posted March 26, 2011 Share Posted March 26, 2011 (edited) Arkadaşlar aşağıdaki kodlarda bir deneme.exe şeklinde bir dosyayı çalıştırmak istiyorum. Bunu nasıl yapabilirim? Amacım elimde mouse hareketi ve tıklamaları kaydedimiş bir exe dosyası var, ben bu exe dosyasını aşağıdaki kodlara gömmem lazım ve start verdiğimde bu exe yide otomatik çalıştırması lazım bunu nasıl yaparız? [code]#NoTrayIcon #RequireAdmin #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_icon=PatchIco.ico #AutoIt3Wrapper_Res_Comment=Mt2ci Patcher #AutoIt3Wrapper_Res_Description=Mt2ci Patcher #AutoIt3Wrapper_Res_LegalCopyright=Mt2ci Patcher #AutoIt3Wrapper_Res_Language=1031 #AutoIt3Wrapper_Res_requestedExecutionLevel=requireAdministrator #AutoIt3Wrapper_Add_Constants=n #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <EditConstants.au3> #include <GUIConstants.au3> #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <GUIListBox.au3> #include <GuiEdit.au3> #include <ProgressConstants.au3> #include <IE.au3> $IP = "www.mt2ci.com/pack" Func _FileCountLines($SFILEPATH) Local $HFILE = FileOpen($SFILEPATH, 0) If $HFILE = -1 Then Return SetError(1, 0, 0) Local $SFILECONTENT = StringStripWS(FileRead($HFILE), 2) FileClose($HFILE) Local $ATMP If StringInStr($SFILECONTENT, @LF) Then $ATMP = StringSplit(StringStripCR($SFILECONTENT), @LF) ElseIf StringInStr($SFILECONTENT, @CR) Then $ATMP = StringSplit($SFILECONTENT, @CR) Else If StringLen($SFILECONTENT) Then Return 1 Else Return SetError(2, 0, 0) EndIf EndIf Return $ATMP[0] EndFunc DirCreate(@Scriptdir & "\patchskin") InetGet("http://" & $IP & "/patchskin/background.jpg", "patchskin/background.jpg", 1, 0) InetGet("http://" & $IP & "/patchskin/start.jpg", "patchskin/start.jpg", 1, 0) InetGet("http://" & $IP & "/patchskin/settings.jpg", "patchskin/settings.jpg", 1, 0) InetGet("http://" & $IP & "/patchskin/exit.jpg", "patchskin/exit.jpg", 1, 0) $FILE = @TempDir & "/filelist.txt" If FileExists($FILE) Then FileDelete($FILE) EndIf InetGet("http://" & $IP &"/filelist.txt", $FILE) $LINES = _FileCountLines($FILE) If $LINES = 0 Then MsgBox(48, "Hata", "Patch Listesi Bulunamadı!") Exit EndIf sleep(1000) $MainWindow = GUICreate("Mt2ci Patcher", 950, 594, 520, 100) ;$EDIT = GUICtrlCreateEdit("", 8, 16, 425, 241) $URL = "http://" & $IP & "/patch.php" $OIE = _IECreateEmbedded() $OIE_CTRL = GUICtrlCreateObj($OIE, 8, 16, 750, 575) GUISetState(@SW_SHOW) _IENavigate($OIE, $URL) $Statedisp = GUICtrlCreateEdit("", 28, 430, 530, 105) $ProgressBar = GUICtrlCreateProgress(28, 560, 530, 17) $Sizedisp = GUICtrlCreateLabel("", 575, 532, 124, 17) GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) $Percentdisp = GUICtrlCreateLabel("", 575, 559, 124, 17) GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) $Startgame = GUICtrlCreatePic(@Scriptdir & "\patchskin\start.jpg", 790, 16, 123, 36, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS)) $Settings = GUICtrlCreatePic(@Scriptdir & "\patchskin\settings.jpg", 790, 56, 123, 21, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS)) $Exit = GUICtrlCreatePic(@Scriptdir & "\patchskin\exit.jpg", 790, 550, 123, 21, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS)) $Background = GUICtrlCreatePic(@Scriptdir & "\patchskin\background.jpg", 0, 0, 950, 592, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS)) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### sleep(1000) _GUICtrlEdit_SetText($Statedisp, "Patcher Başlatılıyor." & @CRLF & @CRLF & _GUICtrlEdit_GetText($Statedisp)) sleep(2000) # PATCHVORGANG - Start ####################################################################################################################### While ($LINES >= 1) $DATEI = FileReadLine($FILE, $LINES) GUICtrlSetData($ProgressBar, 0) _GUICtrlEdit_SetText($Statedisp, "Kontrol Ediliyor:" & $DATEI & @CRLF & _GUICtrlEdit_GetText($Statedisp)) $OSIZE = InetGetSize("http://" & $IP & "/" & $DATEI) $LSIZE = FileGetSize($DATEI) If $OSIZE = $LSIZE Then _GUICtrlEdit_SetText($Statedisp, $DATEI & " - Tamamlandi." & @CRLF & _GUICtrlEdit_GetText($Statedisp)) GUICtrlSetData($ProgressBar, 100) Else If $OSIZE = 0 Then MsgBox(48, "Hata", "Sunucu Acık Deil Ve Ya Dosyalar Bulunamıyor" & @CRLF & "Dateien die für den Patchvorgang wichtig sind." & @CRLF & @CRLF &"Bitte reporte diesen Fehler im Forum!") Exit EndIf If FILEEXISTS($DATEI) Then FILEDELETE($DATEI) Endif _GUICtrlEdit_SetText($Statedisp, "İndiriliyor: " & $DATEI & " " & Round($OSIZE/1048576, 2) & " MB" & @CRLF & _GUICtrlEdit_GetText($Statedisp)) $size_inet = InetGetSize("http://" & $IP & "/" & $DATEI) $hDownload = InetGet("http://" & $IP & "/" & $DATEI, $DATEI, 1, 1) $iPercent = "0" while ($iPercent < 100) Local $aData = InetGetInfo($hDownload) $iPercent = round ( $aData[0] / $size_inet * 100) GUICtrlSetData($ProgressBar, $iPercent) GUICtrlSetData($Sizedisp, round($aData[0]/1048576, 2) & " İnen " & round($size_inet/1048576, 2) & "MB") GUICtrlSetData($Percentdisp, $iPercent & "%") sleep(1000) WEnd EndIf sleep(50) $LINES = $LINES - 1 GUICtrlSetData($ProgressBar, 100) WEnd ####################################################################################################################### GUICtrlSetData($ProgressBar, 100) sleep(50) # PATCHVORGANG - Ende #ENDMSG BEGIN _GUICtrlEdit_SetText($Statedisp, "Patcher Tamamlandı-Oyuna Başlaya Bilirsin." & @CRLF & @CRLF & _GUICtrlEdit_GetText($Statedisp)) #ENDMSG END While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Exit Exit Case $Settings ShellExecute("Config.exe") Case $Startgame Run("Mt2ci.com.exe") Exit EndSwitch WEnd[/code] Edited March 26, 2011 by EgZOtiCs Quote Link to comment Share on other sites More sharing options...
blue_life Posted March 26, 2011 Share Posted March 26, 2011 Ben basit bir örnek vereyim, kendine göre ayarlarsın... Örneğin düzgün çalışması için deneme.exe dosyasının script dosyasının yanında olması lazım. Kısaca temp klasöründe olmayan bir dosya ismi belirleyoruz. Deneme.exe yi Fileinstall ile autoit içine alıyoruz ve çalştırdığımızda daha önce belirlediğimiz isimde temp klasörüne çıkmasını sağlıyoruz. RunWait ile temp klasörüne çıkan dosyayı çalıştırıp, kapanmasını bekliyoruz. Kapanınca temp klasörümüzdeki dosyayı siliyoruz.... Neyse kolay gelsin.... [codebox]_Deneme_Exe() ;Çalıştırmak içi Func _Deneme_Exe() Local $TempFile = __TempFile() FileInstall("Deneme.exe",$TempFile,1) RunWait($TempFile) FileDelete($TempFile) EndFunc Func __TempFile($s_DirectoryName = @TempDir, $s_FilePrefix = "~", $s_FileExtension = ".tmp", $i_RandomLength = 7) ; Check parameters If Not FileExists($s_DirectoryName) Then $s_DirectoryName = @TempDir ; First reset to default temp dir If Not FileExists($s_DirectoryName) Then $s_DirectoryName = @ScriptDir ; Still wrong then set to Scriptdir ; add trailing \ for directory name If StringRight($s_DirectoryName, 1) <> "\" Then $s_DirectoryName = $s_DirectoryName & "\" ; Local $s_TempName Do $s_TempName = "" While StringLen($s_TempName) < $i_RandomLength $s_TempName = $s_TempName & Chr(Random(97, 122, 1)) WEnd $s_TempName = $s_DirectoryName & $s_FilePrefix & $s_TempName & $s_FileExtension Until Not FileExists($s_TempName) Return $s_TempName EndFunc ;==>_TempFile[/codebox] Quote Link to comment Share on other sites More sharing options...
EgZOtiCs Posted March 26, 2011 Author Share Posted March 26, 2011 Hocam ilginiz için çok teşekkür ederim. Ben Autoit ile yeni tanıştım, kodlarıda bir anlatımdan alıntı yaptım, deneme yanılma yöntemiyle kendime göre ayarladım, fakat dediğim gibi bu deneme.exe yi çalıştırmam gerekiyor. Benim için verdiğim kodları denermisiniz? Kodları bu yüzden koymuştum buraya. Yapalım tek ücretlide olur ücreti neyse veririm. Çok önemli bir konu lütfen yardımcı olursanı çok sevinirim. Gece gündüz konuyu takip ediyorum her an bir gelişme olur diye. Quote Link to comment Share on other sites More sharing options...
blue_life Posted March 26, 2011 Share Posted March 26, 2011 @EgZOtiCs Tam olarak ne yapmak istiyorsun. Yukarıdkai kodlarda oyunu başlat seçeneği mevcut. O tuşa basınca mı ilgili deneme.exe çalışacak? Daha fazla detay vermelisin. [codebox]#NoTrayIcon #RequireAdmin #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=PatchIco.ico #AutoIt3Wrapper_Res_Comment=Mt2ci Patcher #AutoIt3Wrapper_Res_Description=Mt2ci Patcher #AutoIt3Wrapper_Res_LegalCopyright=Mt2ci Patcher #AutoIt3Wrapper_Res_Language=1031 #AutoIt3Wrapper_res_requestedExecutionLevel=requireAdministrator #AutoIt3Wrapper_Add_Constants=n #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <EditConstants.au3> #include <GUIConstants.au3> #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <GUIListBox.au3> #include <GuiEdit.au3> #include <ProgressConstants.au3> #include <IE.au3> $IP = "www.mt2ci.com/pack" Func _FileCountLines($SFILEPATH) Local $HFILE = FileOpen($SFILEPATH, 0) If $HFILE = -1 Then Return SetError(1, 0, 0) Local $SFILECONTENT = StringStripWS(FileRead($HFILE), 2) FileClose($HFILE) Local $ATMP If StringInStr($SFILECONTENT, @LF) Then $ATMP = StringSplit(StringStripCR($SFILECONTENT), @LF) ElseIf StringInStr($SFILECONTENT, @CR) Then $ATMP = StringSplit($SFILECONTENT, @CR) Else If StringLen($SFILECONTENT) Then Return 1 Else Return SetError(2, 0, 0) EndIf EndIf Return $ATMP[0] EndFunc ;==>_FileCountLines DirCreate(@ScriptDir & "\patchskin") InetGet("http://" & $IP & "/patchskin/background.jpg", "patchskin/background.jpg", 1, 0) InetGet("http://" & $IP & "/patchskin/start.jpg", "patchskin/start.jpg", 1, 0) InetGet("http://" & $IP & "/patchskin/settings.jpg", "patchskin/settings.jpg", 1, 0) InetGet("http://" & $IP & "/patchskin/exit.jpg", "patchskin/exit.jpg", 1, 0) $FILE = @TempDir & "/filelist.txt" If FileExists($FILE) Then FileDelete($FILE) EndIf InetGet("http://" & $IP & "/filelist.txt", $FILE) $LINES = _FileCountLines($FILE) If $LINES = 0 Then MsgBox(48, "Hata", "Patch Listesi Bulunamadı!") Exit EndIf Sleep(1000) $MainWindow = GUICreate("Mt2ci Patcher", 950, 594, 520, 100) ;$EDIT = GUICtrlCreateEdit("", 8, 16, 425, 241) $URL = "http://" & $IP & "/patch.php" $OIE = _IECreateEmbedded() $OIE_CTRL = GUICtrlCreateObj($OIE, 8, 16, 750, 575) GUISetState(@SW_SHOW) _IENavigate($OIE, $URL) $Statedisp = GUICtrlCreateEdit("", 28, 430, 530, 105) $ProgressBar = GUICtrlCreateProgress(28, 560, 530, 17) $Sizedisp = GUICtrlCreateLabel("", 575, 532, 124, 17) GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) $Percentdisp = GUICtrlCreateLabel("", 575, 559, 124, 17) GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) $Startgame = GUICtrlCreatePic(@ScriptDir & "\patchskin\start.jpg", 790, 16, 123, 36, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS)) $Settings = GUICtrlCreatePic(@ScriptDir & "\patchskin\settings.jpg", 790, 56, 123, 21, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS)) $Exit = GUICtrlCreatePic(@ScriptDir & "\patchskin\exit.jpg", 790, 550, 123, 21, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS)) $Background = GUICtrlCreatePic(@ScriptDir & "\patchskin\background.jpg", 0, 0, 950, 592, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS)) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### Sleep(1000) _GUICtrlEdit_SetText($Statedisp, "Patcher Başlatılıyor." & @CRLF & @CRLF & _GUICtrlEdit_GetText($Statedisp)) Sleep(2000) While ($LINES >= 1) $DATEI = FileReadLine($FILE, $LINES) GUICtrlSetData($ProgressBar, 0) _GUICtrlEdit_SetText($Statedisp, "Kontrol Ediliyor:" & $DATEI & @CRLF & _GUICtrlEdit_GetText($Statedisp)) $OSIZE = InetGetSize("http://" & $IP & "/" & $DATEI) $LSIZE = FileGetSize($DATEI) If $OSIZE = $LSIZE Then _GUICtrlEdit_SetText($Statedisp, $DATEI & " - Tamamlandi." & @CRLF & _GUICtrlEdit_GetText($Statedisp)) GUICtrlSetData($ProgressBar, 100) Else If $OSIZE = 0 Then MsgBox(48, "Hata", "Sunucu Acık Deil Ve Ya Dosyalar Bulunamıyor" & @CRLF & "Dateien die für den Patchvorgang wichtig sind." & @CRLF & @CRLF & "Bitte reporte diesen Fehler im Forum!") Exit EndIf If FileExists($DATEI) Then FileDelete($DATEI) EndIf _GUICtrlEdit_SetText($Statedisp, "İndiriliyor: " & $DATEI & " " & Round($OSIZE / 1048576, 2) & " MB" & @CRLF & _GUICtrlEdit_GetText($Statedisp)) $size_inet = InetGetSize("http://" & $IP & "/" & $DATEI) $hDownload = InetGet("http://" & $IP & "/" & $DATEI, $DATEI, 1, 1) $iPercent = "0" while ($iPercent < 100) Local $aData = InetGetInfo($hDownload) $iPercent = Round($aData[0] / $size_inet * 100) GUICtrlSetData($ProgressBar, $iPercent) GUICtrlSetData($Sizedisp, Round($aData[0] / 1048576, 2) & " İnen " & Round($size_inet / 1048576, 2) & "MB") GUICtrlSetData($Percentdisp, $iPercent & "%") Sleep(1000) WEnd EndIf Sleep(50) $LINES = $LINES - 1 GUICtrlSetData($ProgressBar, 100) WEnd GUICtrlSetData($ProgressBar, 100) Sleep(50) _GUICtrlEdit_SetText($Statedisp, "Patcher Tamamlandı-Oyuna Başlaya Bilirsin." & @CRLF & @CRLF & _GUICtrlEdit_GetText($Statedisp)) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Exit Exit Case $Settings ShellExecute("Config.exe") Case $Startgame Run("Mt2ci.com.exe") _Deneme_Exe() Exit EndSwitch WEnd Func _Deneme_Exe() Local $TempFile = __TempFile() FileInstall("Deneme.exe",$TempFile,1) RunWait($TempFile) FileDelete($TempFile) EndFunc Func __TempFile($s_DirectoryName = @TempDir, $s_FilePrefix = "~", $s_FileExtension = ".tmp", $i_RandomLength = 7) ; Check parameters If Not FileExists($s_DirectoryName) Then $s_DirectoryName = @TempDir ; First reset to default temp dir If Not FileExists($s_DirectoryName) Then $s_DirectoryName = @ScriptDir ; Still wrong then set to Scriptdir ; add trailing \ for directory name If StringRight($s_DirectoryName, 1) <> "\" Then $s_DirectoryName = $s_DirectoryName & "\" ; Local $s_TempName Do $s_TempName = "" While StringLen($s_TempName) < $i_RandomLength $s_TempName = $s_TempName & Chr(Random(97, 122, 1)) WEnd $s_TempName = $s_DirectoryName & $s_FilePrefix & $s_TempName & $s_FileExtension Until Not FileExists($s_TempName) Return $s_TempName EndFunc ;==>_TempFile[/codebox] Quote Link to comment Share on other sites More sharing options...
EgZOtiCs Posted March 26, 2011 Author Share Posted March 26, 2011 Yok hocam şimdi bendeki bu deneme.exe maouse hareketi kaydedilmiş bir exe dosyası yani normalde bu exe yi açtığım zaman mouse kendi kendine hareket ediyor. Daha önce yapmış olduğum bir hareketi kaydediyir. Yani dosya çalıştığı zaman bu deneme.exe de otomatik olarak çalışacak. Dolaısıyla mouse kendi hareket edecek. Ben biraz araştırma yaptım ve şu kodları ekledim. [code]FileInstall("C:\Documents and Settings\Lyrics\Desktop\deneme.exe",@TempDir & "\$$.tmp") FileMove ( @TempDir & "\$$.tmp",@TempDir & "\temp.exe" ,1 ) RunWait(@TempDir & "\temp.exe") FileDelete(@TempDir & "\temp.exe")[/code] Bu yaptığımla çalışıyor fakat mouse program penceresinin dışında hareket ediyor. Benim istediğim program penceresinde çalışması. Onuda yaparsam tamamdır. Nasıl yapabilirim? Quote Link to comment Share on other sites More sharing options...
johncher Posted March 30, 2011 Share Posted March 30, 2011 [quote name='EgZOtiCs' date='26 March 2011 - 18:26 ' timestamp='1301163981' post='983586'] Yok hocam şimdi bendeki bu deneme.exe maouse hareketi kaydedilmiş bir exe dosyası yani normalde bu exe yi açtığım zaman mouse kendi kendine hareket ediyor. Daha önce yapmış olduğum bir hareketi kaydediyir. Yani dosya çalıştığı zaman bu deneme.exe de otomatik olarak çalışacak. Dolaısıyla mouse kendi hareket edecek. Ben biraz araştırma yaptım ve şu kodları ekledim. [code]FileInstall("C:\Documents and Settings\Lyrics\Desktop\deneme.exe",@TempDir & "\$$.tmp") FileMove ( @TempDir & "\$$.tmp",@TempDir & "\temp.exe" ,1 ) RunWait(@TempDir & "\temp.exe") FileDelete(@TempDir & "\temp.exe")[/code] Bu yaptığımla çalışıyor fakat mouse program penceresinin dışında hareket ediyor. Benim istediğim program penceresinde çalışması. Onuda yaparsam tamamdır. Nasıl yapabilirim? [/quote] Şu şekilde yapabilirsin [codebox]While 1 Sleep(250) $pos = MouseGetPos() $pixelrengi = PixelGetColor($pos[0],$pos[1]) ToolTip("X : "&$pos[0]&" Y : "&$pos[1]) WEnd[/codebox] ustteki kodu çalıştır ekranda mousu gezdir nereye tıklatacaksan dur x ve y kordinatını al sonra kendi yazdıgın koda mouse sol tık left sağ tıklama için right yaz tek tıklama için MouseClick("left", x, y, 1) çift tıklama için MouseClick("left", x, y, 2) şeklinde kullan mouse tıklattıgın yerde bir değişiklik yapmadığın sürece çalışır kolay gelsin Quote Link to comment Share on other sites More sharing options...
EgZOtiCs Posted March 30, 2011 Author Share Posted March 30, 2011 (edited) [quote name='johncher' date='30 March 2011 - 08:51 ' timestamp='1301475104' post='984681'] Şu şekilde yapabilirsin [codebox]While 1 Sleep(250) $pos = MouseGetPos() $pixelrengi = PixelGetColor($pos[0],$pos[1]) ToolTip("X : "&$pos[0]&" Y : "&$pos[1]) WEnd[/codebox] ustteki kodu çalıştır ekranda mousu gezdir nereye tıklatacaksan dur x ve y kordinatını al sonra kendi yazdıgın koda mouse sol tık left sağ tıklama için right yaz tek tıklama için MouseClick("left", x, y, 1) çift tıklama için MouseClick("left", x, y, 2) şeklinde kullan mouse tıklattıgın yerde bir değişiklik yapmadığın sürece çalışır kolay gelsin [/quote] Hocam kordinatlarda ve tıklamada sorun yok onu hallettim. MouseClick("right", 304, 278, 1, 5) bu kod işimi göüyor ancak çalışması pacher(Launcher) yani yapmış olduğum program penceresinin içinde çalışmasını istiyorum. Vermiş olduğum kod bilgisayarımın masaüstüne gidip tıklıyor. Program penceresinden kordinat alarak yaparım ama ekran boyutu değiştiğinde yani başka bilgisayarda denediğimde ekran boyutları farklı olduğundan atıyorum benim yazmış olduğum autoit program penceresi benim monitörde sağa yapışıksa, başka bilgisayarda dénediğimde ekran büyük olduğundan program penceresi sağa yapışması gerekirken ekranın biraz soluna kaymış oluyor. Dolayısıyla mouse de gidip boşluğa tıklıyor. Yani yapmak istediğim şey autoit de yaptığım programı tutup ekranın solunada çeksem yukarıya yada aşağıyada çeksem mouse hareketi program penceresinin içinde sürekli aynı şeklini koruyarak çalışması. Yani brogram penceresinin dışına çıkmadan çalışması. Edited March 30, 2011 by EgZOtiCs Quote Link to comment Share on other sites More sharing options...
blue_life Posted April 2, 2011 Share Posted April 2, 2011 (edited) Kısa bir bilgi; @EgZOtiCs bana özel mesaj atmıştı ve özelden onu yönlendirmiştim. Neyse, bunu belitmemin amacı, başka bir arkadaşımızında bu konuda yardıma ihtiyacı olabileceği düşüncesidir. Kısaca MouseClick komutları sorunlu komutlardır. Her zaman istediğimiz vermi vermeyebilir. Bunun yerine ControlClick vb. gibi Control komutları daha sorunsuzdur. Lakin Control komutları işinizi görmez ise MouseClick komutlarınıda kullanabilirsiniz. MouseClick komutlarıyla sorun yaşamamanız için; 1 - Tıklatacağınız pencreyi aktif yapmalısınız. Yani tüm pencerelerin önüde olmalı. 2 - Opt("MouseCoordMode", 0) opsiyonunu kodlarınıza eklemelisiniz. 3 - Autoit Info gibi bir programla ilgili pencre için pozizyonlarını alıp çalışmanıza eklemelisiniz. Hadi basit bir örnek verelim.... [codebox]Local $MouseCoordMode Local $Form1 = GUICreate("Form1 - Test", 460, 200) Local $Button1 = GUICtrlCreateButton("Mouse ile Buton2 ye tıklat", 20, 100,200, 50) Local $Button2 = GUICtrlCreateButton("Test için buraya tıklatılacak", 240, 100,200, 50) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case -3 Exit Case $Button1 $MouseCoordMode = Opt("MouseCoordMode", 0) WinActivate("Form1 - Test","") MouseClick("primary", 340, 140, 1, 1) Opt("MouseCoordMode", $MouseCoordMode) Case $Button2 MsgBox(64,"BlueLife","Test....") EndSwitch WEnd[/codebox] Örnekte gördüğünüz üzere pencreniz nerde olursa olusun birinci butona basarsak MouseClick komutuyla ikinci butona bastırabiliyoruz... Neyse kolay gelsin arkadaşlar... Edited April 2, 2011 by blue_life Quote Link to comment Share on other sites More sharing options...
korasoglu Posted May 26, 2011 Share Posted May 26, 2011 hocam niçin size özel mesaj yazılmıyor.dünde bügünde denedim olmuyor Quote Link to comment Share on other sites More sharing options...
blue_life Posted May 27, 2011 Share Posted May 27, 2011 @korasoglu Konu nedir? Bilgim dahilindeyse yazarsan, seni yönlendirmeye çalışırım. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.