Page 1 of 25 12311 ... Last
Results 1 to 10 of 244
  1. #1
    Pliaksi's Avatar
    Tagged in
    86 Posts
    Add to this user's reputation

    The Consortium Key Sender (CKS)

    Greetings folks. I am pleased to present to you, an application, that will hopefully relief you of all your prospecting / milling / disenchanting troubles.

    Some of you might already be fammiliar with this thread by @Sinshroud - it does and excellent job of providing efficient yet simple way to get the job done. What you will find in this thread however, is a bit more elaborate application, with intuitive user interface and various means of doing what you need. So, keeping things, a bit more to the point here is the:

    Download Link - Consortium Key Sender (CKS)

    15.11.2011 - New version, description at the end of the post.
    10.11.2011 - New version, description at the end of the post.

    Following you will find a quick guide to using it, and at the end of the post, you will find the AHK_L code of the application itself. An important note I need to make at the beginning is that, since it is coded in AHK_L, this is windows only (and preferably version > 2000). For all you Mac users, there is an alternative posted by another user an alternative posted by another user.

    1. So what does the application do in general.

    It basically listens for user input and then routes it, to multiple applications. It lets you choose which application should it send input to, what input, at what intervals, etc. What this means is that you could be working / browsing / playing another game and have your WoW character prospect / mill / disenchant at the same time !

    2. Great... but is this legal.

    There has been a huge discussion on the matter, and the general verdict is that as long as you are behind the keyboard/mouse and performing some actions yourself, it should be fine. If you would like to read/discuss more on the matter, please refer to this thread. But if you do, please read the whole discussion.

    Addition: Since there have been numerous enquiries and doubts if this is legal, regardless of the information so far present, I decided to write to blizzard and try to get a response from them. Here is the letter posted (in code tags, to make use of the scroll bar).

    Dear Blizzard,
    I am writing to you, on behalf of an online community of “World of Warcraft entrepreneurs” who are mainly focused on trading aspect of the game. As you are probably aware, a huge part of gold making relates to continuous and repetitive activities such as milling, prospecting and disenchanting. This leads us, to the main point of this inquiry – what is allowed to make those activities easier and what is considered as “crossing the line” or “botting”. I am aware that there have been multiple discussions on the matter, but most of the answers received were either vague or subject to interpretation.
    Please note, that the only reason I’m asking for further confirmation on your behalf is because we, as a community greatly value fair play and are strictly against cheating, yet we always strive to achieve our goals in a more efficient and smart way. I believe we have the similar interests – we want to play the game that we love and have fun with it, without braking any rules; while you do not want to ban people that had no intention on cheating, but did so due to lack of information. So please, help us draw the line between “smart use of mechanics” and “botting”.
    There are two points at which I’d like to approach to problem:
    1.	The practical one:
    I have written an application in AHK_L that helps mill/prospect/disenchant easier. I have done my best to ensure, that this is not against your ToS. What it basically does is the following.
    a. It can listen to your key presses and supplicate them to one or many minimized windows. It can either send the same key that was pressed, or remap it to another fixed or random one. b. It can detect if your mouse has moved over a pre-defined period of time. For example: it waits 2-3 seconds and if over the said duration, the mouse cursor has changed its position on the screen, it will produce a key press – either a fixed or a random one. c. It can detect if there has been any physical action by the user (including mouse movements, key presses, or other hardware such as joystick) over a pre-defined period of time. The functionality it similar to this in point 1.b.
    I kindly ask, if you could provide a reply, point by point, on which of those is acceptable and which is not. I am fully aware of the general response that “in game actions, should be on a 1:1 relationships with in-game ones”, and I believe that none of the above is breaking this rule. Still I would greatly appreciate if I could get a more concrete answer. Additionally I am enclosing the complete source code to the application. 2. The theoretical one: What I am asking here, is for your assistance to get an understanding on the most detailed level possible, what is deemed acceptable on what not. Again I kindly as for your response point by point.
    a. Key presses:
    i. A key press, by an actual person, in an application, different than WoW, is sent to WoW as is. Example: pressing “K” in MS Word, sends “K” in WoW. ii. A key press, by an actual person, in an application, different than WoW, is sent to WoW but is remapped beforehand. Example: pressing “K” in MS Word, sends “1” in WoW. iii. A key press, by holding down a button, by an actual person, in any application, sends multiple key presses in WoW. Example: holding down the “Up” button, sends multiple “1”s while the “Up” button is being held down. iv. A key press, by an actual person, translates into a mouse click in specific location in WoW. Example: pressing Enter produces a click on a predefined location on the screen. v. A key press, by an actual person, in an application, different than WoW, is sent to WoW with a delay. Please note that this is still one to one relationship or many to one. Example: any key presses over the course of 1 minute, produce a single key press in WoW at the end of this minute, and then listen for another minute if any keys are pressed. At the end of the second minute, only input over this time would be considered valid. vi. A key press, by an actual person, in an application, different than WoW, is sent to WoW but is remapped to more than one key, without delay in between. Example: pressing “K” in MS Word, sends “Ctrl + 1” in WoW.
    b. Mouse movements.
    i. Mouse movement, by an actual person, regardless of the focused window, produced a key press in WoW. Each movement of the mouse would produce a key press, with the only limitation being how fast, the computer can calculate the movement and send the keys. ii. Mouse movement, by an actual person, regardless of the focused window, produced a key press in WoW after a predefined delay. For example: the application reads the mouse coordinates initially, then after a pre-defined period 2-3 seconds, checks if the mouse coordinates have changed. If the position has changed – send the keys. iii. Mouse movement, by an actual person, regardless of the focused window, produced a key press in WoW depending on the distance traveled by the mouse. Example: moving the mouse form coordinates 200,200 on the screen, to coordinates 200,400, produces 200 clicks due to mouse travelling the same distance. The keys are sent without delay. iv. Same as above, but the keys are sent with delay. v. Mouse scroll, by an actual person, regardless of the focused window, produced a key press in WoW depending on the scroll amount. Example: scrolling the mouse “200” units, produces 200 key presses without delay. vi. Same as above, but the keys are sent with delay.
    c. General questions: Those somewhat overlap the questions above, but I would still like to get your general stance on the following topics:
    i. Delays – I understand those are frowned upon, but what should be done in case of detection of mouse movement? Should keys just be spammed in order to avoid delay? Is there any acceptable amount of delay? ii. Mouse movements – do you consider mouse movements a valid user input (gesture recognition comes to mind), and accept mouse movements being translated to clicks / key presses? iii. Holding down a key – what is your general stance on holding down a key being able to produce multiple key presses? iv. Random keys – what is your stance on pressing a key, and this producing another random key press? v. Keys sequences – much like the /castsequence macro command. Pressing a key repeatedly produces a different key each time, following a pre-defined sequence?
    Thank you, in advance, for taking your time to answer those questions. Kind Regards, Hristo Piyankov a.k.a Pliaksi @ World of Warcraft and On behalf of the community @ The Consortium
    Blizzard response 1:

    In regards to your question about allowed things in the game, we would advise you to read the third party policy as it has all the information you need. 
    You can find it at:
    We appreciate your passion and concern for fair game play very much. Thus as a general rule, you should always keep in mind that if you aren't sure it's allowed to simply not use it. In general the Game Master department cannot discuss the details of what is allowed and what isn't due to the fact that if we did and the information was made public then people would try to find ways around it, which we'd like to prevent. 
    English Game Master Team
    Blizzard Europe
    Me being continuously annoying:

    I am sorry, but is there any way to get more concrete answer to the question? Could I e-mail someone, or whom can I address this to? Your help is greatly appreciated.
    Blizzard response 2:

    Unfortunately there is no way to address this anywhere else.
    The link you have received is what you have to use to read, but please note that I would strongly suggest not to use such scrits that can automate your actions. Anything that does so is not supported in the game so you are free to use it at your own risk.
    Other than that, you could try asking on our Macro Forums and see what the macro experts will say, though the answer will most likely be the same.
    Kind Regards, 
    English Game Master Team
    Because, as usual, this is widely subject to interpretation, I ask everyone to take a decision for themselves and as quoted "use it at your own risk".

    3. Important note before you start!

    This thread alone, should be the one and only place form which you should be using this application. The reason for this is, that the program is technically "listening" to your key presses, which with a bit modification could be turned into a key logger. While we at the consortium would never tolerate such actions, please be advised that someone else might. So for your own safety, please do not download this application from anywhere else!

    4. Getting to the application itself.

    The first time you launch the application, you will be presented with a warning that this is indeed your first time and will be asked to read the "Help" section. After you go through those two initial windows (they will pop up only the first time you use CKS), you will be presented with the following screen:

    This is the only screen you will be working with. A brief explanation of the options follows:

    4.1. The first column of options, to your top left corner are the "listening" modes - they determine to which of your actions should the application respond.

    4.1.1. Listen to mouse - the application will be tracking if the mouse has changed it's position on the screen over a said period with artificial delay (more on this later).

    4.1.2. Listen to keyboard - the application will be listening for all your key presses. There is no artificial delay here - a single key press triggers a single action.

    4.1.3. Listen to input - the application will be tracking if there has been any sort of physical user input over a said period with artificial delay.

    Note: While you can generally select all of the options, there is no reason to do so. I suggest picking the one that suits you best.

    4.2. The last column of options, to your top right are the time/key settings - they determine at what intervals should certain actions be performed and what should those actions be.

    4.2.1. Auto refresh each X sec. - determines if the application should automatically refresh the list of currently open windows, and at what time interval it should do so. Please note that you are not limited to the pre-defined options in the drop-down menu. You can input there any number, including those with floating point (e.g. 13.423 sec.)

    4.2.2. Random interval X - Y sec. - determines a random interval at which the application should perform actions if you are using the Listen to mouse or Listen to input options. This is the artificial delay mentioned earlier and the reason for having this is that it is unlikely you want to be spamming keystrokes each ~10 milliseconds, which could possibly happen, since you are monitoring any mouse movement.

    4.2.3. Keys to send - those are the keys that you want to send. Those could be either single sequence, multiple sequences or more complex expressions. More on this below: Single sequene - this would generally look like m or mn1 or something like this. This means that on based on your input mode, the application will send those keys in the sequence you defined. Multiple sequences - those are similar to the above, with the exception that those are a number of sequences separated by comma like m,mn1,3,fs. If this is the case, the application will send a random one of them each time it tries to send something. You should know, that due to the comma being a separator for the sequences, there is no way you can make the application send a comma itself. Complex expressions - apart from sending single key strokes, you could do a bit more advanced stuff such as {Shift down}34{Shift up}. What this would achieve is force the application to hold shift, then press 34 and then release the shift button. There are numerous other possibilities - you can read on them >> here <<.

    4.3. Additional options:

    4.3.1. Mimic input - this is only relevant if the Listen to keyboard option is selected. If this is enabled, rather than sending the Keys to send, the application will try to mimic your input on a 1:1 relationship (e.g. if you press N it tries to send the exact same key).

    4.3.2. Random events - generates additional random events on top of Random interval X - Y sec. What it specifically does is that, on a random interval between 1 and 20 key sending "events", it generates an additional event for a single send that modifies the Random interval X - Y sec. by multiplying both the top and the bottom by a random number from the following array [0.1, 0.5, 0.7, 2, 3, 4, 5]. Some of you might be wondering, why is this option even present : while as previously stated, this application is legal, because all it does is generate an event based on your actual RL actions, I believe it is better to be on the safe side and not give Blizzard/Warden a reason to doubt you. Consider this really a pre-pre-precaution measure.

    4.3.3. Refresh button - forces an immediate refresh of the list of currently open windows.

    4.3.4. Pause button - pauses all actions taken by the application. This is also bound to the Windows Key + P short cut.

    4.3.5. Help button - displays the help article.

    4.4. The list of currently open windows - the big part of the application, at the bottom. This is basically a list of all currently open windows and some additional information about them. What you generally need to do is just tick to windows you want to send input to. Some notes about this:

    4.4.1. You can pick any number of windows, but obviously not picking anything won't do anything

    4.4.2. The currently active window receives your input by default, so it is generally not a good idea of ticking it. Unless you want to produce some strange behaviour.

    4.4.3. The last column ID is the unique identifier of the window. If you need to distinguish between two windows with the exact same name you need to look at it.

    4.5. Additional stuff you might want to know.

    4.5.1. After initially launching the application and closing it, it will create a CKSSettings.ini file in the directory that the CKS.exe resides. This file basically remembers all of your preferences from point 4.2. The reason other options are not included is that it cam be more of a nuisance than help.

    4.5.2. If you try to do some funny stuff with the options or no options are input, the application reverts back to default values. For Auto refresh - 10 sec, for Random Interval - 2:3 sec, for Keys to send - 1.

    4.6. Currently know issues.

    4.6.1. The application does not play very well with some of the more sophisticated text editors, when it comes to sending input. It would take a really lot of writing to explain all the perks, so I guess you would have to try if it works for your needs.

    4.6.2. The application has a really hard time sending {Backspace} command with the Mimic mode. This is currently under investigation.

    4.6.3. If you pick a number for the time intervals, that is already present in the drop down menu, this number will get duplicated in the drop down next time you start the application. This has absolutely NO impact on functionality, it's just

    4.7. The source code as promised.

    4.7.1. Yeah I know it's not commented out. I will try to do it some time in the future.

    4.7.2. And yeah, my variable naming sucks. I am trying to work on it

    #SingleInstance force
    FileInstall, CCS.jpg,CCS.jpg, 1
    Gui, Add, Picture, Section w600 h-1 gConsLogo, CCS.jpg
    Gui, Add, Button, Section w450 x75 gConsLink, Visit: The Consortium Gold Forums - Best Resources for Gold Making tips, tricks and guides
    Gui, Add, Checkbox, Section x10 gMouseListen vMouseEnabled, Listen to mouse
    Gui, Add, Checkbox, xs gKbdListen vKbdEnabled, Listen to keyboard
    Gui, Add, Checkbox, xs gPhsListen vPhsEnabled, Listen to user input
    Gui, Add, Checkbox, ys vMimic Section, Mimic input 
    Gui, Add, Checkbox, xs vRandEnabled, Random events
    Gui, Add, Checkbox, xs vSequenceEnabled, Sequence send
    Gui, add, Button, Section gRefreshList ys w60, Refresh
    Gui, add, Button, gHelpListen xs w60, Help
    Gui, add, Text, xs, Pause button
    Gui, add, Button, Section gPauseListen ys w60 vPauseButton Default, Pause
    Gui, add, Button, gCoordsListen xs w60, CoordSpy
    Gui, add, edit, xs vPauseKey gEditChange w50
    Gui, Add, Checkbox, ys gAutoRef vAutoEnabled Section, AutoRefresh each
    Gui, add, ComboBox, ys vSecToRef w50, 1|2|3|4|5|6|7|8|9|10||
    Gui, add, Text, ys, sec
    Gui, add, Text, xs Section, Random interval 
    Gui, add, ComboBox, ys vRandStart w50, 0.5|1|1.5|2||2.5|3|3.5|4|4.5|5
    Gui, add, Text, ys, -
    Gui, add, ComboBox, ys vRandEnd w50, 0.5|1|1.5|2|2.5|3||3.5|4|4.5|5
    Gui, add, Text, ys, sec
    Gui, add, Text, xs Section, Keys to send
    Gui, add, edit, ys vKeys w150
    Gui, add, ListView, vMyList gMyList w600 h300 Checked SortDesc xm, Name|Class|ID
    CoordMode, Mouse, Screen
    if A_IsCompiled
      Menu, Tray, Icon, %A_ScriptFullPath%, -159
    IniRead, SecToRefTemp, %A_WorkingDir%\CKSSettings.ini, 1, SecToRef
    IniRead, RandStartTemp, %A_WorkingDir%\CKSSettings.ini, 1, RandStart
    IniRead, RandEndTemp, %A_WorkingDir%\CKSSettings.ini, 1, RandEnd
    IniRead, KeysTemp, %A_WorkingDir%\CKSSettings.ini, 1, Keys
    IniRead, PauseKeyTemp, %A_WorkingDir%\CKSSettings.ini , 1, PauseKey
    if (PauseKeyTemp = "ERROR" or PauseKeyTemp = "") {
        PauseKeyTemp := "#p"
    if (SecToRefTemp = "ERROR") {
        MsgBox,, Attention !, This seems to be the first time that you are using the Consortium Key Sender. Please read the help first !
        gosub, HelpListen
    } else {
        GuiControl,, SecToRef, %SecToRefTemp%||
        GuiControl,, RandStart, %RandStartTemp%||
        GuiControl,, RandEnd, %RandEndTemp%||
        GuiControl,, Keys, %KeysTemp%
        GuiControl,, PauseKey, %PauseKeyTemp%
    idList := object()
    OldPause := PauseKeyTemp
    Hotkey, %PauseKeyTemp%, PauseListen
    Seq := 0
    Timer := 0
    Gui, show,, Consortium Key Sender
    Gui submit, NoHide
    if (OldPause = PauseKey)
    if (OldPause != "") {
        Hotkey, %OldPause%, Off
    if (PauseKey = "" )
    Hotkey, %PauseKey%, PauseListen
    OldPause := PauseKey
    if (Timer) {
        Settimer WatchCursor, off
    } else {
        Settimer WatchCursor, 50
    MouseGetPos , mouseX, mouseY
    ToolTip, %mouseX% %mouseY%
    Gui submit, NoHide
    while (KbdEnabled)
        Input, SingleKey, L1,  {LControl}{RControl}{LAlt}{RAlt}{LShift}{RShift}{LWin}{RWin}{AppsKey}{F1}{F2}{F3}{F4}{F5}{F6}{F7}{F8}{F9}{F10}{F11}{F12}{Left}{Right}{Up}{Down}{Home}{End}{PgUp}{PgDn}{Del}{Ins}{Backspace}{Capslock}{Numlock}{PrintScreen}{Pause}
        Send % SingleKey
        Gui submit, NoHide
        if (Mimic)
            sendkeys(SingleKey, Seq++, SequenceEnabled)
            sendKeys(Keys, Seq++, SequenceEnabled)
    Gui submit, NoHide
    lastInput := 100
    while (PhsEnabled)
        if (A_TimeIdlePhysical < lastInput) 
            sendKeys(Keys, Seq++, SequenceEnabled)
        lastInput := sleepSpecial(RandStart, RandEnd, RandEnabled)
        Gui submit, NoHide
    if IsPaused
       Pause off
       IsPaused := false
       GuiControl,, PauseButton, Pause
       SetTimer, Pause, 10
    SetTimer, Pause, off
    IsPaused := true
    GuiControl,, PauseButton, Unpause
    Pause, on
    txtVar = 
    Welcome to the Consortium Key Sender application. Please read the following lines, as they are important.
    1. Basic use: This application gives you the possibility to redirect input to your PC to multiple applications (rather than just the active one). You could, for instance, be browsing the internet, while in the background, your World of Warcraft character is prospecting/milling/etc.
    2. Important notice: It is highly recommended that you should be using this application only if you got it from the forums. This is for your own safety, as technically the application listens to your key presses. This means that with modifications, this could be turned into a key logger. The only way to ensure that this won't happen to you is if you download this from the official forum thread at the aforementioned site. 
    3. Is this legal to use with games: the best way to ensure this is to consult with the game's ToS/EULA and/or game representatives. In the case of World of Warcraft, it has been stated multiple times that as long as there is physical input from the user (and this application cannot work without this) - you should be fine. Still, please use this application at your own risk.
    4. Basic setup:
        1. Open all windows/programs you want to send input to.
        2. Run the "Consortium Key Sender"
        3. Check within the application all windows you want to send input to.
        4. Select the send method.
        5. Select what keys you want to send.
        6. You are done!
    5. Send method descriptions:
        1. Listen to mouse - Checks if the mouse location has changed over the "Random interval" specified.
        2. Listen to keyboard - Listens for any key press on the keyboard. Note: this does not play well with some text editors, especially if they are not the active (input receiving) window.
        3. Listen to user input - Checks if over the "Random interval" specified there has been any user physical input.
        Note: You can select all methods if you wish to, but there is generally no reason to do so. The main difference between the methods (apart from what they respond to) is that "mouse" and "user" inputs enforce an artificial delay (you wouldn't want to spam keys for every single pixel that your mouse moves through, would you), while "keyboard" acts on one-to-one basis with your key presses on the keyboard.
    6. Additional options:
        1. Mimic input - attempts to mimic your input from the active window, to the windows selected (rather than sending pre-defined key-strokes).
        2. Random events - apart from using the "Random interval", generates additional random events (stretches on shrinks the specified interval).
        3. Sequence send - sends the list of keys in a sequance, rather than random.
        4. Pause - pauses the script. It is also hot keyed to the Windows key + P shortcut.
        5. Refresh - checks if there are any newly opened windows.
        6. CoordSpy - helps you determine your mouse coordinates in case you want to simulate a click. Press second time to remove the tracking.
        6. Pause button - specifies what will be your pause button. Modifier keys are applicable, so for instance #p = Windows Key + p; !p = Alt +p; ^p = Ctrl + p. The pause key needs to be a single key or a modifier + key. If you try to input anything different, you will get an error message.
        7. Auto refreshes each X seconds - sends a "Refresh" command each X seconds. You are not limited to the values in the combo box! Feel free to input your own, including floating numbers (e.g. 11.353).
        8. Random interval - defines the random interval for mouse events and user input events. Impute options are same as above.
        9. Keys to send - sends the specified keys. This can be one key or a list of keys or semicolon-separated list of case. In case of the latter, a random entity of the ones listed is send. Furthermore, you can send more complex commands such as "{Shift Down}34{Shift Up}" which will hold down the Shift key, press 34 and then release the Shift key, or you could send mouse clicks by using the following syntax "mclick x300 y300" - this would reproduce a click at the respective coordinates, rative to your screen. For a complete list of possible commands please refer to
    7. Additional notes:
        1. If no options are input a default value is used. For Auto refresh - 10 sec, for Random Interval - 2:3 sec, for Keys to send - 1, for Pause button - #p.
    8. Currently known issues:
        1. Keyboard input does not recognize Backspace.
        2. If the remembered user preference was an already default value, it gets duplicated in the combo boxes.
    msgbox ,,Help, %txtVar%
    Gui submit, NoHide
    while (AutoEnabled)
        if (secToRef="") {
            SecToRef := 10000
        } else {
        sleep, SecToRef
        Gui submit, NoHide
    MouseGetPos , xPos , yPos
    Gui submit, NoHide
    while (MouseEnabled)
        MouseGetPos , xPosNew , yPosNew
        if (xPos <> xPosNew or yPos <> yPosNew)
            sendKeys(Keys, Seq++, SequenceEnabled)
            xPos := xPosNew
            yPos := yPosNew
        sleepSpecial(RandStart, RandEnd, RandEnabled)
        Gui submit, NoHide
    Gui submit, NoHide
    IniWrite,%SecToRef%, %A_WorkingDir%\CKSSettings.ini , 1, SecToRef
    IniWrite,%RandStart%, %A_WorkingDir%\CKSSettings.ini , 1, RandStart
    IniWrite,%RandEnd%, %A_WorkingDir%\CKSSettings.ini , 1, RandEnd
    IniWrite,%Keys%, %A_WorkingDir%\CKSSettings.ini , 1, Keys
    IniWrite,%PauseKey%, %A_WorkingDir%\CKSSettings.ini , 1, PauseKey
    refresh(idList) {
        WinGet, id, list,,, Program Manager
        Loop, %id%
            this_id := id%A_Index%
            if (idList[this_id] = 1)
            WinGetClass, this_class, ahk_id %this_id%
            WinGetTitle, this_title, ahk_id %this_id%
            if (this_title = "" or this_title = "Start")
            idList[this_id] := 1
        Loop % LV_GetCount()
            LV_GetText(win_id, A_Index,3)
            IfWinNotExist, ahk_id%win_id%
    sleepSpecial(RandStart, RandEnd, RandEnabled)
        If (RandEnd < RandStart or RandEnd ="" or RandStart="") {
            RandStart := 2000
            RandEnd := 3000
        } else {
            RandStart *=1000
            RandEnd *=1000
        if (RandEnabled) {
            Random, spec, 1, 10
            if (spec = 1) {
                randEventArr := [0.1, 0.5, 0.7, 2, 3, 4, 5]
                Random, modif, 1 ,7
                RandStart *= randEventArr[modif]
                RandEnd *= randEventArr[modif]
        Random, rand, RandStart, RandEnd
        sleep , rand
        return rand
    sendKeys(Keys, Sequence, SEnabled)
        if (Keys = "")
            Keys := 1
        RowNumber = 0  
            RowNumber := LV_GetNext(RowNumber,"Checked")  
            if not RowNumber  
            StringSplit, keyArr, Keys, `;
            if (SEnabled) {
    			rand := Mod(Sequence, KeyArr0) + 1
    		} else {
    			Random, rand, 1 , keyArr0
            LV_GetText(win_id, RowNumber,3)
            keyToSend := keyArr%rand%
    		IfInString, keyToSend, mclick
    			Stringmid, keyToSend, keyToSend, 8
    			ControlClick, %keytoSend%, ahk_id%win_id%
    		} else
    			ControlSend,, %keytoSend%, ahk_id%win_id%
    5. Please leave your feedback. Feel free to drop any suggestions for new features, bug finds and constructive criticism. All of those are greatly appreciated !

    6. Special thanks to all the Wind Traders who helped testing this and provided suggestions !

    7. My "to-do" list, thanks to your feedback
    -Re-think/write the keyboard sender.
    -Add an option to disable key sending to your active window.

    15.11.2011 - New version, please re-download the CKS from the same link

    So whats new:
    - Added links to the consortium forums via a button and a banner. Now you can access your favourite site more easily
    - Added posibility to remap your pause key. This is pretty straightforward, the requirements / options are described in the help. In short: it's either a single key or modifier (alt/ctrl/win) + single key. If you try to do anything illegal, you will get an error.
    - Added coordinates spy - to help you determine mouse coordinates in case you need to simulate mouse clicks.

    10.11.2011 - New version, please re-download the CKS from the same link

    So whats new:
    - Changed the separator from comma to semicolon - this was needed in order for more advanced commands to be possible, so please revise the keys you are sending.
    - Added possibility to send the keys in a sequence rather than random - it's just a new checkbox.
    - Last but not least - support for mouse clicks! I think this opens a whole lot of new possibilities. The command should look like "mclick x400 y420", where X and Y are the respective screen coordinates. Currently the click is only left mouse and the command should look exactly as shown (you can change the values of X and Y of course). This command can also be part of a sequence.

    How to determine what coordinates you need:
    1.The easy way - get some window spy program, to tell you at what coordinates is your mouse at the moment.
    2.The harder way - use the CKS. How? By using the "{click 100, 200, 0}" command in the keys section. This command will move your mouse to x100, y200 coordinates without clicking. You can then play with the numbers (100 and 200, but not 0) to get the exact coordinates that you need.

    What was NOT done in this update:
    - Did not fix the BACKSPACE bug. This seems to be a bit more complex than I thought. Actually I think I need to rewrite the whole keyboard send method, in order to make it more stable and more cheat un-friendly, but this will take a lot of time, which I don't currently have.
    - Since the introduction of the mclick functionality, I believe it would be logical to incorporate a coordinate spy in the application, but this will likely happen in the next update.
    Last edited by Pliaksi; March 29th, 2012 at 01:24 AM.
    It's not a bug, it's a feature !

  2. #2
    Sinshroud's Avatar
    Tagged in
    1061 Posts
    Add to this user's reputation
    I've been using this program for the last few days while it was in testing phase and it works extremely well. Would recommend it to anyone wanting to increase their gold making capacity.
    If someone makes a helpful post or useful thread, be sure to let them know by giving +reputation. Spread the love!

    If you are new to gold making, or want to expand your markets for greater profits, then consider becoming an Ethereal Contributor to gain access to additional guidance on gold making, as well as our private dedicated help and support forum.

    >> WoW Account Maximum Security Guide <<

    "If you spend too much time thinking about a thing, you'll never get it done." - Bruce Lee

  3. #3
    Reverb's Avatar
    Tagged in
    304 Posts
    Add to this user's reputation
    Quote Originally Posted by Sinshroud View Post
    I've been using this program for the last few days while it was in testing phase and it works extremely well. Would recommend it to anyone wanting to increase their gold making capacity.
    I would describe it more kin to increasing sanity retention capacity myself.

  4. #4
    rftavares's Avatar
    Tagged in
    1 Posts
    Add to this user's reputation
    This looks great! Thanks!

  5. #5
    Nissaya's Avatar
    Tagged in
    41 Posts
    Add to this user's reputation
    thanks for this tools.

    Main account will Prospect / craft ring / Dez
    2 nd account will Mill / ink
    3 rd account will pick yellow nodes with my dual gatherer drood to generate keystroke / mouse activity.

    Or 3rd account will camp the AH and spam refresh.

    All this while I watch an anime divx.
    Last edited by Nissaya; September 27th, 2011 at 06:48 AM.

  6. #6
    Will defo try this out, I've been reluctant so far, but with all the work done for me, it is perfect !

  7. #7
    Xsinthis's Avatar
    Tagged in
    208 Posts
    Add to this user's reputation
    I can't believe this is allowed, it seems way to good!

    Might bring me back to the gold scene

  8. #8
    Nilaus's Avatar
    Blog Entries
    Tagged in
    288 Posts
    Add to this user's reputation
    I've been using this as well for testing and I absolutely love it. It doesn't work on my normal Mac where I play from, but it works on my work PC and there I generate plenty of random keystrokes (called working).

    I suspect that this is indeed the proverbial straw that makes Blizzard take a stance against this kind of semi-automation, though if nothing else it sends a very clear signal to them about the lengths we are prepared to go just to get around their stupid interface (within the limits of the letter of the ToS)

    oh and ofc +rep for this amazing app

  9. #9
    But how does this really help you? I mean, if I watch a movie I dont want to pause the movie to reload my inventory with new ore. Same is while working or playing other games ... The only thing I could imagine would be to start it right when beginning with the other activity, e.g. start the program when starting to watch the movie. And then come back after the movie and you have 1 inventory full of ore prospected. But I guess it's kind of overkill for that small amount of ore. So if you really want to take advantage of this you have to refill your inventory every 30 to 60 minutes or so. Otherwise I guess you can just stay with "the classical way".
    Last edited by mstWeal; September 27th, 2011 at 02:55 PM.

  10. #10
    Quote Originally Posted by mstWeal View Post
    But how does this really help you? I mean, if I watch a movie I dont want to pause the movie to reload my inventory with new ore. Same is while working or playing other games ... The only thing I could imagine would be to start it right when beginning with the other activity, e.g. start the program when starting to watch the movie. And then come back after the movie and you have 1 inventory full of ore prospected. But I guess it's kind of overkill for that small amount of ore. So if you really want to take advantage of this you have to refill your inventory every 30 to 60 minutes or so. Otherwise I guess you can just stay with "the classical way".

    It refreshes your mailbox and retrieves mail automaticly. It convientently also has an option to keep X amount of free bag space.



Similar Threads

  1. The Consortium IRC Channel
    By Sinshroud in forum Site Feedback
    Replies: 23
    Last Post: March 2nd, 2013, 07:47 PM
  2. The Consortium Competition is HERE!
    By Sinshroud in forum News
    Replies: 35
    Last Post: April 18th, 2011, 10:15 AM
  3. The Consortium MTG thread
    By Panerai in forum Off Topic
    Replies: 3
    Last Post: February 9th, 2011, 12:19 PM
  4. Article: Become a Wind Trader
    By admin in forum News
    Replies: 0
    Last Post: August 21st, 2010, 08:14 PM