Dj Demir Posted September 3, 2010 Share Posted September 3, 2010 Merhaba arkadaşlar ufak bir sorunum var ne nasıl çözeceğimi bilemedim Herhangi bir inputa girilen yazıları CtrL+A kombinasyonu kullanarak seçemedim ve inputun içinde enter tuşunu da kullanamadım ya da ne bilim ctrl+backspace bunları kullanabileceğim bir fonksiyon ya da bir komut var mı acaba ? _IsPressed ile yapılır mı acaba ? Link to comment Share on other sites More sharing options...
blue_life Posted September 3, 2010 Share Posted September 3, 2010 @Dj Demir HotKeySet ile yapılabilir. Tabi farklı yollarıda vardır. Denemek lazım... Örnek için edit; Opt("GUIOnEventMode", 1) Global $Hotkey_CtrlA = False, $Win_Active Global $Blue_GUI = GUICreate("BlueLife Hotkey Test (ctrl + a)", 430, 250) GUISetOnEvent(-3, "_Bl_EXIT") Global $Blue_EDIT1 = GUICtrlCreateEdit("Edit => Ctrl + a ile seç", 10, 10, 200, 200) Global $Blue_EDIT2 = GUICtrlCreateEdit("Edit => Ctrl + a ile seç", 220, 10, 200, 200) Global $Blue_INPUT1 = GUICtrlCreateInput("Input => Ctrl + a ile seç - Onay için Enter", 10, 220, 410, 25) GUICtrlSetOnEvent(-1, "_Bl_INPUT_COMMAND") ;Enter için GUISetState(@SW_SHOW) While 1 ; Burdaki satırlar, hotkeyimizin sadece guimiz aktifeken işlemesini sağlar $Win_Active = WinActive($Blue_GUI) If $Win_Active And Not $Hotkey_CtrlA Then $Hotkey_CtrlA = True HotKeySet("^a", "_BL_SELECT_ALL") ElseIf Not $Win_Active And $Hotkey_CtrlA Then $Hotkey_CtrlA = False HotKeySet("^a") EndIf Sleep(100) WEnd Func _BL_SELECT_ALL() ;Writed BlueLife Local $User32 = "user32.dll" Local $aResult = DllCall($User32, "hwnd", "GetFocus") If @error Then Return SetError(1, 0, 0) $aResult = DllCall($User32, "lresult", "SendMessageW", "hwnd", $aResult[0], "uint", 0xB1, "wparam", 0, "lparam", -1) If @error Then Return SetError(1, 0, 0) Return 1 EndFunc ;==>_BL_SELECT_ALL Func _Bl_INPUT_COMMAND() MsgBox(64, "", "Yapılacaklar buraya") EndFunc ;==>_Bl_INPUT_COMMAND Func _Bl_EXIT() Exit EndFunc ;==>_Bl_EXIT Link to comment Share on other sites More sharing options...
Dj Demir Posted September 4, 2010 Author Share Posted September 4, 2010 Gerçekten siz bir numarasınız Sizin sayenizde AutoIt işine başlamıştım O da ayrı bir minnettarlık konusu Hocam Evet HotKeySet ile tuşlar gönderilir ama Tümünü Seç fonksiyonu yazamadığım için mecbur sormak zorunda kaldım Çok Teşekkür ederim Ellerinize Sağlık Link to comment Share on other sites More sharing options...
blackman12 Posted September 4, 2010 Share Posted September 4, 2010 Her ne kadar önlem alsan da Hotkeyset bazen sorun çıkarıyor blue_life. Ben çözümü GuiSetAccelerators da buldum.Ama bu özelliği kullanabilmek için mutlaka bir object kullanmanız lazımdı bunu da objeyi oluşturup SetState e @gui_hide vererek çözdüm.Help dosyası örneği: #include <GUIConstantsEx.au3> GUICreate("Custom Msgbox", 210, 80) GUICtrlCreateLabel("Please click a button!", 10, 10) $YesID = GUICtrlCreateButton("Yes", 10, 50, 50, 20) $NoID = GUICtrlCreateButton("No", 80, 50, 50, 20) $ExitID = GUICtrlCreateButton("Exit", 150, 50, 50, 20) ; Set accelerators for Ctrl+y and Ctrl+n Dim $AccelKeys[2][2]=[["^y", $YesID], ["^n", $NoID]] GUISetAccelerators($AccelKeys) GUISetState() ; display the GUI Do $msg = GUIGetMsg() Select Case $msg = $YesID MsgBox(0, "You clicked on", "Yes") Case $msg = $NoID MsgBox(0, "You clicked on", "No") Case $msg = $ExitID MsgBox(0, "You clicked on", "Exit") Case $msg = $GUI_EVENT_CLOSE MsgBox(0, "You clicked on", "Close") EndSelect Until $msg = $GUI_EVENT_CLOSE Or $msg = $ExitID Link to comment Share on other sites More sharing options...
blue_life Posted September 4, 2010 Share Posted September 4, 2010 @blackman12 Önlemini alırsan hotkeyde aslında kolay kolay sorun çıkmaz. Misal yukarıda ilgili autoit guisi aktif ise hotkey çalışıyor. Böylece uygulamalarda karışıklık olmaz. Tabi verdiğim örnek düzenlenebilir. Diğer taraftan GUISetAccelerators daha önce hiç kullanmadım lakin güzel bir komutmuş . Tabi bu ilgili gui elamanına atanmış görevi çalıştırıyor. Yani HotKeySet baya farklı. Yukarıdaki örnekte GUISetAccelerators kullanmamız için bir gui elamını oluşturup atama yapmak gerekecektir. Kısacası ben deneme amaçlı bir label oluşturup görev atadım ve çalıştı Opt("GUIOnEventMode", 1) Global $Blue_GUI = GUICreate("BlueLife Hotkey Test (ctrl + a)", 430, 250) GUISetOnEvent(-3, "_Bl_EXIT") Global $Blue_EDIT1 = GUICtrlCreateEdit("Edit => Ctrl + a ile seç", 10, 10, 200, 200) Global $Blue_EDIT2 = GUICtrlCreateEdit("Edit => Ctrl + a ile seç", 220, 10, 200, 200) Global $Blue_INPUT1 = GUICtrlCreateInput("Input => Ctrl + a ile seç - Onay için Enter", 10, 220, 410, 25) GUICtrlSetOnEvent(-1, "_Bl_INPUT_COMMAND") ;Enter için _BL_SELECT_ALL_2() GUISetState(@SW_SHOW) While 1 Sleep(100) WEnd Func _BL_SELECT_ALL_2() ;Writed BlueLife If Not IsDeclared("Ctrl_A_Keys") Then Global $Ctrl_A_Keys[1][2]=[["^a", GUICtrlCreateLabel("ddd",1,1,1,1)]] GUICtrlSetOnEvent($Ctrl_A_Keys[0][1], "_BL_SELECT_ALL_2") GUICtrlSetState($Ctrl_A_Keys[0][1],32) GUISetAccelerators($Ctrl_A_Keys) EndIf Local $User32 = "user32.dll" Local $aResult = DllCall($User32, "hwnd", "GetFocus") If @error Then Return SetError(1, 0, 0) $aResult = DllCall($User32, "lresult", "SendMessageW", "hwnd", $aResult[0], "uint", 0xB1, "wparam", 0, "lparam", -1) If @error Then Return SetError(1, 0, 0) Return 1 EndFunc ;==>_BL_SELECT_ALL Func _Bl_INPUT_COMMAND() MsgBox(64, "", "Yapılacaklar buraya") EndFunc ;==>_Bl_INPUT_COMMAND Func _Bl_EXIT() Exit EndFunc ;==>_Bl_EXIT Link to comment Share on other sites More sharing options...
blackman12 Posted September 4, 2010 Share Posted September 4, 2010 blue_life evet aynen dediğin ve yukarıda benim dediğim gibi objeye verilen görevi yapıyor. Ama çözümü de belli demiştim objeyi görünmez yaparak kısayol gibi kullanılabiliyor ve sadece gui içinde etkin kısayollar oluşturuyor.Böylesi bence HotKeySet ten daha sağlıklı Ki ben de HotKeySeti aynı senin gibi Winactive komutuyla kullanıyordum ama bazen sorun çıkartıyordu sonra bu yöntemi kullanmaya başladım. Link to comment Share on other sites More sharing options...
guven_memo Posted October 9, 2010 Share Posted October 9, 2010 Arkadaşlar bu hotkeyseti ben 4-5 tuşa basınca fonksiyon görmesini istiyorum.ama olmuyo.mesela QWERTY harflerine basılınca fonksiyon çalışmaya başlasın. Hotkeyset("QWERTY","ac") Hotkeyset("{Q}{W}{E}{R}{T}{Y}","ac") Bunun ikisinide denedim ama olmadı.Böyle birşey mümkün mü? Link to comment Share on other sites More sharing options...
blackman12 Posted October 9, 2010 Share Posted October 9, 2010 http://www.tnctr.com/topic/132043-pc-kilitleyici-11 Link to comment Share on other sites More sharing options...
guven_memo Posted October 11, 2010 Share Posted October 11, 2010 Hiç bişey anlamadım blackman12. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.