Jump to content

Recommended Posts

Posted

Hello! I'm kind of new to autoit programming (or any programming for that matter). And I was just wondering if it would be possible to check a certain process or program that is running to see what game server it is in. The game I'm thinking of is Diablo 2. I kind of need the server ip to do what I want to do... Thank you anyone who is willing to help me. :lmao:

Posted

Not sure but you might be able to use netstat or something similar (ABSOLUTE NOT SURE) or you could use a sniffer or something else

My Scripts:Radioblog Club Music DownloaderOther stuff:Fun movieIm serious read the help file it helps :PFight 'Till you drop. Never stop, You Cant give up. Til you reach the top Fight! you’re the best in town Fight!
Posted

Remember that im new, so plz excuse me if this is a newbie question, but how would i link autoit to netstat?.... and now that i think about it... i don't think that would work, because isn't netstat just for internet connection and speed? I honestly don't know either.... Anyone else have any advice? Btw- my firewall software does have a sniffer that tells the diablo 2 ip, but i dunno how i would achieve retrieving that file :lmao:. PLZ HELP :ph34r:.

Posted (edited)

Try this

#include <Constants.au3>

msgbox(0,"Diablo Servers", _WindowGetServers("Diablo") )


func _WindowGetServers($windowname)

    Opt("WinTitleMatchMode", 2)     ;1=start, 2=subStr, 3=exact, 4=advanced
    $targetpid = WinGetProcess ($windowname )

    $foo = Run(@ComSpec & " /c netstat -o", @SystemDir, @SW_HIDE, $STDOUT_CHILD)
    $output = ""
    While 1
        $output &= StdoutRead($foo)
        If @error Then ExitLoop
    Wend
    $aOutput = stringsplit(StringStripWS($output,3),@crlf,1)

    $servers = ""
    for $i = 1 to $aOutput[0]
        $line = StringStripWS($aOutput[$i],3)
        $pid = stringmid($line,stringinstr($line," ",0,-1)+1)
        if $pid = $targetpid then 
            $servers &= $line & @crlf
        EndIf
    Next
    
    return $servers
EndFunc

Edited by lod3n

[font="Fixedsys"][list][*]All of my AutoIt Example Scripts[*]http://saneasylum.com[/list][/font]

Posted (edited)

Thank you! I will try it out right now :lmao:.

hm.... not seeming to work... and then i messed around with some things... i replaced wintitlematchmode with "diablo II" but that wouldnt let the program run. then i plugged "diablo II" in for "diablo" at the top... and that came up with a different ip :geek:... I will b back in a bit... I need to look at this other program that shows the ip for diablo 2 servers without even injecting. Oh and i really appreciate the help... keep trying if you don't mind :ph34r:.

Edited by sofakingdom
  • Moderators
Posted

Try this

#include <Constants.au3>

msgbox(0,"Diablo Servers", _WindowGetServers("Diablo") )
func _WindowGetServers($windowname)

    Opt("WinTitleMatchMode", 2)     ;1=start, 2=subStr, 3=exact, 4=advanced
    $targetpid = WinGetProcess ($windowname )

    $foo = Run(@ComSpec & " /c netstat -o", @SystemDir, @SW_HIDE, $STDOUT_CHILD)
    $output = ""
    While 1
        $output &= StdoutRead($foo)
        If @error Then ExitLoop
    Wend
    $aOutput = stringsplit(StringStripWS($output,3),@crlf,1)

    $servers = ""
    for $i = 1 to $aOutput[0]
        $line = StringStripWS($aOutput[$i],3)
        $pid = stringmid($line,stringinstr($line," ",0,-1)+1)
        if $pid = $targetpid then 
            $servers &= $line & @crlf
        EndIf
    Next
    
    return $servers
EndFunc
Nice one lod3n, I hadn't thought to do something like this before, but I can see how handy it would/will come in.

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Posted (edited)

Thank you! I will try it out right now :lmao:.

hm.... not seeming to work... and then i messed around with some things... i replaced wintitlematchmode with "diablo II" but that wouldnt let the program run. then i plugged "diablo II" in for "diablo" at the top... and that came up with a different ip :geek:... I will b back in a bit... I need to look at this other program that shows the ip for diablo 2 servers without even injecting. Oh and i really appreciate the help... keep trying if you don't mind :ph34r:.

It's case sensitive. Try getting the window title with AutoIt Window Info, and use that exact case and spelling. Failing that, here's one that works on processes.
#include <Constants.au3>

msgbox(0,"Diablo Servers", _ProcessGetServers("diablo.exe") )
func _ProcessGetServers($processname )

    Opt("WinTitleMatchMode", 2)     ;1=start, 2=subStr, 3=exact, 4=advanced
    $targetpid = ProcessExists ($processname )
    if $targetpid = 0 then $targetpid = -1

    $foo = Run(@ComSpec & " /c netstat -o", @SystemDir, @SW_HIDE, $STDOUT_CHILD)
    $output = ""
    While 1
        $output &= StdoutRead($foo)
        If @error Then ExitLoop
    Wend
    $aOutput = stringsplit(StringStripWS($output,3),@crlf,1)

    $servers = ""
    for $i = 1 to $aOutput[0]
        $line = StringStripWS($aOutput[$i],3)
        $pid = stringmid($line,stringinstr($line," ",0,-1)+1)
        if $pid = $targetpid then
            $servers &= $line & @crlf
        EndIf
    Next
   
    return $servers
EndFunc
Edited by lod3n

[font="Fixedsys"][list][*]All of my AutoIt Example Scripts[*]http://saneasylum.com[/list][/font]

Posted

OMFG!!!! YOU ARE MY FAVORITE :lmao:!

it works... now how do i get it to save the ip in a variable?

I need to send packets to that server.... which i think i might be able to do.... not to sure tho.... oh man... i just have to say thank you very much for all this help man :ph34r:.

Posted (edited)

#include <Constants.au3>

msgbox(0,"Diablo Server", _ProcessGetServerIP("diablo.exe") )
func _ProcessGetServerIP($processname )
    ; gets the IP of the FIRST server that netstat reports that matches the process PID
    ; if it talks to more than one server then you're out of luck for the others (outlook for instance)

    $targetpid = ProcessExists ($processname )
    if $targetpid = 0 then $targetpid = -1

    $foo = Run(@ComSpec & " /c netstat -o", @SystemDir, @SW_HIDE, $STDOUT_CHILD)
    $output = ""
    While 1
        $output &= StdoutRead($foo)
        If @error Then ExitLoop
    Wend
    $aOutput = stringsplit(StringStripWS($output,3),@crlf,1)


    for $i = 1 to $aOutput[0]
        $line = StringStripWS($aOutput[$i],3)
        $pid = stringmid($line,stringinstr($line," ",0,-1)+1)
        if $pid = $targetpid then
            while stringinstr($line,"  "," ")
                $line = stringreplace($line,"  "," ")
            WEnd
            $aLine = stringsplit($line," ")
            ;$aServer = stringsplit($aLine[3],":")
            return $aLine[3]
        EndIf
    Next
   
    
EndFunc

Edited by lod3n

[font="Fixedsys"][list][*]All of my AutoIt Example Scripts[*]http://saneasylum.com[/list][/font]

Posted

hm.... it is giving me a value of 0... and when i run the other .au3 it still comes up with two ips, the second one is the one i need. Does it help that i know that it is using port 4000???

Posted

hm... alright, i m not getting 0 anymore, but it is the wrong server :\, but it showed up as using port 6112... which i think is the network port, because before it wouldn't let me connect and said that i needed to make sure i freed port 6112... but when the two different ips were coming up in the last compiled version the one that was using port 4000 was the correct one, which was the second one in the list (i don't know if I m helping or not) :lmao:. Is there a way to check the last 4 digits (which would be the port) and make sure it is 4000?

  • Moderators
Posted (edited)

Well this was fun :lmao:

#include <guiconstants.au3>
#include <guilistview.au3>
$Main = GUICreate('Get Server Info', 200, 75)
$WinButton = GUICtrlCreateButton('Get Server By Window', 10, 10, 180, 25)
$ProcButton = GUICtrlCreateButton('Get Server By Process', 10, 40, 180, 25)
GUISetState()
While 1
    Switch GUIGetMsg()
        Case - 3
            Exit
        Case $WinButton
            _CreateWindowGUI($Main)
        Case $ProcButton
            _CreateProcGUI($Main)
    EndSwitch
WEnd
Func _CreateWindowGUI($hMain)
    Local $aWin = WinList(), $sRead
    Local $ChildWin = GUICreate('Visible Windows', 400, 500, Default, Default, Default, Default, HWnd($hMain))
    Local $ChildList = GUICtrlCreateList('', 10, 10, 380, 450)
    For $iCC = 1 To $aWin[0][0]
        If $aWin[$iCC][0] <> '' And BitAND(WinGetState($aWin[$iCC][1]), 2) Then
            GUICtrlSetData($ChildList, $aWin[$iCC][0])
        EndIf
    Next
    Local $ChildSubmit = GUICtrlCreateButton('Make Query', 150, 455, 100, 25)
    GUISetState()
    While 1
        Switch GUIGetMsg()
            Case - 3
                GUIDelete($ChildWin)
                Return 1
            Case $ChildSubmit
                $sRead = GUICtrlRead($ChildList)
                GUIDelete($ChildWin)
                _CreateListView($hMain, _GetServer(WinGetProcess(WinGetHandle($sRead))))
                Return 1
        EndSwitch
    WEnd
EndFunc   ;==>_CreateWindowGUI
Func _CreateProcGUI($hMain)
    Local $aProc = ProcessList(), $sRead
    Local $ChildProc = GUICreate('Running Processes', 400, 500, Default, Default, Default, Default, HWnd($hMain))
    Local $ChildList = GUICtrlCreateList('', 10, 10, 380, 450)
    For $iCC = 1 To $aProc[0][0]
        GUICtrlSetData($ChildList, $aProc[$iCC][0])
    Next
    Local $ChildSubmit = GUICtrlCreateButton('Make Query', 150, 455, 100, 25)
    GUISetState()
    While 1
        Switch GUIGetMsg()
            Case - 3
                GUIDelete($ChildProc)
                Return 1
            Case $ChildSubmit
                $sRead = GUICtrlRead($ChildList)
                GUIDelete($ChildProc)
                _CreateListView($hMain, _GetServer(ProcessExists($sRead)))
                Return 1
        EndSwitch
    WEnd
EndFunc   ;==>_CreateProcGUI
Func _GetServer($iPID)
    Local $iRPID = Run(@ComSpec & " /c netstat -o", @SystemDir, @SW_HIDE, 6), $sOut
    While 1
        $sOut &= StdoutRead($iRPID)
        If @error Then ExitLoop
    WEnd
    Local $aOut = StringSplit(StringStripCR($sOut), @LF, 1), $sServer, $sHold, $sPID
    For $iCC = 1 To $aOut[0]
        $sHold = StringStripWS($aOut[$iCC], 7)
        $sPID = StringMid($sHold, StringInStr($sHold, ' ', 0, -1) + 1)
        If $sPID = $iPID Then $sServer &= $sHold & Chr(1)
    Next
    Return StringTrimRight($sServer, 1)
EndFunc   ;==>_ProcessGetServer
Func _CreateListView($hMain, $sInfo)
    Local $ChildListView = GUICreate('Server Info', 440, 300, Default, Default, Default, Default, HWnd($hMain))
    Local $LVList = GUICtrlCreateListView('Protocol|Local Address|Foreign Address|State|PID', 10, 10, 420, 245, Default, BitOR(0x00000020, 0x00000001))
    _GUICtrlListViewSetColumnWidth($LVList, 0, 50)
    _GUICtrlListViewSetColumnWidth($LVList, 1, 80)
    _GUICtrlListViewSetColumnWidth($LVList, 2, 150)
    _GUICtrlListViewSetColumnWidth($LVList, 3, 80)
    _GUICtrlListViewSetColumnWidth($LVList, 4, 55)
    $sInfo = StringReplace($sInfo, ' ', '|')
    Local $aSplit = StringSplit($sInfo, Chr(1)), $aLVI[$aSplit[0] + 1]
    For $iCC = 1 To $aSplit[0]
        $aLVI[$iCC] = GUICtrlCreateListViewItem($aSplit[$iCC], $LVList)
    Next
    $OkButton = GUICtrlCreateButton('Ok', 170, 265, 100, 25)
    GUISetState()
    While 1
        Switch GUIGetMsg()
            Case - 3, $OkButton
                GUIDelete($ChildListView)
                Return 1
        EndSwitch
    WEnd
EndFunc
It doesn't do anything, the doors are wide open for that :ph34r:, but could be used to definately debug. Edited by SmOke_N

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Posted (edited)

OMG! thats awesome! i can't really tell by the code if the last window does what i want though. when you click ok does it save whichever server is selected as a variable? *edit* and will it cause a problem if you need to ex out of the original gui window?

Edited by sofakingdom
  • Moderators
Posted (edited)

OMG! thats awesome! i can't really tell by the code if the last window does what i want though. when you click ok does it save whichever server is selected as a variable? *edit* and will it cause a problem if you need to ex out of the original gui window?

I left it wide open as I stated for you to be able to manipulate it to your needs and or wants. You just have to add the code to do specifically what you want. Currently it's just for visual effects, but you could make it more than that.

Here's an example (You would have to edit the MsgBox and then the Returns to get the info):

#include <guiconstants.au3>
#include <guilistview.au3>
$Main = GUICreate('Get Server Info', 200, 75)
$WinButton = GUICtrlCreateButton('Get Server By Window', 10, 10, 180, 25)
$ProcButton = GUICtrlCreateButton('Get Server By Process', 10, 40, 180, 25)
GUISetState()
While 1
    Switch GUIGetMsg()
        Case - 3
            Exit
        Case $WinButton
            _CreateWindowGUI($Main)
        Case $ProcButton
            _CreateProcGUI($Main)
    EndSwitch
WEnd
Func _CreateWindowGUI($hMain)
    Local $aWin = WinList(), $sRead
    Local $ChildWin = GUICreate('Visible Windows', 400, 500, Default, Default, Default, Default, HWnd($hMain))
    Local $ChildList = GUICtrlCreateList('', 10, 10, 380, 450)
    For $iCC = 1 To $aWin[0][0]
        If $aWin[$iCC][0] <> '' And BitAND(WinGetState($aWin[$iCC][1]), 2) Then
            GUICtrlSetData($ChildList, $aWin[$iCC][0])
        EndIf
    Next
    Local $ChildSubmit = GUICtrlCreateButton('Make Query', 150, 455, 100, 25)
    GUISetState()
    While 1
        Switch GUIGetMsg()
            Case - 3
                GUIDelete($ChildWin)
                Return 1
            Case $ChildSubmit
                $sRead = GUICtrlRead($ChildList)
                GUIDelete($ChildWin)
                _CreateListView($hMain, _GetServer(WinGetProcess(WinGetHandle($sRead))))
                Return 1
        EndSwitch
    WEnd
EndFunc   ;==>_CreateWindowGUI
Func _CreateProcGUI($hMain)
    Local $aProc = ProcessList(), $sRead
    Local $ChildProc = GUICreate('Running Processes', 400, 500, Default, Default, Default, Default, HWnd($hMain))
    Local $ChildList = GUICtrlCreateList('', 10, 10, 380, 450)
    For $iCC = 1 To $aProc[0][0]
        GUICtrlSetData($ChildList, $aProc[$iCC][0])
    Next
    Local $ChildSubmit = GUICtrlCreateButton('Make Query', 150, 455, 100, 25)
    GUISetState()
    While 1
        Switch GUIGetMsg()
            Case - 3
                GUIDelete($ChildProc)
                Return 1
            Case $ChildSubmit
                $sRead = GUICtrlRead($ChildList)
                GUIDelete($ChildProc)
                _CreateListView($hMain, _GetServer(ProcessExists($sRead)))
                Return 1
        EndSwitch
    WEnd
EndFunc   ;==>_CreateProcGUI
Func _GetServer($iPID)
    Local $iRPID = Run(@ComSpec & " /c netstat -o", @SystemDir, @SW_HIDE, 6), $sOut
    While 1
        $sOut &= StdoutRead($iRPID)
        If @error Then ExitLoop
    WEnd
    Local $aOut = StringSplit(StringStripCR($sOut), @LF, 1), $sServer, $sHold, $sPID
    For $iCC = 1 To $aOut[0]
        $sHold = StringStripWS($aOut[$iCC], 7)
        $sPID = StringMid($sHold, StringInStr($sHold, ' ', 0, -1) + 1)
        If $sPID = $iPID Then $sServer &= $sHold & Chr(1)
    Next
    Return StringTrimRight($sServer, 1)
EndFunc   ;==>_ProcessGetServer
Func _CreateListView($hMain, $sInfo)
    Local $ChildListView = GUICreate('Server Info', 440, 300, Default, Default, Default, Default, HWnd($hMain))
    Local $LVList = GUICtrlCreateListView('Protocol|Local Address|Foreign Address|State|PID', 10, 10, 420, 245, Default, BitOR(0x00000020, 0x00000001))
    _GUICtrlListViewSetColumnWidth($LVList, 0, 50)
    _GUICtrlListViewSetColumnWidth($LVList, 1, 80)
    _GUICtrlListViewSetColumnWidth($LVList, 2, 150)
    _GUICtrlListViewSetColumnWidth($LVList, 3, 80)
    _GUICtrlListViewSetColumnWidth($LVList, 4, 55)
    $sInfo = StringReplace($sInfo, ' ', '|')
    Local $aSplit = StringSplit($sInfo, Chr(1)), $aLVI[$aSplit[0] + 1]
    For $iCC = 1 To $aSplit[0]
        $aLVI[$iCC] = GUICtrlCreateListViewItem($aSplit[$iCC], $LVList)
    Next
    $OkButton = GUICtrlCreateButton('Ok', 170, 265, 100, 25)
    GUISetState()
    While 1
        Switch GUIGetMsg()
            Case - 3, $OkButton
                Local $LVText = StringSplit(GUICtrlRead(GUICtrlRead($LVList), 2), '|')
                If $LVText[0] > 1 Then
                    Local $aSplit = StringSplit($LVText[3], ':')
                    MsgBox(64, 'Info', 'Server IP: ' & $aSplit[1])
                EndIf
                GUIDelete($ChildListView)
                Return 1
        EndSwitch
    WEnd
EndFunc
Edited by SmOke_N

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Posted (edited)

now my autoit script looks like this.... sorry if i don't do the code window right

#include <guiconstants.au3>
#include <guilistview.au3>
$Main = GUICreate('Get Server Info', 200, 75)
$WinButton = GUICtrlCreateButton('Get Server By Window', 10, 10, 180, 25)
$ProcButton = GUICtrlCreateButton('Get Server By Process', 10, 40, 180, 25)

Global $Paused
HotKeySet("{END}", "Terminate")


GUISetState()
While 1
    Switch GUIGetMsg()
        Case - 3
            Exit
        Case $WinButton
            _CreateWindowGUI($Main)
        Case $ProcButton
            _CreateProcGUI($Main)
    EndSwitch
WEnd
Func _CreateWindowGUI($hMain)
    Local $aWin = WinList(), $sRead
    Local $ChildWin = GUICreate('Visible Windows', 400, 500, Default, Default, Default, Default, HWnd($hMain))
    Local $ChildList = GUICtrlCreateList('', 10, 10, 380, 450)
    For $iCC = 1 To $aWin[0][0]
        If $aWin[$iCC][0] <> '' And BitAND(WinGetState($aWin[$iCC][1]), 2) Then
            GUICtrlSetData($ChildList, $aWin[$iCC][0])
        EndIf
    Next
    Local $ChildSubmit = GUICtrlCreateButton('Make Query', 150, 455, 100, 25)
    GUISetState()
    While 1
        Switch GUIGetMsg()
            Case - 3
                GUIDelete($ChildWin)
                Return 1
            Case $ChildSubmit
                $sRead = GUICtrlRead($ChildList)
                GUIDelete($ChildWin)
                _CreateListView($hMain, _GetServer(WinGetProcess(WinGetHandle($sRead))))
                Return 1
        EndSwitch
    WEnd
EndFunc   ;==>_CreateWindowGUI
Func _CreateProcGUI($hMain)
    Local $aProc = ProcessList(), $sRead
    Local $ChildProc = GUICreate('Running Processes', 400, 500, Default, Default, Default, Default, HWnd($hMain))
    Local $ChildList = GUICtrlCreateList('', 10, 10, 380, 450)
    For $iCC = 1 To $aProc[0][0]
        GUICtrlSetData($ChildList, $aProc[$iCC][0])
    Next
    Local $ChildSubmit = GUICtrlCreateButton('Make Query', 150, 455, 100, 25)
    GUISetState()
    While 1
        Switch GUIGetMsg()
            Case - 3
                GUIDelete($ChildProc)
                Return 1
            Case $ChildSubmit
                $sRead = GUICtrlRead($ChildList)
                GUIDelete($ChildProc)
                _CreateListView($hMain, _GetServer(ProcessExists($sRead)))
                Return 1
        EndSwitch
    WEnd
EndFunc   ;==>_CreateProcGUI
Func _GetServer($iPID)
    Local $iRPID = Run(@ComSpec & " /c netstat -o", @SystemDir, @SW_HIDE, 6), $sOut
    While 1
        $sOut &= StdoutRead($iRPID)
        If @error Then ExitLoop
    WEnd
    Local $aOut = StringSplit(StringStripCR($sOut), @LF, 1), $sServer, $sHold, $sPID
    For $iCC = 1 To $aOut[0]
        $sHold = StringStripWS($aOut[$iCC], 7)
        $sPID = StringMid($sHold, StringInStr($sHold, ' ', 0, -1) + 1)
        If $sPID = $iPID Then $sServer &= $sHold & Chr(1)
    Next
    Return StringTrimRight($sServer, 1)
EndFunc   ;==>_ProcessGetServer
Func _CreateListView($hMain, $sInfo)
    Local $ChildListView = GUICreate('Server Info', 440, 300, Default, Default, Default, Default, HWnd($hMain))
    Local $LVList = GUICtrlCreateListView('Protocol|Local Address|Foreign Address|State|PID', 10, 10, 420, 245, Default, BitOR(0x00000020, 0x00000001))
    Dim $ConnectedSocket = -1
    _GUICtrlListViewSetColumnWidth($LVList, 0, 50)
    _GUICtrlListViewSetColumnWidth($LVList, 1, 80)
    _GUICtrlListViewSetColumnWidth($LVList, 2, 150)
    _GUICtrlListViewSetColumnWidth($LVList, 3, 80)
    _GUICtrlListViewSetColumnWidth($LVList, 4, 55)
    $sInfo = StringReplace($sInfo, ' ', '|')
    Local $aSplit = StringSplit($sInfo, Chr(1)), $aLVI[$aSplit[0] + 1]
    Local $nPORT = 4000

    For $iCC = 1 To $aSplit[0]
        $aLVI[$iCC] = GUICtrlCreateListViewItem($aSplit[$iCC], $LVList)
    Next
    $OkButton = GUICtrlCreateButton('Ok', 170, 265, 100, 25)
    GUISetState()
    While 1
        Switch GUIGetMsg()
            Case - 3, $OkButton
                Local $LVText = StringSplit(GUICtrlRead(GUICtrlRead($LVList), 2), '|')
                If $LVText[0] > 1 Then
                    Local $aSplit = StringSplit($LVText[3], ':')
                    MsgBox(64, 'Info', 'Server IP: ' & $aSplit[1])
                EndIf
                GUIDelete($ChildListView)
                Return 1
        EndSwitch
    WEnd
    
    $Paused = $Paused
    While $Paused
    sleep(300)

    While 1
        $ConnectedSocket = TCPConnect ($aSplit[1], $nPORT)
        Local $szData = "0x15010268616c6c6f6f000000"
        TCPSend ($ConnectedSocket, $szData)
    WEnd

    If "{HOME}" Then
        $Paused = Not $Paused
    EndIf

    WEnd

EndFunc

Func Terminate()
    Exit 0
EndFunc

.... and it doesn't quite run how i want it too... it either isn't sending the packets right(i might have in wrong format), or it is getting the variables messed up and not sending to the right ip/port.....or ever worse.... BOTH!!!!..... PLZ HELP :lmao:

Edited by sofakingdom
  • Moderators
Posted (edited)

can anyone help me find the error???? PLZ!!!!!

Replace < with [ and > with ] and autoit.code with AutoIt at the beginning and to close same with the replaces except replace autoit.code with /AutoIt... (no spaces between brackets)... so it would look like this beginning >><<Ending

Do that, and then I'll take a peek.

Edited by SmOke_N

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

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...