Close
Page 1 of 4 1 2 3 ... LastLast
Showing results 1 to 10 of 35
  1. #1

    Default [HotKeyNet] Sending keystrokes from slave to master?

    I've been using HotKeyNet for a little while now and it works very well for me. But I decided to try and get a FTL setup going between my 2 computers. I also use Input Director to allow me to control the second computer screen as if I had dual monitors.

    The problem that I am having is I cannot get anything to transmit to the master if the slave system has focus. Transmitting to the slave when the master has focus is no problem. Am I missing something or is this just not possible? I've tried various sample FTL scripts and nothing has worked yet. If I could just get it to work once then I would be able to continue with my setup.

    Here is a test script I tried and it sends from the master to the slave but not from the slave to the master.
    Code:
    <Label w1 192.168.0.110 SendWinM WoW1>
    <Label w2 192.168.0.109 SendWinM WoW2>
    
    <Hotkey ScrollLockOn Alt Ctrl L>
        <SendPC 192.168.0.110>
        <Run "D:\Program Files\World of Warcraft\WoW.exe">
        <RenameWin World WoW1>
        <wait 10000>
        <SendWinM WoW1>
            <text "Account">
            <wait 500>
            <key Tab>
            <wait 500>
            <text "Pass">
            <wait 100>
            <key Enter>
        <SendPC 192.168.0.109>
        <Run "D:\Program Files\World of Warcraft\WoW.exe">
        <RenameWin World WoW2>
        <wait 10000>
        <SendWinM WoW2>
            <text "Account">
            <wait 500>
            <key Tab>
            <wait 500>
            <text "Pass">
            <wait 100>
            <key Enter>
    
    <Hotkey Numpad1>
        <If ActiveWinIs WoW1>
            <SendLabel w2>
            <Key Numpad1>
        <Else If ActiveWinIs WoW2>
            <SendLabel w1>
            <Key Numpad1>

  2. #2

    Default

    What does HKN say when you try to send the key from the slave?
    Blog : Herding Khats
    Team : Kina - Çroaker - Messkit - Lìfetaker - Wìdowmaker
    Newbie Guides : Multiboxing Vol. 1 - Multiboxing Vol. 2 - HotKeyNet - Jamba
    The Almighty Lax made a liar out of me, apparently I DO get prizes for it.
    *Commences Wielding the Banhammer like there's piñatas up in here and I'm Lady Thor*

    _ Forum search letting you down? Use the custom Google search _

  3. #3

    Default

    The If-statements in your <Hotkey NumPad1> are asking which WoW has the focus on the local PC.

    But one of the WoWs is running on the remote PC. It never has the focus on the local PC. Therefore, one of the If-statements in your hotkey can never be true and it can never execute.

    If you want HotkeyNet to do something conditionally based on conditions on the remote PC, you need to load a script on the remote PC. Put a hotkey in that script with the appropriate If-statement. Then trigger that hotkey from the local PC with a second hotkey definition that includes <DoHotkey ...>.

    P.S. Each of your machines has its own active window (a window that has the focus). Input Director (like all KM programs) disguises this fact from you by making it appear that there is only one active window for both machines. But really there are two active windows at all times, one on each machine. You may need to take this into account.
    Last edited by Freddie : 02-03-2011 at 02:58 AM
    �Author of HotkeyNet and Mojo

  4. #4

    Default

    Okay, that makes sense. I was thinking that might have been the problem after I posted this but I wasn't sure what to do about it. I wasn't aware I could load a script into the slave client. I'll mess around with it some more tomorrow and post back the results. Thanks for the input.

  5. #5

    Default

    You can load scripts into any copy of HotkeyNet and press hotkeys on any keyboard, but you probably don't need to bother.

    If you can assume that when the local WoW's not active, the remote one is, you can just replace the second If with Else.

    And you don't need to rename the WoWs. Renaming is only necessary to distinguish multiple instances on the same PC.

    Code:
    <Hotkey Numpad1>
       <If ActiveWinIs "World of Warcraft">
           <SendLabel ....>
           <Key Numpad1>
       <Else>
           <SendLabel ....>
           <Key Numpad1>
    Last edited by Freddie : 02-03-2011 at 06:02 AM
    �Author of HotkeyNet and Mojo

  6. #6

    Default

    Yeah, I'm aware of that. I did the renaming because I actually run 4 toons on one box and 1 toon on the other box. So I just rename them all WoW1-WoW5 so I know which window is which. I was only doing 1 on each box until I get this issue worked out. So using "Else" will not work for me because I have 3 other toons.

  7. #7

    Default

    Quote Originally Posted by Nomahd View Post
    I was only doing 1 on each box until I get this issue worked out..
    You must be a programmer.

    One of the things I've learned from supporting HotkeyNet for four years is that it doesn't occur to people that the way to write complex scripts is to start with something simple. After the simple thing is working, add to it and make it more complex.

    It seems like the most obvious thing in the world, but it just doesn't occur to people. It never ceases to amaze me. They will post 200-line definitions with embedded templates and includes and say, "I can't figure out what's wrong. Help!"

    Well of course they can't figure out. The definition is too complicated. I can't figure it out either.
    Last edited by Freddie : 02-03-2011 at 06:22 AM
    �Author of HotkeyNet and Mojo

  8. #8

    Default

    Quote Originally Posted by Freddie View Post
    You must be a programmer.
    Guilty.
    I've dabbled in programming as a hobby since I got my first computer (Commodore 64) like 20 years ago. It seems that no matter how much you know about computers there are always new things to learn, and new problems to face.

    Quote Originally Posted by Freddie View Post
    One of the things I've learned from supporting HotkeyNet for four years is that it doesn't occur to people that the way to write complex scripts is to start with something simple. After the simple thing is working, add to it and make it more complex.

    It seems like the most obvious thing in the world, but it just doesn't occur to people. It never ceases to amaze me. They will post 200-line definitions with embedded templates and includes and say, "I can't figure out what's wrong. Help!"

    Well of course they can't figure out. The definition is too complicated. I can't figure it out either.
    I know exactly what you mean! That's why I used such a simple example. It's much easier to fix the problem at hand if you don't have pages of code to sort through.

    Anyway, as for the problem, it's gone now. Since I learned that I could load a script on the slave client all of my problems have disappeared. I can't believe that after looking through pages and pages of Google results for HotKeyNet, FTL, etc. that I never once seen anything stating to put a script on the slave client. It might have been stated and I just missed it...

    Here's the revised example script and the slave client script I used to test (just in case this helps someone else):

    Master Client:
    Code:
    <Label w1 Local SendWinM WoW1>
    <Label w2 192.168.0.109 SendWinM WoW2>
    <Label w3 192.168.0.109 SendWinM WoW3>
    <Label w4 192.168.0.109 SendWinM WoW4>
    <Label w5 192.168.0.109 SendWinM WoW5>
    
    
    <Hotkey ScrollLockOn Alt Ctrl L>
        <SendPC Local>
        <Run "D:\Program Files\World of Warcraft\WoW.exe">
        <RenameWin World WoW1>
        <wait 10000>
        <SendWinM WoW1>
            <text "Account">
            <wait 500>
            <key Tab>
            <wait 500>
            <text "Pass">
            <wait 100>
            <key Enter>
    
        <SendPC 192.168.0.109>
        <Run "D:\Program Files\World of Warcraft\WoW.exe">
        <RenameWin World WoW2>
        <wait 10000>
        <SendWinM WoW2>
            <SetWinPos 0 0>
            <SetWinSize 704 440>
            <RemoveWinFrame>
            <text "Account">
            <wait 500>
            <key Tab>
            <wait 500>
            <text "Pass">
            <wait 100>
            <key Enter>
    
        <SendPC 192.168.0.109>
        <Run "D:\Program Files\World of Warcraft\WoW.exe">
        <RenameWin World WoW3>
        <wait 10000>
        <SendWinM WoW3>
            <SetWinPos 576 0>
            <SetWinSize 704 440>
            <RemoveWinFrame>
            <text "Account">
            <wait 500>
            <key Tab>
            <wait 500>
            <text "Pass">
            <wait 100>
            <key Enter>
    
        <SendPC 192.168.0.109>
        <Run "D:\Program Files\World of Warcraft\WoW.exe">
        <RenameWin World WoW4>
        <wait 10000>
        <SendWinM WoW4>
            <SetWinPos 0 360>
            <SetWinSize 704 440>
            <RemoveWinFrame>
            <text "Account">
            <wait 500>
            <key Tab>
            <wait 500>
            <text "Pass">
            <wait 100>
            <key Enter>
    
        <SendPC 192.168.0.109>
        <Run "D:\Program Files\World of Warcraft\WoW.exe">
        <RenameWin World WoW5>
        <wait 10000>
        <SendWinM WoW5>
            <SetWinPos 576 360>
            <SetWinSize 704 440>
            <RemoveWinFrame>
            <text "Account">
            <wait 500>
            <key Tab>
            <wait 500>
            <text "Pass">
            <wait 100>
            <key Enter>
    
    
    <Hotkey Numpad1>
        <SendLabel w2, w3, w4, w5>
            <Key Numpad1>
    Slave Client:
    Code:
    <Label w1 192.168.0.110 SendWinM WoW1>
    <Label w2 Local SendWinM WoW2>
    <Label w3 Local SendWinM WoW3>
    <Label w4 Local SendWinM WoW4>
    <Label w5 Local SendWinM WoW5>
    
    
    <Hotkey Numpad1>
        <If ActiveWinIs WoW2>
            <SendLabel w1, w3, w4, w5>
                <Key Numpad2>
        <Else If ActiveWinIs WoW3>
            <SendLabel w1, w2, w4, w5>
                <Key Numpad3>
        <Else If ActiveWinIs WoW4>
            <SendLabel w1, w2, w3, w5>
                <Key Numpad4>
        <Else If ActiveWinIs WoW5>
            <SendLabel w1, w2, w3, w4>
                <Key Numpad5>
    As you can see I removed the "IF" in the master script because it only has one window and is therefore always active when the master system has focus. It's still active when the slave has focus too, but then the slave client script supercedes the master client script.

    Thanks again for your help! I was getting fed up with searching, which is why I made a thread. It takes a lot of agony to get me to ask for help. I'm a big believer in Google, hehe. Now I can get back to the fun stuff.
    Last edited by Nomahd : 02-03-2011 at 05:59 PM Reason: Oops, had an error in my code from changing stuff

  9. #9

    Default

    Quote Originally Posted by Nomahd View Post
    I can't believe that after looking through pages and pages of Google results for HotKeyNet, FTL, etc. that I never once seen anything stating to put a script on the slave client. It might have been stated and I just missed it...
    I'm sorry. I'm not sure what I can do to make it more clear. HotkeyNet's website says repeatedly that every instance of HotkeyNet has the same abilities. For example, the home page says that you can press a hotkey on any keyboard.

    For years, I used to add a sentence like, "With HotkeyNet, every copy can do the same things," to nearly every forum post. I must have done this several hundred times.

    The program doesn't distinguish instances of itself. They are all the same. You can load scripts on as many instances as you want.

    The problem here is that users assume something that isn't true. I never told them this false thing. They simply assume it on their own. They assume that the server copy of HotkeyNet is a master and the client copies are slaves.

    This assumption has always seemed bizarre to me because by definition, a client is a thing that sends commands and a server is a thing that carries out commands. Everybody knows this (or should know this) from web browsers, which are the most common examples of a client-server program. When you tell your browser which web page you want to see, it sends a command to the server. The server, not the client, is the slave.

    In fact, "server" is almost a literal synonym for "slave." A slave is a person who is bound to service. "Client" is almost a synonym for "patron", i.e., master. But for some reason people imagine that "server" means "instance that sends commands." I really don't understand it.

    But all of this is irrelevant in HotkeyNet's case. With HotkeyNet the client-server distinction only applies to the communications protocol. It has no effect on anything that the user can see. It has no effect on scripts or hotkeys.

    I guess part of the problem is that WoW boxers usually think of their groups as consisting of a master and slaves, and they assume HotkeyNet must share this idea. But HotkeyNet has nothing in particular to do with WoW. It's a general purpose hotkey program.

    This misunderstanding is one of HotkeyNet's worst problems because it makes people think the program is much less powerful than it really is. If they run four instances of HotkeyNet, they are ignoring three quarters of the program's potential power.

    The way I've solved this problem with Mojo is to eliminate clients and servers. Mojo is peer-to-peer and every copy is identical in every way. People won't be able to assume that one instance is different from the others because the instances are indistinguishable.

    Here's the revised example script and the slave client script I used to test (just in case this helps someone else):
    Nice job!

    It looks like you're pressing NumPad1 on both keyboards with your finger. If you want to reach back and forth like that, it's perfectly fine.

    I myself use three keyboards when I multibox -- I'm really not criticizing this. I like using three keyboards.

    But just so people know, if you want, you can set this up so you only have to press one keyboard. You would use <DoHotkey> on your main keyboard to trigger hotkeys on the other computers.

    Thanks again for your help! I was getting fed up with searching, which is why I made a thread. It takes a lot of agony to get me to ask for help. I'm a big believer in Google, hehe. Now I can get back to the fun stuff.
    You're welcome! Thanks for posting.
    Last edited by Freddie : 02-04-2011 at 05:30 AM
    �Author of HotkeyNet and Mojo

  10. #10

    Default

    Quote Originally Posted by Freddie View Post
    I'm sorry. I'm not sure what I can do to make it more clear. HotkeyNet's website says repeatedly that every instance of HotkeyNet has the same abilities. For example, the home page says that you can press a hotkey on any keyboard.

    For years, I used to add a sentence like, "With HotkeyNet, every copy can do the same things," to nearly every forum post. I must have done this several hundred times.
    That figures... I hate it when that happens. I looked everywhere but right in front of my eyes. But you are right, I assumed HotKeyNet was like a "Master and Slave" type of program.

    Quote Originally Posted by Freddie View Post
    It looks like you're pressing NumPad1 on both keyboards with your finger. If you want to reach back and forth like that, it's perfectly fine.

    I myself use three keyboards when I multibox -- I'm really not criticizing this. I like using three keyboards.

    But just so people know, if you want, you can set this up so you only have to press one keyboard. You would use <DoHotkey> on your main keyboard to trigger hotkeys on the other computers.
    No, I only use one keyboard. Input Director allows me to use one keyboard/mouse to control multiple computers. So when I move my mouse cursor to another monitor controlled by a different computer (like a multi-monitor pc), the mouse and keyboard output is transferred over to the computer controlling that monitor. So when I pressed Numpad1 on the keyboard it gets sent to whatever PC currently has the focus of the keyboard.

    Speaking of Input Director, it IS a master/slave type of program. Which is another reason I was tending to think of HotKeyNet as the same. It also allows macros activated by hotkeys, but not with conditions and no way to toggle hotkeys on or off as far as I could tell. Which makes that function useless to me. But the ability to clone the mouse movement/clicks across multiple computers is handy at times.

    I know HotKeyNet allows mouse clicks to be sent to multiple windows, and I use it for that. But it's not the same as a true clone of the mouse cursor. What I mean is live broadcasting of the mouse movements. If I move the mouse cursor in a circular pattern around the screen, the mouse cursor on the other computer does exactly the same in "real time".

    I was looking at your Mojo the other day. It looks promising and I can't wait until it's done so I can give it a go! If you can implement the broadcasting abilities of Input Director into Mojo, and Mojo can do anything HotKeyNet can do, I wouldn't need anything else to multibox.
    Last edited by Nomahd : 02-04-2011 at 02:21 PM

Posting Rules

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