Ascend4nt

Network Interface Info, Statistics, and Traffic

37 posts in this topic




Works on 7 x64. Thanks for sharing.


_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

Share this post


Link to post
Share on other sites

Thanks for the tests.  Btw, my 'splash window' height calculations aren't very scientific as you've seen from my other thread. :unsure:

Share this post


Link to post
Share on other sites

Ok, fine.  I'm never happy leaving things looking halfway done.  Now I've added IP and ICMP statistics.  See 1st post. Oh, and ICMP doesn't change that often - to force an increase, do a 'ping' from the command prompt.

Share this post


Link to post
Share on other sites

Thx for sharing!

Br,

UEZ


Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites

The splash screen is OK this time. I tested the new version and pinged a machine, it registered the packet being sent with your UDF.


_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

Share this post


Link to post
Share on other sites

I've update this UDF with a bunch of more information.  Network adapters and interfaces are now queryable. Arrays of information about each network interface are now returned from certain functions.  Inside the arrays are indexes which can be used to query network statistics for each network interface.

This is a pretty big change from my first version of Network Statistics (I call it version 2!), so if anyone inquires about it, I could upload the old version again.  However, I plan to split the main UDF from the example in the future.

Updates:

2013-07-02:

 Fixed: indexing, updated and enhanced output

 Changed: Various functions return arrays even if failure - this is to make XP pre-SP1 and also collection of IPv6 less troublesome. @error should still be checked on return though!

 Added: Adapter and Interface information and statistics collection

See the first post

Share this post


Link to post
Share on other sites

I'm getting an error:

C:\_Downloads\NetworkStatistics.au3 (1267) : ==> Subscript used with non-Array variable.:
ConsoleWrite("Interface #"&$i+1&" Entry Info: [0] Interface Index = " & $aNIEntryInfo[0] & ", [1] Interface Type = " & $aNIEntryInfo[1] & ", ...
ConsoleWrite("Interface #"&$i+1&" Entry Info: [0] Interface Index = " & $aNIEntryInfo^ ERROR

Br,

UEZ


Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites

UEZ, thanks.. can you insert this line after the call to _Network_InterfaceInfo() and tell me what it reports?:

ConsoleWrite("_Network_InterfaceEntryInfo return, @error = " & @error & ", @extended = " & @extended & @CRLF)

Also, is there information reported to the console from the call to _Network_IPAllAddressTable() on?  I've tested this so far in 3 different VM environments, so I was hopeful.. <_<

Share this post


Link to post
Share on other sites

Sure.

Output:

_Network_InterfaceEntryInfo return, @error = 3, @extended = 2

Br,

UEZ


Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites

That is really really peculiar.  There's nothing in the documentation for GetIfEntry that mentions ERROR_FILE_NOT_FOUND (2), and in light of what the function does it really makes no sense to give that specific error.

I also asked if you had any console output from the call to _Network_IPAllAddressTable() onwards.  It seems it must return an array if it doesn't crash until _Network_InterfaceInfo()..  does the data look valid? Perhaps adding that ConsoleWrite() debug message after a call to that function could help as well.

The only thing I can guess right now is that there's an index # that isn't matching up somewhere..

thanks again for your help

Share this post


Link to post
Share on other sites

#13 ·  Posted (edited)

This is the complete output:

IP [IPv4] Stats: [0]  = IP Forwarding Status: [1 = Enabled, 2 = Disabled] : 2, [1]  = Default initial time-to-live (TTL) for datagrams : 64
, [2]  = # Received Datagrams : 97579, [3]  = # Received Datagrams w/Header errors : 0, [4]  = # Received Datagrams w/Address errors : 14
, [5]  = # Forwarded Datagrams : 0, [6]  = # Received Datagrams w/Unknown Protocol : 0, [7]  = # Received Datagrams Discarded : 366
, [8]  = # Received Datagrams Delivered : 99864, [9]  = # Requested Outgoing Datagrams : 79017, [10] = # Outgoing Datagrams Discarded : 0
, [11] = # Transmitted Datagrams Discarded : 0, [12] = # Datagrams w/o Routes that were Discarded : 0, [13] = TimeOut for Reassembling Incoming Fragmented Datagrams : 60
, [14] = # Datagrams Requiring Reassembly : 0, [15] = # Datagrams Successfully Reassembled : 0, [16] = # Datagrams that Failed to be Reassembled : 0
, [17] = # Datagrams that were Fragmented Successfully : 0, [18] = # Datagrams not Fragmented, and Discarded : 0, [19] = # Fragments created (for Datagrams) : 0
, [20] = # of Interfaces : 6, [21] = # of IP addresses associated with PC : 43, [22] = # of Routes in the Routing table : 14
-----------------------------------------
IP [IPv6] Stats: [0]  = IP Forwarding Status: [1 = Enabled, 2 = Disabled] : 2, [1]  = Default initial time-to-live (TTL) for datagrams : 128
, [2]  = # Received Datagrams : 0, [3]  = # Received Datagrams w/Header errors : 0, [4]  = # Received Datagrams w/Address errors : 0
, [5]  = # Forwarded Datagrams : 0, [6]  = # Received Datagrams w/Unknown Protocol : 0, [7]  = # Received Datagrams Discarded : 111
, [8]  = # Received Datagrams Delivered : 0, [9]  = # Requested Outgoing Datagrams : 800, [10] = # Outgoing Datagrams Discarded : 0
, [11] = # Transmitted Datagrams Discarded : 0, [12] = # Datagrams w/o Routes that were Discarded : 8, [13] = TimeOut for Reassembling Incoming Fragmented Datagrams : 60
, [14] = # Datagrams Requiring Reassembly : 0, [15] = # Datagrams Successfully Reassembled : 0, [16] = # Datagrams that Failed to be Reassembled : 0
, [17] = # Datagrams that were Fragmented Successfully : 0, [18] = # Datagrams not Fragmented, and Discarded : 0, [19] = # Fragments created (for Datagrams) : 0
, [20] = # of Interfaces : 10, [21] = # of IP addresses associated with PC : 30, [22] = # of Routes in the Routing table : 13
-----------------------------------------
TCP [IPv4] Stats:[0] Rto Algorithm = 3,[1] Rto Min = 10,[2] Rto Max = 4294967295,[3] #Max Connections = 4294967295,[4] #Active Opens = 1656,[5] #Passive Opens = 17
 [6] #Failed Connection Attempts = 1508,[7] #Established Connections that were Reset = 359,[8] #Established Connections [current] = 26
 [9] #Recvd Segments = 95689,[10] #Sent Segments = 73938,[11] #Retransmitted Segments = 3735
 [12] #Receive Errors = 0,[13] #Sent Segments with Reset Flag = 2058,[14] #Connections = 87
-----------------------------------------
TCP [IPv6] Stats:[0] Rto Algorithm = 3,[1] Rto Min = 10,[2] Rto Max = 4294967295,[3] #Max Connections = 4294967295,[4] #Active Opens = 0,[5] #Passive Opens = 0
 [6] #Failed Connection Attempts = 0,[7] #Established Connections that were Reset = 0,[8] #Established Connections [current] = 0
 [9] #Recvd Segments = 0,[10] #Sent Segments = 0,[11] #Retransmitted Segments = 0
 [12] #Receive Errors = 0,[13] #Sent Segments with Reset Flag = 0,[14] #Connections = 59
-----------------------------------------
UDP [IPv4] Stats: [0] #Recvd Datagrams = 9163,[1] #Discarded Datagrams [invalid port] = 359,[2] #Erroneous Datagrams = 7
 [3] #Sent Datagrams = 4827,[4] #UDP Listener Entries = 27
-----------------------------------------
UDP [IPv6] Stats: [0] #Recvd Datagrams = 0,[1] #Discarded Datagrams [invalid port] = 111,[2] #Erroneous Datagrams = 0
 [3] #Sent Datagrams = 657,[4] #UDP Listener Entries = 7
-----------------------------------------
ICMP [IPv4] Stats: [0] = # Incoming ICMP Messages : 10, [1] = # Incoming ICMP Errors : 0, [2] = # Outgoing ICMP Messages : 13, [3] = # Outgoing ICMP Errors : 0
-----------------------------------------
ICMP [IPv6] Stats: [0] = # Incoming ICMP Messages : 0, [1] = # Incoming ICMP Errors : 0, [2] = # Outgoing ICMP Messages : 35, [3] = # Outgoing ICMP Errors : 0
-----------------------------------------
# of adapters: 5
Adapter Index #13, Name = \DEVICE\TCPIP_{F5C17D50-4BE2-4008-BA0A-76067ABE7DE2}
Adapter Index #849, Name = \DEVICE\TCPIP_{4CD51587-472C-41E3-B0FD-C92CDA50FB20}
Adapter Index #786, Name = \DEVICE\TCPIP_{B73941B0-2376-4882-B70B-76B0F0ED8209}
Adapter Index #787, Name = \DEVICE\TCPIP_{B08246C5-DAC4-4823-A0A2-BD3F077BF4CC}
Adapter Index #15, Name = \DEVICE\TCPIP_{D2D5B3E5-1958-4C19-A719-BC16A5ABB6C5}
-----------------------------------------
+ Added Interface (index #0), Intel(R) 82577LM Gigabit Network Connection
+ Added Interface (index #786), VMware Virtual Ethernet Adapter for VMnet1
+ Added Interface (index #787), VMware Virtual Ethernet Adapter for VMnet8
+ Added Interface (index #849), VirtualBox Host-Only Ethernet Adapter
+ Added Interface (index #862), Microsoft 6to4 Adapter
Interface #1: [0] Index #0, [1] Type = 6, [2] Operational Status = 1, [3] Flags = 0x000000C5, [4] Physical [MAC] Address: 88-AE-1D-B1-08-30, [5] MTU =  1500
, [6] Description: Intel(R) 82577LM Gigabit Network Connection, [7] Friendly Name: Local Area Connection, [8] Adapter/Service Name [GUID] = {F5C17D50-4BE2-4008-BA0A-76067ABE7DE2}
, [9] Max Receive Speed [Vista+] = 100000000, [10] Max Transmit Speed [Vista+] = 100000000
, [11] IPv4 Address(es): 168.185.212.21, [12] IPv6 Address(es): 
, [13] Connection Type [Vista+] = 1, [14] Tunnel Type [Vista+] = 0
_Network_InterfaceEntryInfo return, @error = 3, @extended = 2
C:\_Downloads\NetworkStatistics.au3 (1268) : ==> Subscript used with non-Array variable.:
ConsoleWrite("Interface #"&$i+1&" Entry Info: [0] Interface Index = " & $aNIEntryInfo[0] & ", [1] Interface Type = " & $aNIEntryInfo[1] & ", [2] Operational Status = " & $aNIEntryInfo[2] & ", [3] Admin Status = " & $aNIEntryInfo[3] & ", [4] Physical Address = " & $aNIEntryInfo[4] & ", [5] MTU [Max Trans. Unit] in bytes = " & $aNIEntryInfo[5] & @CRLF & ", [6] Description = " & $aNIEntryInfo[6] & ", [7] Interface Name = " & $aNIEntryInfo[7] & @CRLF & ", [8] Last change [1/100th second] = " & $aNIEntryInfo[8] & ", [9] Interface Speed [bps] = " & $aNIEntryInfo[9] & @CRLF & ", [10] # Recvd Data [in Octets] = " & $aNIEntryInfo[10] & ", [11] # Recvd Unicast Packets = " & $aNIEntryInfo[11] & ", [12] # Recvd Non-Unicast Packets = " & $aNIEntryInfo[12] & ", [13] # Recvd Packets Discarded [no error] = " & $aNIEntryInfo[13] & ", [14] # Recvd Packets Discarded [error] = " & $aNIEntryInfo[14] & ", [15] # Recvd Packets Discarded [unk. protocol] = " & $aNIEntryInfo[15] & @CRLF & ", [16] # Sent Data [in Octets] = " & $aNIEntryInfo[16] & ", [17] # Sent Unicast Packets = " & $aNIEntryInfo[17] & ", [18] # Sent Non-Unicast Packets = " & $aNIEntryInfo[18] & ", [19] # Sent Packets Discarded [no error] = " & $aNIEntryInfo[19] & ", [20] # Sent Packets Discarded [error] = " & $aNIEntryInfo[20] & @CRLF & ", [21] Transmit Queue Length [n/a] = " & $aNIEntryInfo[21] & @CRLF)
ConsoleWrite("Interface #"&$i+1&" Entry Info: [0] Interface Index = " & $aNIEntryInfo^ ERROR
->11:51:04 AutoIt3.exe ended.rc:1

Br,

UEZ

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites

Thanks, I'm gonna review it and see if there's something askew.  I haven't seen an index # 0 yet, so that's curious..

Share this post


Link to post
Share on other sites

Okay, apparently that 0 index is wrong and should be 13.  I *believe* this is due to my checks against IPv6Index.  Could you possibly locate the line

               " If $nIPAAStSize > 108 Then    ; XP SP1+ O/S Structure?"

and change that and the whole IF-Endif to read this:

                If $nIPAAStSize > 108 Then    ; XP SP1+ O/S Structure?
                    ; If IPv6 index is different than IPv4 Index, AND non-zero, use the latter
                    $nTemp = DllStructGetData($stIP_ADAPTER_ADDRESSES, "Ipv6IfIndex")
                    If $nTemp And $nTemp <> $aIPAddrTableEntries[$nNumEntries][0] Then
                        $aIPAddrTableEntries[$nNumEntries][0] = $nTemp
                    EndIf
                EndIf

Hopefully that would fix the problem.  I'm still not even sure if its worth checking Ipv6IfIndex yet, so I may modify that in the future.  However, the above code at least tests for a 0 condition, and won't change an index if Ipv6IfIndex is 0.

Thanks!

Share this post


Link to post
Share on other sites

Cool, no em anymore.  :thumbsup:

Br,

UEZ


Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites

#17 ·  Posted (edited)

nice!  New version uploaded!  Thx for the help spotting the error

Edited by Ascend4nt

Share this post


Link to post
Share on other sites

#18 ·  Posted (edited)

I Got Eror..

When I'm Disconnect Modem..

LINE 1340

$sSplashText &=StringFormat("%45,56s", $aNIEntryInfo[6] & @CRLF
$sSplashText &=StringFormat("%45,56s", $aNIEntryInfo^ ERROR
     
Error: Subscript used with non-Array variable

Edited by setengahgila

Share this post


Link to post
Share on other sites

I Got Eror..

When I'm Disconnect Modem..

....

 

A modem?! Really? :o   I thought those were all gone by now haha..

But anyway.. to the problem.  If you disconnect or disable a network interface, the index # assigned to it will fail to work, or possibly be reassigned when the device is reenabled.  But, just to be thorough here.. could you please insert this code and let me know what it reports when you disconnect the modem:

        $aNIEntryInfo = _Network_InterfaceEntryInfo($aIPAllAddrTable[$i][0])
        If @error Then
            ConsoleWrite("_Network_InterfaceEntryInfo return, @error = " & @error & ", @extended = " & @extended & @CRLF)
            ExitLoop
        EndIf

That goes in the For $i = 0 To $nIPs - 1 loop, line 1334.  It *should* return error code ERROR_NOT_FOUND (1168), if I understand it correctly.

The only way to get around the problem of disconnected devices is to rescan for devices using _Network_IPAllAddressTable().  But before we go there, it'd be good to see what kind of error code is returned.

Thanks for your help

Share this post


Link to post
Share on other sites

Updated today - version 3 (by my reckoning)!  This is now a full fledged Network Interface Information and Statistics UDF module.

2013-07-06:

 Added: Much more Adapter Information

 Changed: Example is now separate from the UDF

 Fixed some minor issues here and there

 Changed: Global Handle to IPHLPAPI.DLL is now contained in the UDF and used to speed up function calls

 Misc. Other fixes I didn't keep track of!

See 1st post, which is now a bit more detailed

Share this post


Link to post
Share on other sites

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

  • Similar Content

    • badcoder123
      By badcoder123
      Anyone know how to access the information circled in the photo?
       

    • XinYoung
      By XinYoung
      Hello all,
      I've been working on 4 standalone scripts. They each have their own GUI and are now independent .exe's. But instead of having 4 separate icons on my computer, is it possible to put them all together into one .exe?
      What I want is one interface with tabs. Each script's GUI would be on their own respective tab. Is this possible?
      The different scripts don't need to communicate with one another. I just want them all in one .exe.
      I can't find this anywhere... Any help would be greatly appreciated. Thank you!
    • tarretarretarre
      By tarretarretarre
      AutoIt-SocketIo
      Yep yep, this is pretty much an attempt to port the existing project's concept https://socket.io/ to AutoIt's Codebase. So i will not go in to so much detail.
      This is how the communication is done http://i.imgur.com/0mMfsBD.png Each client is isolated to the server http://i.imgur.com/rVO2LFb.png Features
      Easy API VarType Translation (Example: If the server sends an int, the client will receive an int and vice versa) Fully featured examples Data encryption (Using Autoit's UDF Crypt.au3) Limitations / Drawbacks
      Every Broadcast/Emit is limited to a maximum of 16 parameters Every Callback Function has to have the same number of parameters as the Broadcasted/Emited event It is not possible to Broadcast/Emit objects Only 1D-arrays are allowed to be Broadcasted/Emitted (2D arrays will probably never be supported) Changelog
      Version 1.4.0 (This update DOES NOT break scripts)
      Added a new server method: _Io_getSockets which will return an array of all sockets. See more in the doc Added a banning-system, see more at: _Io_getBanlist, _Io_Ban, _Io_Sanction, _Io_IsBanned Added a new default event for clients banned. See more at default events Added two new client and server methods _Io_setEventPreScript And _Io_setEventPostScript. The intent for these is to not DRY when doing debug \ tasks that requires to be ran before or after events. Added a new client and server method _Io_ClearEvents. Added a third optional parameter to _Io_On called $socket, you may only pass the socket returned from _Io_Listen or _Io_Connect. The intent for this change is to allow for server + client in the same envoirment. Added a second parameter to _Io_Loop called $WhoAmI which should used with the new enums $_IO_SERVER and $_IO_CLIENT. The intent for this change is to allow for server + client in the same envoirment. Added a new client method _Io_TransferSocket. Added a new server method _Io_getActiveSocketCount. Optimations, avoiding Redims and unnecessary nested arrays as good as possible etc. Version 1.3.0 (This update DOES NOT break scripts)
      Got rid of unnecessary Redims with sockets and subscriptions in the main loop (This increased write performence greatly) Changed $iMaxDeadSocketsBeforeTidy from 100 to 1000 Changed _Io_setRecvPackageSize($nPackageSize = 2048) to _Io_setRecvPackageSize($nPackageSize = 4096) because 2017. Added Tests for both subscriptions and the automatic TidyUp Added a new server method: _Io_getMaxConnections Added a new server method: _Io_getMaxDeadSocketsCount Added a fifth parameter to the _Io_Listen method called $iMaxConnections which defaults to 100000. If the iMaxConnection + 1 user connects, they will be instantly disconnected. Added a parameter to _Io_Disconnect called $socket which defaults to null. If the iMaxConnections + 1 client connects, they will be instantly disconnected. Version 1.2.0 (This update DOES NOT break scripts)
      Added an option to set the packet-size of TCP-transports, see _Io_setRecvPackageSize Got rid of unnecessary StringLen's in _Io_loop Changed __Io_TidyUp to _Io_TidyUp and added it to the public Api reference list. Changed $iMaxDeadSocketsBeforeTidy default value from 1000 to 100 and added an option to disable it, read more at _Io_Listen Changed $bAutoReconnect from False to True. Fixed gitignore epicZ fail Improvemend Documentation Version 1.1.0 (This update DOES NOT break scripts)
      Fixed bug when Emitting / Broadcasting without any parameters causing a $fCallback crash Optimized Package-handling once again. Added 1D-Array support (Endless nestning). Added Subscriptions (See _Io_Subscribe _Io_Unsubscribe and _Io_BroadcastToRoom). Added new example for subscriptions (Be sure to use different room names when joining with clients) Added Unit testing (See Tests\Runner.au3 and Tests\Tests.au3, to run tests you need a udf found here: https://github.com/tarreislam/Autoit-Unit-Tester) Version 1.0.0
      (This update DOES NOT break scripts) Added data encryption (Using Autoit's UDF Crypt.au3) See more at _Io_EnableEncryption Added new method _Io_Disconnect which can be used with both servers and clients Improved package-handling to increase performance Increased the limit of Broadcasted/Emit parameters from 10 to 16 Api methods
      Server methods
      _Io_Listen($iPort, $iAddress = @IPAddress1, $iMaxPendingConnections = Default, $iMaxDeadSocketsBeforeTidy = 1000, $iMaxConnections = 100000) _Io_Subscribe(ByRef $socket, $sRoomName) _Io_Unsubscribe(ByRef $socket, $sRoomName = null) _Io_Broadcast(ByRef $socket, $sEventName, $p1, $p2, ...$p16)  
      _Io_BroadcastToAll(ByRef $socket, $sEventName, $p1, $p2, ...$p16) _Io_BroadcastToRoom(ByRef $socket, $sDesiredRoomName, $sEventName, $p1, $p2, ...$p16) _Io_socketGetProperty(ByRef $socket, $sProp = Default) _Io_getSockets($bForceUpdate = False, $socket = $__g_io_mySocket, $whoAmI = $__g_io_whoami) _Io_getDeadSocketCount() _Io_getSocketsCount() _Io_getActiveSocketCount() _Io_getMaxConnections() _Io_getMaxDeadSocketsCount() _Io_getBanlist($iEntry = Default) _Io_Ban($socketOrIp, $nTime = 3600, $sReason = "Banned", $sIssuedBy = "system") _Io_Sanction($socketOrIp) _Io_IsBanned($socketOrIp) _Io_TidyUp() Client methods
      _Io_Connect($iAddress, $iPort, $bAutoReconnect = True) _Io_Reconnect(ByRef $socket) Server and Client methods
      _Io_setEventPreScript($fCallback) _Io_setEventPostScript($fCallback) _Io_getVer() _Io_On(Const $sEventName, Const $fCallback, $socket = $__g_io_mySocket) _Io_Emit(ByRef $socket, $sEventName, $p1, $p2, ...$p16) _Io_Loop(ByRef $socket, $whoAmI = $__g_io_whoami) _Io_LoopFacade() _Io_EnableEncryption($sFileOrKey, $CryptAlgId = $CALG_AES_256) _Io_Disconnect($socket = null) _Io_setRecvPackageSize($nPackageSize = 4096) _Io_ClearEvents() _Io_TransferSocket(ByRef $from, ByRef $to) Default events
      Server events
      connection Client events
      banned Server and Client events
      disconnect View source on github
       
      Autoit-Socket-IO-1.0.0.zip (OLD!)
      Autoit-Socket-IO-1.1.0.zip (OLD)
      Autoit-Socket-IO-1.3.0.zip (OLD)
      Autoit-Socket-IO-1.4.0.zip (NEWEST 2017-08-11)
    • timmalos
      By timmalos
      Hello all.
      In case this is interesting few of you, I share my AMCP 2.1 protocol UDF in AutoIT. This protocol is used by CasparCG server, which is a Windows and Linux software used to play out professional graphics, audio and video to multiple outputs as a layerbased real-time compositor. It has been in 24/7 broadcast production since 2006. It's free and opensource.
      The UDF I share allows communication between an AutoIt based client and the CasparCG, based on following documentation : http://casparcg.com/wiki/CasparCG_2.1_AMCP_Protocol
      If you want more details on CasparCG :  official WebSite or have a look to this video
      I'm currently building a full Client based on AutoIt, with many features like drag-and-drop layers, but sadly I can't share it right now, might come later. Don't hesitate to ask questions if you have any or need a basic example.
      The only requirement for this UDF is the other Event-driven TCP UDF by Kip
       
       

      AMCP_shared.au3
      TCP.au3
    • AlecSadler
      By AlecSadler
      Hello friends, today I am sharing a script I've been working on called secure interface module.
      It's a SSL encrypted Instant Messenger, with optional 4D Holographic Encryption. (See THIS thread for more info about DARTIS)
      To sign up for an account visit https://pdglobal.net (You will need to use a valid email)
      Script is attached, to use just extract and run SIM32.exe or SIM.au3
      Warning: There might be bugs. This is an early alpha version, if you find something that needs fixed, please fix it if you can or report it here in the thread so I can look into fixing it.
      Download: https://pdglobal.net/?pid=SIM#SIM