Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ''' Multiple Chat Auto Joiner for Steam
- ''' v1.0
- ''' http://goo.gl/fJd12
- ''' by class101
- ''' Configurable settings
- GLOBALTIMEOUT = 150 ' In seconds, the maximum time the script executes
- THDELTA = 3000 ' In milliseconds, the time the script sleeps waiting for threads > 30
- JOINDELTA = 1500 ' In milliseconds, the time the script waits for Steam cpu usage < 5%
- ''' DO NOT TOUCH BELOW UNTIL THE NEXT CONFIGURABLE SECTION !
- tout = 0
- thCount = 0
- sl = 100
- last = 0
- num = 0
- onDemand = False
- Set Shell = CreateObject("WScript.Shell")
- On Error Resume Next
- Err.Clear
- Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
- If Err.Number <> 0 Then
- 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"
- WScript.Quit 0
- End If
- On Error Goto 0
- If GetProcess("Steam.exe") Is Nothing Then ' If Steam is not loaded start it
- On Error Resume Next
- Err.Clear
- Shell.Run "steam://" ' Simplest way to start Steam on Windows
- If Err.Number <> 0 Then
- MsgBox "Steam is not installed, get Steam at http://store.steampowered.com", vbOKOnly, "SteamJoinChats.vbs - http://goo.gl/fJd12"
- WScript.Quit 0
- End If
- On Error Goto 0
- Else
- onDemand = True
- End If
- If Not onDemand Then
- Do
- WScript.Sleep sl
- On Error Resume Next
- Err.Clear
- thCount = GetProcess("Steam.exe").ThreadCount
- If Err.Number <> 0 Then
- WScript.Quit 1
- End If
- tout = tout + sl
- If tout > GLOBALTIMEOUT * 1000 Then
- 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"
- Exit Do
- End If
- If thCount - last <= 0 And thCount > 30 Then
- If num > (THDELTA / sl) Then
- Exit Do
- End If
- num = num + 1
- Else
- num = 0
- End If
- last = thCount
- Loop While True ' Steam seen to be fully loaded with approximatively 30 threads or 510 handles (may change)
- If tout > GLOBALTIMEOUT * 1000 Then
- WScript.Quit 1
- End If
- End If
- On Error Resume Next
- Set PerfProcess = WMI.Get("Win32_PerfFormattedData_PerfProc_Process.Name='Steam'")
- Err.Clear
- 'MsgBox "Script executed"
- ''' Configurable chats, they are those used by class101 for demonstration purpose, feel free to edit to your needs
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791434377659" ''' testgroup-01
- WaitSteam()
- Shell.Run "steam://friends/joinchat/103582791434377662" ''' testgroup-02
- WaitSteam()
- Shell.Run "steam://friends/joinchat/103582791434377665" ''' testgroup-03
- WaitSteam()
- Shell.Run "steam://friends/joinchat/103582791434377668" ''' testgroup-04
- WaitSteam()
- Shell.Run "steam://friends/joinchat/103582791434377669" ''' testgroup-05
- WaitSteam()
- Shell.Run "steam://friends/joinchat/103582791434377672" ''' testgroup-06
- WaitSteam()
- Shell.Run "steam://friends/joinchat/103582791434377673" ''' testgroup-07
- WaitSteam()
- Shell.Run "steam://friends/joinchat/103582791434377675" ''' testgroup-08
- WaitSteam()
- Shell.Run "steam://friends/joinchat/103582791434377676" ''' testgroup-09
- WaitSteam()
- Shell.Run "steam://friends/joinchat/103582791434377679" ''' testgroup-10
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791429848363" ''' SteamPowered Users (SPUFU)
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791434752700" ''' Banished
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791433982613" ''' King Arthur's Gold
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791433982354" ''' Project Zomboid
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791433980119" ''' PAYDAY 2
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791433588849" ''' FTL: Faster Than Light
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791434601223" ''' Godus
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791433992766" ''' Starbound official
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791433184424" ''' Skyrim
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791433984807" ''' Kerbal
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791433471177" ''' Terraria
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791430075519" ''' TF2
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791433224455" ''' Dota 2
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791434277245" ''' Steam Trading Card Group
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791434672565" ''' Steam Universe
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791432912141" ''' Starbound public
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791434508796" ''' Papers Please
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791434047023" ''' Planetary Annihilation
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791434356213" ''' Theme Hospital CorsixTH
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791434621180" ''' Procedurally generated games (Roguelike)
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791433992229" ''' Xenonauts
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791434587575" ''' Contraption Maker
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791434378282" ''' The Forest
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791434255477" ''' Marvel Heroes
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791433474335" ''' SimCity 4 Deluxe
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791433474303" ''' RollerCoaster Tycoon 3: Platinum
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791433918461" ''' Steam Client Beta
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791434474114" ''' PAYDAY 2 Beta
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791433955808" ''' Don't Starve
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791433588849" ''' FTL: Faster Than Light
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791433476492" ''' Steam Greenlight
- 'WaitSteam()
- 'Shell.Run "steam://friends/joinchat/103582791434400882" ''' Edge of Space
- If Err.Number <> 0 Then
- MsgBox "Steam is not installed, get Steam at http://store.steampowered.com", vbOKOnly, "SteamJoinChats.vbs - http://goo.gl/fJd12"
- End If
- WScript.Quit 0
- Function GetProcess(name)
- Set GetProcess = Nothing
- Set procList = WMI.ExecQuery ("Select * from Win32_Process Where Name = '" & name & "'")
- For Each process In procList
- Set GetProcess = process
- Next
- End Function
- Sub WaitSteam()
- last = 0
- tout = 0
- Do
- WScript.Sleep sl
- PerfProcess.Refresh_
- tout = tout + sl
- If PerfProcess.PercentProcessorTime <> "" Then
- If PerfProcess.PercentProcessorTime < 5 Then
- If last >= (JOINDELTA / sl) Then
- Exit Sub
- End If
- last = last + 1
- Else
- last = 0
- End If
- End If
- If tout > GLOBALTIMEOUT * 1000 Then
- WScript.Quit 1
- End If
- Loop While True
- End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement