Jump to content

Recommended Posts

Posted (edited)

Hi all..

My application Idea is to check for window, If the windows is exist then set hotkeyset(control+c) , and if not then unregister that hotkey.

but whatever I tried It keeps stuck with registered hotkey, that's what I have tried:

#Include <WinAPI.au3>

While 1
    $GetActive= _WinAPI_GetClassName(WinGetHandle("[ACTIVE]")); Get window Class

    Select
        Case $GetActive= 'ThunderRT6MDIForm'
            ConsoleWrite($GetActive &@crlf)
            HotKeySet("^c", "_Func")
        Case Else
            ConsoleWrite('Else Print '& $GetActive &@crlf)
            HotKeySet("^c")
    EndSelect
    Sleep(500)
WEnd

Func _Func()
    MsgBox(0,0,0)
EndFunc
#Include <WinAPI.au3>

While 1
    $GetActive= _WinAPI_GetClassName(WinGetHandle("[ACTIVE]")); Get window Class
    If $GetActive= 'ThunderRT6MDIForm'  Then
        ConsoleWrite($GetActive&@crlf)
        HotKeySet("^c", "_Func")
    Else
        ConsoleWrite('Else Print '& $GetActive&@crlf)
        HotKeySet("^c")
    EndIf
    Sleep(500)
WEnd

Func _Func()
    MsgBox(0,0,0)
EndFunc

 

Edited by abdulrahmanok
Posted
  On 11/18/2019 at 5:20 AM, abdulrahmanok said:

but whatever I tried It keeps stuck with registered hotkey

Expand  

For me this works :

#Include <WinAPI.au3>
HotKeySet("{ESC}", "_Exit")

While True

    $GetActive= _WinAPI_GetClassName(WinGetHandle("[ACTIVE]")); Get window Class
    If $GetActive= 'Notepad'  Then
        ConsoleWrite($GetActive & @CRLF)
        HotKeySet("^c", "_Func") ; (control+c)
;~         HotKeySet("{PAUSE}", "_Func")
    Else
        ConsoleWrite('Else : '& $GetActive & @CRLF)
        HotKeySet("^c")
;~         HotKeySet("{PAUSE}", "_Func")

    EndIf
    Sleep(500)
WEnd

Func _Func()
    MsgBox(0,0,0)
EndFunc

Func _Exit()
    ConsoleWrite("! EXIT" & @CRLF)
    Exit
EndFunc

 

Musashi-C64.png

"In the beginning the Universe was created. This has made a lot of people very angry and been widely regarded as a bad move."

Posted (edited)
  On 11/18/2019 at 8:05 AM, Musashi said:

For me this works :

#Include <WinAPI.au3>
HotKeySet("{ESC}", "_Exit")

While True

    $GetActive= _WinAPI_GetClassName(WinGetHandle("[ACTIVE]")); Get window Class
    If $GetActive= 'Notepad'  Then
        ConsoleWrite($GetActive & @CRLF)
        HotKeySet("^c", "_Func") ; (control+c)
;~         HotKeySet("{PAUSE}", "_Func")
    Else
        ConsoleWrite('Else : '& $GetActive & @CRLF)
        HotKeySet("^c")
;~         HotKeySet("{PAUSE}", "_Func")

    EndIf
    Sleep(500)
WEnd

Func _Func()
    MsgBox(0,0,0)
EndFunc

Func _Exit()
    ConsoleWrite("! EXIT" & @CRLF)
    Exit
EndFunc

 

Expand  

Thanks for response, after test I found that console write is reading active window correct, but it still Ignore code:  HotKeySet("^c", "_Func")  

so I don't receive any MsgBox 

Its working now ... very strange

anyway, thanks for help 😊

Edited by abdulrahmanok
Posted

I have found the issue... it was caused because of Language layout , because the target application is in (Arabic) so the solution was very simple:

I Only changed this:

HotKeySet("^c", "_Func") ; (control+c)

HotKeySet("^c")

To be like this:

HotKeySet("^ؤ", "_Func") ; (control+c)

HotKeySet("^ؤ")

So this is the final code:

#Include <WinAPI.au3>
HotKeySet("{ESC}", "_Exit")

While True

    $GetActive= _WinAPI_GetClassName(WinGetHandle("[ACTIVE]")); Get window Class
    If $GetActive= 'ThunderRT6MDIForm'  Then
        ConsoleWrite($GetActive & @CRLF)

        HotKeySet("^ؤ", "_Func") ; (control+c)
;~         HotKeySet("{PAUSE}", "_Func")

    Else
        ConsoleWrite('Else : '& $GetActive & @CRLF)
        HotKeySet("^ؤ")
;~         HotKeySet("{PAUSE}", "_Func")

    EndIf
    Sleep(500)
WEnd

Func _Func()
    MsgBox(0,0,0)
EndFunc

Func _Exit()
    ConsoleWrite("! EXIT" & @CRLF)
    Exit
EndFunc

 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...