PC2 Script 1:

Code:
#NoEnv
CoordMode, Mouse, Window
SetTitleMatchMode 2
AutoTrim, Off

MouseIsOver(WinTitle) {
    MouseGetPos,,, Win
    return WinExist(WinTitle . " ahk_id " . Win)
}

#If WinActive("box2") and MouseIsOver("box2")
LButton::
    GetKeyState, capsstate, Pause, D
    MouseGetPos, xpos, ypos
    If (capsstate == "D")
    {
        slavexpos := Round(8 * (xpos / 3), 0)
        slaveypos := Round(8 * (ypos / 3), 0)
        keypressPC1 := "MB|" slavexpos "|" slaveypos "|0|LEFT"
        FileAppend, %keypressPC1%`n, \\192.168.1.235\shared\commandPC1.txt
        xpos := ""
        ypos := ""
        slavexpos := ""
        slaveypos := ""
        keypressPC2 := ""
    } else
    {
        slavexpos := Round(8 * (xpos / 3), 0)
        slaveypos := Round(8 * (ypos / 3), 0)
        keypressPC2 := "MB|" xpos "|" ypos "|0|LEFT"
        keypressPC1 := "MB|" slavexpos "|" slaveypos "|0|LEFT"
        FileAppend, %keypressPC1%`n, \\192.168.1.235\shared\commandPC1.txt
        FileAppend, %keypressPC2%`n, commandPC2.txt
        xpos := ""            
        ypos := ""
        slavexpos := ""
        slaveypos := ""
        keypressPC1 := ""
        keypressPC2 := ""        
    }
return
#If WinActive("box2") and MouseIsOver("box2")
RButton::
    GetKeyState, capsstate, Pause, D
    MouseGetPos, xpos, ypos
    If (capsstate == "D")
    {
        slavexpos := Round(8 * (xpos / 3), 0)
        slaveypos := Round(8 * (ypos / 3), 0)
        keypressPC1 := "MB|" slavexpos "|" slaveypos "|0|RIGHT"
        FileAppend, %keypressPC1%`n, \\192.168.1.235\shared\commandPC1.txt
        xpos := ""
        ypos := ""
        slavexpos := ""
        slaveypos := ""
        keypressPC2 := ""
    } else
    {
        slavexpos := Round(8 * (xpos / 3), 0)
        slaveypos := Round(8 * (ypos / 3), 0)
        keypressPC2 := "MB|" xpos "|" ypos "|0|RIGHT"
        keypressPC1 := "MB|" slavexpos "|" slaveypos "|0|RIGHT"
        FileAppend, %keypressPC1%`n, \\192.168.1.235\shared\commandPC1.txt
        FileAppend, %keypressPC2%`n, commandPC2.txt
        xpos := ""
        ypos := ""
        slavexpos := ""
        slaveypos := ""
        keypressPC1 := ""
        keypressPC2 := ""        
    }
return
#If WinActive("box2") and MouseIsOver("box2")
+LButton::
    GetKeyState, capsstate, Pause, D
    MouseGetPos, xpos, ypos
    If (capsstate == "D")
    {
        slavexpos := Round(8 * (xpos / 3), 0)
        slaveypos := Round(8 * (ypos / 3), 0)
        keypressPC1 := "MB|" slavexpos "|" slaveypos "|1|LEFT"
        FileAppend, %keypressPC1%`n, \\192.168.1.235\shared\commandPC1.txt
        xpos := ""
        ypos := ""
        slavexpos := ""
        slaveypos := ""
        keypressPC2 := ""
    } else
    {
        slavexpos := Round(8 * (xpos / 3), 0)
        slaveypos := Round(8 * (ypos / 3), 0)
        keypressPC2 := "MB|" xpos "|" ypos "|1|LEFT"
        keypressPC1 := "MB|" slavexpos "|" slaveypos "|1|LEFT"
        FileAppend, %keypressPC1%`n, \\192.168.1.235\shared\commandPC1.txt
        FileAppend, %keypressPC2%`n, commandPC2.txt
        xpos := ""            
        ypos := ""
        slavexpos := ""
        slaveypos := ""
        keypressPC1 := ""
        keypressPC2 := ""        
    }
return
#If WinActive("box2") and MouseIsOver("box2")
+RButton::
    GetKeyState, capsstate, Pause, D
    MouseGetPos, xpos, ypos
    If (capsstate == "D")
    {
        slavexpos := Round(8 * (xpos / 3), 0)
        slaveypos := Round(8 * (ypos / 3), 0)
        keypressPC1 := "MB|" slavexpos "|" slaveypos "|1|RIGHT"
        FileAppend, %keypressPC1%`n, \\192.168.1.235\shared\commandPC1.txt
        xpos := ""
        ypos := ""
        slavexpos := ""
        slaveypos := ""
        keypressPC2 := ""
    } else
    {
        slavexpos := Round(8 * (xpos / 3), 0)
        slaveypos := Round(8 * (ypos / 3), 0)
        keypressPC2 := "MB|" xpos "|" ypos "|1|RIGHT"
        keypressPC1 := "MB|" slavexpos "|" slaveypos "|1|RIGHT"
        FileAppend, %keypressPC1%`n, \\192.168.1.235\shared\commandPC1.txt
        FileAppend, %keypressPC2%`n, commandPC2.txt
        xpos := ""
        ypos := ""
        slavexpos := ""
        slaveypos := ""
        keypressPC1 := ""
        keypressPC2 := ""        
    }
return
PC2 Script 2:

Code:
#NoEnv
CoordMode, Mouse, Window
SetTitleMatchMode 2
SetControlDelay -1

Loop {
    state := GetKeyState("LShift")
    if (state == "U") {
        ControlSend,,{LShift up}, box2     
    }
    if FileExist("commandPC2.txt") {
        FileReadLine, commandline, commandPC2.txt, 1
        StringLen, Length, commandline
        if (commandline != "") {
            StringSplit, pos_array, commandline, "|"
            If (pos_array1 == "MB") {
                DllCall("SetCursorPos", int, pos_array2, int, pos_array3)
                If (pos_array4 == "1") {
                    ControlSend,,{RShift down}, box2 
                    ControlClick, x%pos_array2% y%pos_array3%, box2,, %pos_array5%
                    ControlSend,,{RShift up}, box2 
                } else {
                    ControlClick, x%pos_array2% y%pos_array3%, box2,, %pos_array5%
                }
                pos_array := ""
                commandline := ""
            } 
            else {
                ControlSend,, %commandline%, box2
                commandline := ""
            }
        FileDelete, commandPC2.txt
        }
    }
}
PS: I am sure I could trim these scripts, and some things might be redundant. But it seems to be less robust with all the variable emptying and extra meat.