Jump to content

Recommended Posts

Posted

im pretty new to autoit in itself and im making a simple redialer for my aolaccount on the network that i share my internet connection with unfortunately i dont like to get up and manually do it so i made this little script that works fine it just leaves a cmd.exe window open.

#include <ASock.au3>
Const $MYMSG = 1024


Const $PORT2LISTEN = 8558


Global $hNotifyGUI = GUICreate( "notify" )
Global $hListen
Global $hAccepted = -1
If Not TCPStartup( ) Then Exit 1
If Not _StartServer( "0.0.0.0", $PORT2LISTEN, "OnEvent" ) Then Exit 2
ConsoleWrite( "+> Waiting for connection on port #" & $PORT2LISTEN & "..." & @CRLF )
While $hAccepted = -1
   ; blah blah...
WEnd
; Connection accepted!
ConsoleWrite( "Connection accepted, socket #" & $hAccepted & @CRLF )

While $hAccepted <> -1
WEnd
TCPCloseSocket( $hListen )
TCPShutdown( )
Exit 0

; This is called when an event has happened on a socket.
Func OnEvent( $hWnd, $iMsgID, $WParam, $LParam )
    Local $hSocket = $WParam
    Local $iError = _HiWord( $LParam )
    Local $iEvent = _LoWord( $LParam )
   
    Local $sDataBuff
   
    If $iMsgID = $MYMSG Then
        Switch $iEvent
            Case $FD_ACCEPT
                If $iError <> 0 Then
                    Exit MsgBox( 16, "simpleServer error", "Failed to listen to " & $PORT2LISTEN & "." )
                EndIf
                $hAccepted = TCPAccept( $hListen )
            Case $FD_READ
                If $iError <> 0 Then
                    TCPCloseSocket( $hAccepted )
                    $hAccepted = -1
                Else
                    $sDataBuff = TCPRecv( $hAccepted, 8192 )
                    If @error Then
                        TCPCloseSocket( $hAccepted )
                        $hAccepted = -1
                    Else
                        If StringInStr($sDataBuff, "disconnect", 0) Then
                            ConsoleWrite( "{{" & $sDataBuff & "}}" & @CRLF )
                        ;                       
                        ;TrayTip( "Data has arrived!", $sDataBuff, 30 )
                            disconnect()
                        Else
                            ConsoleWrite($sDataBuff& @CRLF)
                        EndIf
                        
                        
                    EndIf
                EndIf
            Case $FD_WRITE
                If $iError <> 0 Then
                    TCPCloseSocket( $hAccepted )
                    $hAccepted = -1
                EndIf
            Case $FD_CLOSE; Bye bye
                _ASockShutdown( $hAccepted )
                Sleep( 1 )
        EndSwitch
    EndIf
EndFunc

Func _StartServer( $sIP, $iPort, $sFunc )
    $hListen = _ASocket( )
    If @error Then Return False
    _ASockSelect( $hListen, $hNotifyGUI, $MYMSG, BitOR( $FD_ACCEPT, $FD_READ, $FD_WRITE, $FD_CLOSE ) )
    If @error Then Return False
    GUIRegisterMsg( $MYMSG, $sFunc )
    _ASockListen( $hListen, $sIP, $iPort )
    
    If @error Then Return False
    Return True
EndFunc


Func Disconnect()
    sleep(5)
    ProcessClose("AOLDial.exe")
    If ProcessWaitClose("AOLDial.exe") Then
    ;TrayTip("test","Aol Dialer has been disconnected", 30)
        ConsoleWrite("Aol connection has been terminated." & @CRLF)
        $process = 0;
    EndIf
    If $process = 0 Then
    ;TrayTip("test","Aol connection not found. Starting.....", 30)
        ConsoleWrite("Starting AOL Dialer.exe" & @CRLF)
        Sleep(5)
        Run(@ComSpec & " /k " & 'c:\dialer.bat')
        sleep(1000)
        WinActivate("AOL Dialer")
        startDialing()
    EndIf
EndFunc

Func startDialing()
    Sleep(5000)
    ConsoleWrite("Starting the dial" & @CRLF)
    WinActivate("AOL Dialer")
    ControlClick("AOL Dialer", "Sign On", "[CLASS:SC_BUTTON; INSTANCE:3]")
EndFunc

for some reason i cant call the shortcut or the batch file directly so i have to run it as a dos command but when it finishes running the dos window remains open.

Posted

... the dos window remains open.

try changing

Run(@ComSpec & " /k " & 'c:\dialer.bat')

Run(@ComSpec & " /c " & 'c:\dialer.bat')

[size="1"][font="Arial"].[u].[/u][/font][/size]

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
×
×
  • Create New...