Advertisement
class101

Multiple Chat Auto Joiner for Steam http://goo.gl/fJd12

Jan 21st, 2014
462
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ''' Multiple Chat Auto Joiner for Steam
  2. ''' v1.0
  3. ''' http://goo.gl/fJd12
  4. ''' by class101
  5.  
  6. ''' Configurable settings
  7. GLOBALTIMEOUT = 150 ' In seconds, the maximum time the script executes
  8. THDELTA = 3000 ' In milliseconds, the time the script sleeps waiting for threads > 30
  9. JOINDELTA = 1500 ' In milliseconds, the time the script waits for Steam cpu usage < 5%
  10. ''' DO NOT TOUCH BELOW UNTIL THE NEXT CONFIGURABLE SECTION !
  11. tout = 0
  12. thCount = 0
  13. sl = 100
  14. last = 0
  15. num = 0
  16. onDemand = False
  17. Set Shell = CreateObject("WScript.Shell")
  18. On Error Resume Next
  19. Err.Clear
  20. Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
  21. If Err.Number <> 0 Then
  22.     MsgBox "Make sure the Windows Management Instrumentation service is set to start automatically" & VbCrLf & VbCrLf & "(Hit Windows + R => Run services.msc => set to Automatic a service called Windows Management Instrumentation, shortname is Winmgmt)", vbOKOnly, "SteamJoinChats.vbs - http://goo.gl/fJd12"
  23.     WScript.Quit 0
  24. End If
  25. On Error Goto 0
  26. If GetProcess("Steam.exe") Is Nothing Then ' If Steam is not loaded start it
  27.    On Error Resume Next
  28.     Err.Clear
  29.     Shell.Run "steam://" ' Simplest way to start Steam on Windows
  30.    If Err.Number <> 0 Then
  31.         MsgBox "Steam is not installed, get Steam at http://store.steampowered.com", vbOKOnly, "SteamJoinChats.vbs - http://goo.gl/fJd12"
  32.         WScript.Quit 0
  33.     End If
  34.     On Error Goto 0
  35. Else
  36.     onDemand = True
  37. End If
  38. If Not onDemand Then
  39.     Do
  40.         WScript.Sleep sl
  41.         On Error Resume Next
  42.         Err.Clear
  43.         thCount = GetProcess("Steam.exe").ThreadCount
  44.         If Err.Number <> 0 Then
  45.             WScript.Quit 1  
  46.         End If
  47.         tout = tout + sl
  48.         If tout > GLOBALTIMEOUT * 1000 Then
  49.             MsgBox "The script for auto joining chat channels has timeout after waiting " & GLOBALTIMEOUT & "s." & VbCrLf & VbCrLf & "(You can change the value GLOBALTIMEOUT actually set to " & GLOBALTIMEOUT & ")", vbOKOnly, "SteamJoinChats.vbs - http://goo.gl/fJd12"
  50.             Exit Do
  51.         End If
  52.         If thCount - last <= 0 And thCount > 30 Then
  53.             If num > (THDELTA / sl) Then
  54.                 Exit Do
  55.             End If
  56.             num = num + 1
  57.         Else
  58.             num = 0
  59.         End If
  60.         last = thCount
  61.     Loop While True ' Steam seen to be fully loaded with approximatively 30 threads or 510 handles (may change)
  62.    If tout > GLOBALTIMEOUT * 1000 Then
  63.         WScript.Quit 1
  64.     End If
  65. End If
  66. On Error Resume Next
  67. Set PerfProcess = WMI.Get("Win32_PerfFormattedData_PerfProc_Process.Name='Steam'")
  68. Err.Clear
  69. 'MsgBox "Script executed"
  70. ''' Configurable chats, they are those used by class101 for demonstration purpose, feel free to edit to your needs
  71.  
  72. 'WaitSteam()
  73. 'Shell.Run "steam://friends/joinchat/103582791434377659" ''' testgroup-01
  74. WaitSteam()
  75. Shell.Run "steam://friends/joinchat/103582791434377662" ''' testgroup-02
  76. WaitSteam()
  77. Shell.Run "steam://friends/joinchat/103582791434377665" ''' testgroup-03
  78. WaitSteam()
  79. Shell.Run "steam://friends/joinchat/103582791434377668" ''' testgroup-04
  80. WaitSteam()
  81. Shell.Run "steam://friends/joinchat/103582791434377669" ''' testgroup-05
  82. WaitSteam()
  83. Shell.Run "steam://friends/joinchat/103582791434377672" ''' testgroup-06
  84. WaitSteam()
  85. Shell.Run "steam://friends/joinchat/103582791434377673" ''' testgroup-07
  86. WaitSteam()
  87. Shell.Run "steam://friends/joinchat/103582791434377675" ''' testgroup-08
  88. WaitSteam()
  89. Shell.Run "steam://friends/joinchat/103582791434377676" ''' testgroup-09
  90. WaitSteam()
  91. Shell.Run "steam://friends/joinchat/103582791434377679" ''' testgroup-10
  92.  
  93. 'WaitSteam()
  94. 'Shell.Run "steam://friends/joinchat/103582791429848363" ''' SteamPowered Users (SPUFU)
  95. 'WaitSteam()
  96. 'Shell.Run "steam://friends/joinchat/103582791434752700" ''' Banished
  97. 'WaitSteam()
  98. 'Shell.Run "steam://friends/joinchat/103582791433982613" ''' King Arthur's Gold
  99. 'WaitSteam()
  100. 'Shell.Run "steam://friends/joinchat/103582791433982354" ''' Project Zomboid
  101. 'WaitSteam()
  102. 'Shell.Run "steam://friends/joinchat/103582791433980119" ''' PAYDAY 2
  103. 'WaitSteam()
  104. 'Shell.Run "steam://friends/joinchat/103582791433588849" ''' FTL: Faster Than Light
  105. 'WaitSteam()
  106. 'Shell.Run "steam://friends/joinchat/103582791434601223" ''' Godus
  107. 'WaitSteam()
  108. 'Shell.Run "steam://friends/joinchat/103582791433992766" ''' Starbound official
  109. 'WaitSteam()
  110. 'Shell.Run "steam://friends/joinchat/103582791433184424" ''' Skyrim
  111. 'WaitSteam()
  112. 'Shell.Run "steam://friends/joinchat/103582791433984807" ''' Kerbal
  113. 'WaitSteam()
  114. 'Shell.Run "steam://friends/joinchat/103582791433471177" ''' Terraria
  115. 'WaitSteam()
  116. 'Shell.Run "steam://friends/joinchat/103582791430075519" ''' TF2
  117. 'WaitSteam()
  118. 'Shell.Run "steam://friends/joinchat/103582791433224455" ''' Dota 2
  119. 'WaitSteam()
  120. 'Shell.Run "steam://friends/joinchat/103582791434277245" ''' Steam Trading Card Group
  121. 'WaitSteam()
  122. 'Shell.Run "steam://friends/joinchat/103582791434672565" ''' Steam Universe
  123.  
  124.  
  125. 'WaitSteam()
  126. 'Shell.Run "steam://friends/joinchat/103582791432912141" ''' Starbound public
  127. 'WaitSteam()
  128. 'Shell.Run "steam://friends/joinchat/103582791434508796" ''' Papers Please
  129. 'WaitSteam()
  130. 'Shell.Run "steam://friends/joinchat/103582791434047023" ''' Planetary Annihilation
  131. 'WaitSteam()
  132. 'Shell.Run "steam://friends/joinchat/103582791434356213" ''' Theme Hospital CorsixTH
  133. 'WaitSteam()
  134. 'Shell.Run "steam://friends/joinchat/103582791434621180" ''' Procedurally generated games (Roguelike)
  135. 'WaitSteam()
  136. 'Shell.Run "steam://friends/joinchat/103582791433992229" ''' Xenonauts
  137. 'WaitSteam()
  138. 'Shell.Run "steam://friends/joinchat/103582791434587575" ''' Contraption Maker
  139. 'WaitSteam()
  140. 'Shell.Run "steam://friends/joinchat/103582791434378282" ''' The Forest
  141. 'WaitSteam()
  142. 'Shell.Run "steam://friends/joinchat/103582791434255477" ''' Marvel Heroes
  143. 'WaitSteam()
  144. 'Shell.Run "steam://friends/joinchat/103582791433474335" ''' SimCity 4 Deluxe
  145. 'WaitSteam()
  146. 'Shell.Run "steam://friends/joinchat/103582791433474303" ''' RollerCoaster Tycoon 3: Platinum
  147. 'WaitSteam()
  148. 'Shell.Run "steam://friends/joinchat/103582791433918461" ''' Steam Client Beta
  149. 'WaitSteam()
  150. 'Shell.Run "steam://friends/joinchat/103582791434474114" ''' PAYDAY 2 Beta
  151. 'WaitSteam()
  152. 'Shell.Run "steam://friends/joinchat/103582791433955808" ''' Don't Starve
  153. 'WaitSteam()
  154. 'Shell.Run "steam://friends/joinchat/103582791433588849" ''' FTL: Faster Than Light
  155. 'WaitSteam()
  156. 'Shell.Run "steam://friends/joinchat/103582791433476492" ''' Steam Greenlight
  157. 'WaitSteam()
  158. 'Shell.Run "steam://friends/joinchat/103582791434400882" ''' Edge of Space
  159.  
  160. If Err.Number <> 0 Then
  161.     MsgBox "Steam is not installed, get Steam at http://store.steampowered.com", vbOKOnly, "SteamJoinChats.vbs - http://goo.gl/fJd12"
  162. End If
  163. WScript.Quit 0
  164.  
  165. Function GetProcess(name)
  166.     Set GetProcess = Nothing
  167.     Set procList = WMI.ExecQuery ("Select * from Win32_Process Where Name = '" & name & "'")
  168.     For Each process In procList
  169.         Set GetProcess = process
  170.     Next  
  171. End Function
  172.  
  173. Sub WaitSteam()
  174.     last = 0
  175.     tout = 0
  176.     Do
  177.         WScript.Sleep sl
  178.         PerfProcess.Refresh_
  179.         tout = tout + sl
  180.         If PerfProcess.PercentProcessorTime <> "" Then
  181.             If PerfProcess.PercentProcessorTime < 5 Then
  182.                 If last >= (JOINDELTA / sl) Then
  183.                     Exit Sub
  184.                 End If
  185.                 last = last + 1
  186.             Else
  187.                 last = 0
  188.             End If
  189.         End If
  190.         If tout > GLOBALTIMEOUT * 1000 Then
  191.             WScript.Quit 1
  192.         End If
  193.     Loop While True
  194. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement