Close
Showing results 1 to 10 of 12

Hybrid View

  1. #1

    Default

    Quote Originally Posted by papounet View Post
    I have most probably made HKN do much more than its author would have though reasonable.
    I know you're joking but I'll take the opportunity to say something serious. It became obvious two years ago, when HotkeyNet's beta began, that it needed a real programming language. People kept writing complicated things and bumping into walls. But instead of replacing the language, which would have been a lot of work, I kept adding kludges to the existing language. Finally, with HotkeyNet 2, I wrote a new language. That new language will eventually be in Mojo.

    http://hotkeynet.com/hkn2/ref/LanguageOverview.html

    Points of Interest:

    1. the PIP code is not the fastest, but is the safest I could get,
    You may be able to PIP faster by setting the small windows to <AlwaysOnTop> instead of using <SetWinRegion>.


    The HKN button is not always refreshed properly from within WOW, It works from within Windows
    there is already a work-around the issue<if hotKeyNetIsOn giving delayed results> issue,
    Is this a bug in the script or HotkeyNet? If it's HotkeyNet, which button?
    �Author of HotkeyNet and Mojo

  2. #2

    Default Clarification and compliments

    Indeed, I meant
    I have most probably made HKN do much more than its author would have though reasonable.
    as a joke whereas I should have been a compliment.

    I have extensively researched the event handler replacements tools which allow multiboxing. HotKeyNet had the leanest "programming" aspect to it. I am glas I have choosen it. Kudos to you.

    Nontheless, I wanted to bring to your attention several small details:

    1. you state that there is a restriction regarding if-else-endif not being allowed in command. Using DoHotKey, I was able to call an if-then-else construct from a command.
    I am not suggesting you change but you may want to have the work-around documented. I found the ability to execute if-then-else from within an autoexec command worthwhile

    2 indeed, I have tried coding PIP with AlwaysOnTop On for the window which is minimized and maximizing the other window below. But I have no control over the panels z-order, so I would have to reset the panels on top of the windows which is already ontop. furthermoer, if the PIP windows is on top, then it is getting the input stream if the mouse is over it. The region mechanism is working very nicely.
    I could perhaps do away with <SetWinRegion none> which was when I was adjusting windows coordinates and not refreshing the back window
    At one time I had to add a UpdateWin becaus I was not sure ShowWin would eb enough. I could perhaps do away with it.
    Please note that I have choosen minimized dimension which are an exact divide by 6 of the fullscreensize

    3. It is my ON button in the panel HKN create din the autoexec, and updated by the ToggleHotKeys
    Ther is a strange sync bug when I have the HotKeyAreOn call in the autoexec commanbd through the DoHotKey.
    The status is properly read by the DoHotKey, and the panel is updated correctly.
    But, then the first time thetoggle key is pressed, HotKeyAreOn is on but the panel is not updated
    thereafter, everytime the toggle key is presssed the state is updated but the panel is the reverse of what it should be
    It looks like this:
    Autoexec = status is correct (keys are handled or not depending on the state of HKN when load script is invoked / panel is set correctly
    toggle key = status change correctly but panel button does not change
    toggle key = status change correctly, panel toggle (so it is desync)
    toggle Key = status change correctly, panel toggle .....
    A few quick PIP change may bring it back in sync

    Even in window, I can reproduce the desync by hammering at the togglekey for a few seconds, at one point, the panel will display that HKN is active whereas it is not (or viceversa).

    I have tried the Toggle code with the test inlined, and still same desync

    <hotkey pause>
    <sendpc local>
    <ToggleHotkeys>
    // <DoHotkey Hotkey BrowserForward>
    <If HotkeysAreOff>
    <SetButtonColors ON 0x00FF00 0x0F0F0F>
    <SetButtonText ON HKN>
    <Else>
    <SetButtonColors ON 0x0F0F0F 0x00FF00 >
    <SetButtonText ON off>
    <endif>
    <TargetWin HKN>
    <AlwaysOnTop on>
    <UpdateWin>


    4. I lost a few hours debuggin the Z code which on my french Logitech keyboard seems to belong to oem-7 key, I had in my keylist a oem2-8 except Z construct and yet, Z and CTRL-Z, where generated and shown in the loaded HotKeyList

    5. WOW keyboard handling is bizarre to say the least, It took me a while to get that / is CTRL-: . I would have bet that without HKN, / was recognised


    Again, it took more time I would have tought but it is working quite nicely
    Last edited by papounet : 12-04-2009 at 03:26 PM Reason: clarification of which button is faulty

  3. #3

    Default behavior of keyhandling in WOW

    To further describe the issue I had with Z and oem-7:

    With HKN set up as follow roughly as follow:
    <KeyList MyList A-Z, Oem2-8 except Z,

    Pressing the oem-7 (which is marked "Z" on my Logitech keyboard would get me a "z" in a chat window in WOW but not trigger the "forward" command (as arrow-up would do) or any macro connected to
    But ALT + oem-7 Would trigger the macro or move forward !!!

    <KeyList MyList A-Y, Oem2-6,oem8 thus works

  4. #4

    Default

    Quote Originally Posted by papounet View Post
    To further describe the issue I had with Z and oem-7
    Whenever you want to trigger a hotkey with a particular key, all you need to do is press the key with your finger while you look at "Last key pressed" on HotkeyNet's screen.

    HotkeyNet will show you the name of the key (i.e. the virtual key code) that is being received by HotkeyNet from that key.

    Whatever name HotkeyNet shows for that key, use that name as the trigger of a hotkey. That hotkey will get triggered when you press the key with your finger.
    �Author of HotkeyNet and Mojo

  5. #5

    Default

    Quote Originally Posted by papounet View Post
    1. you state that there is a restriction regarding if-else-endif not being allowed in command. Using DoHotKey, I was able to call an if-then-else construct from a command.
    I am not suggesting you change but you may want to have the work-around documented. I found the ability to execute if-then-else from within an autoexec command worthwhile
    This is a well known workaround. Many people do this, and I've been recommending it for a long time. Thanks for suggesting that it should be documented.. I just added it to five or six pages on the website.

    Here's a useful, related trick. Both the operating system and HotkeyNet recognize dozens of keys that don't exist on Western keyboards. People can use these keys as triggers when they define hotkeys that will be used as subroutines with DoHotkey. That way they don't "lose" any real key combinations that they might want to press with their fingers. Here are some keys that can be used this way. If people define some of these "non-existent" keys as modfiers, they can make millions of hotkey triggers. (Triggers can contain up to sixteen modifiers.)

    Code:
    OemAX
    Oem102
    IcoHelp
    Ico00
    ProcessKey
    IcoClear
    Packet
    OemReset
    OemJump
    OemPa1
    OemPa2
    OemPa3
    OemWsCtrl
    OemCuSel
    OemFinish
    OemCopy
    OemAuto
    OemEnlw
    OemBackTab
    Attn
    CrSel
    ExSel
    EREOF
    �Author of HotkeyNet and Mojo

  6. #6

    Default

    Quote Originally Posted by Freddie View Post
    This is a well known workaround. Many people do this, and I've been recommending it for a long time. Thanks for suggesting that it should be documented.. I just added it to five or six pages on the website.

    Here's a useful, related trick. Both the operating system and HotkeyNet recognize dozens of keys that don't exist on Western keyboards. People can use these keys as triggers when they define hotkeys that will be used as subroutines with DoHotkey. That way they don't "lose" any real key combinations that they might want to press with their fingers. Here are some keys that can be used this way. If people define some of these "non-existent" keys as modfiers, they can make millions of hotkey triggers. (Triggers can contain up to sixteen modifiers.)

    Code:
    OemAX
    Oem102
    IcoHelp
    Ico00
    ProcessKey
    IcoClear
    Packet
    OemReset
    OemJump
    OemPa1
    OemPa2
    OemPa3
    OemWsCtrl
    OemCuSel
    OemFinish
    OemCopy
    OemAuto
    OemEnlw
    OemBackTab
    Attn
    CrSel
    ExSel
    EREOF
    WOOT!!

    Cool, there is a good solution for my nested If-Cases
    I haven't found this info on hotkeynet.com.
    I don't suffer from Schizophrenia, I enjoy every moment of it !

  7. #7

    Default

    Quote Originally Posted by papounet View Post
    3. It is my ON button in the panel HKN create din the autoexec, and updated by the ToggleHotKeys
    Ther is a strange sync bug when I have the HotKeyAreOn call in the autoexec commanbd through the DoHotKey.
    The status is properly read by the DoHotKey, and the panel is updated correctly.
    I don't remember exactly how I wrote this but I think the code that turns hotkeys off and on, runs asynchronously to the rest of the hotkey. I would have to watch the code execute in the debugger to refresh my memory. I'm probably not going to work any further on HotkeyNet (I've moved on to Mojo) so I can only say I'm sorry for the problem.
    �Author of HotkeyNet and Mojo

Tags for this Thread

Posting Rules

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •