x_files_x Posted May 4, 2017 Share Posted May 4, 2017 Merhaba arkadaşlar, bugün bir gui oluşturup bişiler deneyim dedim ve pencere işlemleri için küçük bir script yazdım, script normal çalışıyor ancak pencereyi engelle butonu yani block butonuna basınca scriptin butonları çalışmıyo ve kapatamıyorum durduramıyorum da, ancak hotkey kısayol ile kapatılıyor, ben block tusuna basınca engellesin, unblock tusuna basınca fonksiyon dursun istiyorum... #include <ButtonConstants.au3> #include <ComboConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Opt("GUIOnEventMode", 1) Opt("TrayAutoPause", 0) ;ikona basınca durdur olmaz Opt("WinTitleMatchMode", 2) ;Bu komutla onu kaldırabilirsin. Opt("TrayOnEventMode",1) Opt("TrayAutoPause",0) ;Eğer menününde olmamasını istiyorsan alttaki kodu kullan. Opt("TrayMenuMode", 1) $gostertry = TrayCreateItem("Menüyü Göster") ;ileti bu TrayItemSetOnEvent(-1, "goster") ; görevi "goster" functionunu calıstırmak ;~ TrayCreateItem("") $gizletry = TrayCreateItem("Menüyü Gizle") ;ileti bu TrayItemSetOnEvent(-1, "gizle") ; görevi "gizle" functionunu calıstırmak ;~ TrayCreateItem("") $config_tray = TrayCreateItem("..:Hakkımda:..") ;ileti bu TrayItemSetOnEvent(-1, "mms") ; görevi "mms" functionunu calıstırmak ;~ TrayCreateItem("") $exit_tray = TrayCreateItem(" Çıkış") TrayItemSetOnEvent(-1, "exxit") TraySetState();--------------------------- #Region ### START Koda GUI section ### Form= ;~ HotKeySet("{ESC}" ,"Kapat") ;kısayol gui kapat $Form1 = GUICreate("Win Tasker v.1.0", 236, 101, 728, 461) GUISetBkColor(0x4DBFD5) GUISetOnEvent($GUI_EVENT_CLOSE, "exxit") HotKeySet("{ESC}" ,"gizle") ;kısayol gui gizle $Combo1 = GUICtrlCreateCombo("", 8, 10, 170, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL)) ;combo ollusturdum $var = WinList() For $i = 1 to $var[0][0] GUICtrlSetOnEvent($Combo1, "Combo1Change") ;combo görevi If $var[$i][0] <> "" AND IsVisible($var[$i][1]) Then ;eger pencereler varsa GUICtrlSetData(-1, $var[$i][0], "") ;bunu comboya ekle EndIf Next $Button1 = GUICtrlCreateButton("Show", 8, 63, 42, 35) GUICtrlSetOnEvent($Button1, "Button1Click") $Button2 = GUICtrlCreateButton("Hide", 50, 63, 42, 35) GUICtrlSetOnEvent($Button2, "Button2Click") $Button3 = GUICtrlCreateButton("Reflesh", 185, 10, 46, 25) GUICtrlSetOnEvent($Button3, "Button3Click") $Button4 = GUICtrlCreateButton("Block", 92, 63, 42, 35) GUICtrlSetOnEvent($Button4, "Button4Click") $Button5 = GUICtrlCreateButton("Gizle", 134, 63, 46, 35) GUICtrlSetOnEvent($Button5, "gizle") $Button7 = GUICtrlCreateButton("Unblock", 185, 63, 46, 25) GUICtrlSetOnEvent($Button7, "Unblock") $Button6 = GUICtrlCreateButton("Rename", 185, 40, 46, 25) GUICtrlSetOnEvent($Button6, "Button6Click") $Combo2 = GUICtrlCreateCombo("", 8, 40, 170, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL)) ;combo ollusturdum GUISetState(@SW_SHOW) While 1 Sleep(100) WEnd Func Button1Click() $hWnd = (GUICtrlRead($combo1)) WinSetState($hWnd, "", @SW_SHOW) WinActivate($Form1) EndFunc Func Button2Click() $hWnd = (GUICtrlRead($combo1)) WinSetState($hWnd, "", @SW_HIDE) EndFunc Func Button3Click() If @Compiled = 1 Then Run( FileGetShortName(@ScriptFullPath)) Else Run( FileGetShortName(@AutoItExe) & " " & FileGetShortName(@ScriptFullPath)) EndIf Exit EndFunc Func Combo1Change() EndFunc Func Form1Close() Exit EndFunc Func IsVisible($handle) If BitAND(WinGetState($handle), 2) Then Return 1 Else Return 0 EndIf EndFunc ;==>IsVisible Func Button6Click() $winfirst = GUICtrlRead($combo1) $winsecond = GUICtrlRead($combo2) WinSetTitle($winfirst,"",$winsecond) EndFunc Func Button4Click() $winfirst = (GUICtrlRead($combo1)) While 1 WinKill($winfirst) Sleep(200) WEnd EndFunc Func mms() ;hakkımda try MsgBox(64, "Win Tasker v.1.0", "Yapımcı :" & @CRLF & "Adem SEZGİN") EndFunc Func goster() ;menuyu goster try GUISetState(@SW_SHOW) EndFunc Func Unblock() ;menuyu goster try Exit EndFunc Func exxit() ;exit try Exit EndFunc Func gizle() ;menuyu goster try GUISetState(@SW_HIDE) EndFunc Quote Link to comment Share on other sites More sharing options...
x_files_x Posted May 5, 2017 Author Share Posted May 5, 2017 up up cevap bekliyorum yardımsever arkadaşlardan, bir zamanlar autoit konusu bayağı iyiydi Quote Link to comment Share on other sites More sharing options...
DivaneTR Posted May 8, 2017 Share Posted May 8, 2017 Sleep kullandığın için problem yaşıyorsun. Block butonuna bastığından andan itibaren script sonsuz sleep içine giriyor. Bunun yerine AdlibRegister kullanarak bu sorunu aşabilirsin. Farklı şekilde de döngüyü break edebilirsin ama AdlibRegister bu iş için en iyisi. #include <ButtonConstants.au3> #include <ComboConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Opt("GUIOnEventMode", 1) Opt("TrayAutoPause", 0) ;ikona basınca durdur olmaz Opt("WinTitleMatchMode", 2) ;Bu komutla onu kaldırabilirsin. Opt("TrayOnEventMode", 1) Opt("TrayAutoPause", 0) ;Eğer menününde olmamasını istiyorsan alttaki kodu kullan. Opt("TrayMenuMode", 1) $gostertry = TrayCreateItem("Menüyü Göster") ;ileti bu TrayItemSetOnEvent(-1, "goster") ; görevi "goster" functionunu calıstırmak ;~ TrayCreateItem("") $gizletry = TrayCreateItem("Menüyü Gizle") ;ileti bu TrayItemSetOnEvent(-1, "gizle") ; görevi "gizle" functionunu calıstırmak ;~ TrayCreateItem("") $config_tray = TrayCreateItem("..:Hakkımda:..") ;ileti bu TrayItemSetOnEvent(-1, "mms") ; görevi "mms" functionunu calıstırmak ;~ TrayCreateItem("") $exit_tray = TrayCreateItem(" Çıkış") TrayItemSetOnEvent(-1, "exxit") TraySetState() ;--------------------------- #Region ### START Koda GUI section ### Form= ;~ HotKeySet("{ESC}" ,"Kapat") ;kısayol gui kapat $Form1 = GUICreate("Win Tasker v.1.0", 236, 101, 728, 461) GUISetBkColor(0x4DBFD5) GUISetOnEvent($GUI_EVENT_CLOSE, "exxit") HotKeySet("{ESC}", "gizle") ;kısayol gui gizle $Combo1 = GUICtrlCreateCombo("", 8, 10, 170, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL)) ;combo ollusturdum $var = WinList() Dim $winfirst For $i = 1 To $var[0][0] GUICtrlSetOnEvent($Combo1, "Combo1Change") ;combo görevi If $var[$i][0] <> "" And IsVisible($var[$i][1]) Then ;eger pencereler varsa GUICtrlSetData(-1, $var[$i][0], "") ;bunu comboya ekle EndIf Next $Button1 = GUICtrlCreateButton("Show", 8, 63, 42, 35) GUICtrlSetOnEvent($Button1, "Button1Click") $Button2 = GUICtrlCreateButton("Hide", 50, 63, 42, 35) GUICtrlSetOnEvent($Button2, "Button2Click") $Button3 = GUICtrlCreateButton("Reflesh", 185, 10, 46, 25) GUICtrlSetOnEvent($Button3, "Button3Click") $Button4 = GUICtrlCreateButton("Block", 92, 63, 42, 35) GUICtrlSetOnEvent($Button4, "Button4Click") $Button5 = GUICtrlCreateButton("Gizle", 134, 63, 46, 35) GUICtrlSetOnEvent($Button5, "gizle") $Button7 = GUICtrlCreateButton("Unblock", 185, 63, 46, 25) GUICtrlSetOnEvent($Button7, "Unblock") $Button6 = GUICtrlCreateButton("Rename", 185, 40, 46, 25) GUICtrlSetOnEvent($Button6, "Button6Click") $Combo2 = GUICtrlCreateCombo("", 8, 40, 170, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL)) ;combo ollusturdum GUISetState(@SW_SHOW) While 1 Sleep(100) WEnd Func Button1Click() $hWnd = (GUICtrlRead($Combo1)) WinSetState($hWnd, "", @SW_SHOW) WinActivate($Form1) EndFunc ;==>Button1Click Func Button2Click() $hWnd = (GUICtrlRead($Combo1)) WinSetState($hWnd, "", @SW_HIDE) EndFunc ;==>Button2Click Func Button3Click() If @Compiled = 1 Then Run(FileGetShortName(@ScriptFullPath)) Else Run(FileGetShortName(@AutoItExe) & " " & FileGetShortName(@ScriptFullPath)) EndIf Exit EndFunc ;==>Button3Click Func Combo1Change() EndFunc ;==>Combo1Change Func Form1Close() Exit EndFunc ;==>Form1Close Func IsVisible($handle) If BitAND(WinGetState($handle), 2) Then Return 1 Else Return 0 EndIf EndFunc ;==>IsVisible Func Button6Click() $winfirst = GUICtrlRead($Combo1) $winsecond = GUICtrlRead($Combo2) WinSetTitle($winfirst, "", $winsecond) EndFunc ;==>Button6Click Func Button4Click() $winfirst = (GUICtrlRead($Combo1)) AdlibRegister("_WinKill") EndFunc ;==>Button4Click Func _WinKill() WinKill($winfirst) EndFunc ;==>_WinKill Func mms() ;hakkımda try MsgBox(64, "Win Tasker v.1.0", "Yapımcı :" & @CRLF & "Adem SEZGİN") EndFunc ;==>mms Func goster() ;menuyu goster try GUISetState(@SW_SHOW) EndFunc ;==>goster Func Unblock() ;menuyu goster try AdlibUnRegister("_WinKill") ;Exit EndFunc ;==>Unblock Func exxit() ;exit try Exit EndFunc ;==>exxit Func gizle() ;menuyu goster try GUISetState(@SW_HIDE) EndFunc ;==>gizle 1 Quote Link to comment Share on other sites More sharing options...
x_files_x Posted May 8, 2017 Author Share Posted May 8, 2017 (edited) 4 saat önce, DivaneTR yazdı: Eline sağlık kardeşim, adlibi hiç bilmiyordum tamda bana göre bişiymiş 4 saat önce, DivaneTR yazdı: Sleep kullandığın için problem yaşıyorsun. Block butonuna bastığından andan itibaren script sonsuz sleep içine giriyor. Bunun yerine AdlibRegister kullanarak bu sorunu aşabilirsin. Farklı şekilde de döngüyü break edebilirsin ama AdlibRegister bu iş için en iyisi. #include <ButtonConstants.au3> #include <ComboConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Opt("GUIOnEventMode", 1) Opt("TrayAutoPause", 0) ;ikona basınca durdur olmaz Opt("WinTitleMatchMode", 2) ;Bu komutla onu kaldırabilirsin. Opt("TrayOnEventMode", 1) Opt("TrayAutoPause", 0) ;Eğer menününde olmamasını istiyorsan alttaki kodu kullan. Opt("TrayMenuMode", 1) $gostertry = TrayCreateItem("Menüyü Göster") ;ileti bu TrayItemSetOnEvent(-1, "goster") ; görevi "goster" functionunu calıstırmak ;~ TrayCreateItem("") $gizletry = TrayCreateItem("Menüyü Gizle") ;ileti bu TrayItemSetOnEvent(-1, "gizle") ; görevi "gizle" functionunu calıstırmak ;~ TrayCreateItem("") $config_tray = TrayCreateItem("..:Hakkımda:..") ;ileti bu TrayItemSetOnEvent(-1, "mms") ; görevi "mms" functionunu calıstırmak ;~ TrayCreateItem("") $exit_tray = TrayCreateItem(" Çıkış") TrayItemSetOnEvent(-1, "exxit") TraySetState() ;--------------------------- #Region ### START Koda GUI section ### Form= ;~ HotKeySet("{ESC}" ,"Kapat") ;kısayol gui kapat $Form1 = GUICreate("Win Tasker v.1.0", 236, 101, 728, 461) GUISetBkColor(0x4DBFD5) GUISetOnEvent($GUI_EVENT_CLOSE, "exxit") HotKeySet("{ESC}", "gizle") ;kısayol gui gizle $Combo1 = GUICtrlCreateCombo("", 8, 10, 170, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL)) ;combo ollusturdum $var = WinList() Dim $winfirst For $i = 1 To $var[0][0] GUICtrlSetOnEvent($Combo1, "Combo1Change") ;combo görevi If $var[$i][0] <> "" And IsVisible($var[$i][1]) Then ;eger pencereler varsa GUICtrlSetData(-1, $var[$i][0], "") ;bunu comboya ekle EndIf Next $Button1 = GUICtrlCreateButton("Show", 8, 63, 42, 35) GUICtrlSetOnEvent($Button1, "Button1Click") $Button2 = GUICtrlCreateButton("Hide", 50, 63, 42, 35) GUICtrlSetOnEvent($Button2, "Button2Click") $Button3 = GUICtrlCreateButton("Reflesh", 185, 10, 46, 25) GUICtrlSetOnEvent($Button3, "Button3Click") $Button4 = GUICtrlCreateButton("Block", 92, 63, 42, 35) GUICtrlSetOnEvent($Button4, "Button4Click") $Button5 = GUICtrlCreateButton("Gizle", 134, 63, 46, 35) GUICtrlSetOnEvent($Button5, "gizle") $Button7 = GUICtrlCreateButton("Unblock", 185, 63, 46, 25) GUICtrlSetOnEvent($Button7, "Unblock") $Button6 = GUICtrlCreateButton("Rename", 185, 40, 46, 25) GUICtrlSetOnEvent($Button6, "Button6Click") $Combo2 = GUICtrlCreateCombo("", 8, 40, 170, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL)) ;combo ollusturdum GUISetState(@SW_SHOW) While 1 Sleep(100) WEnd Func Button1Click() $hWnd = (GUICtrlRead($Combo1)) WinSetState($hWnd, "", @SW_SHOW) WinActivate($Form1) EndFunc ;==>Button1Click Func Button2Click() $hWnd = (GUICtrlRead($Combo1)) WinSetState($hWnd, "", @SW_HIDE) EndFunc ;==>Button2Click Func Button3Click() If @Compiled = 1 Then Run(FileGetShortName(@ScriptFullPath)) Else Run(FileGetShortName(@AutoItExe) & " " & FileGetShortName(@ScriptFullPath)) EndIf Exit EndFunc ;==>Button3Click Func Combo1Change() EndFunc ;==>Combo1Change Func Form1Close() Exit EndFunc ;==>Form1Close Func IsVisible($handle) If BitAND(WinGetState($handle), 2) Then Return 1 Else Return 0 EndIf EndFunc ;==>IsVisible Func Button6Click() $winfirst = GUICtrlRead($Combo1) $winsecond = GUICtrlRead($Combo2) WinSetTitle($winfirst, "", $winsecond) EndFunc ;==>Button6Click Func Button4Click() $winfirst = (GUICtrlRead($Combo1)) AdlibRegister("_WinKill") EndFunc ;==>Button4Click Func _WinKill() WinKill($winfirst) EndFunc ;==>_WinKill Func mms() ;hakkımda try MsgBox(64, "Win Tasker v.1.0", "Yapımcı :" & @CRLF & "Adem SEZGİN") EndFunc ;==>mms Func goster() ;menuyu goster try GUISetState(@SW_SHOW) EndFunc ;==>goster Func Unblock() ;menuyu goster try AdlibUnRegister("_WinKill") ;Exit EndFunc ;==>Unblock Func exxit() ;exit try Exit EndFunc ;==>exxit Func gizle() ;menuyu goster try GUISetState(@SW_HIDE) EndFunc ;==>gizle Edited May 8, 2017 by x_files_x 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.