Jump to content

Steam Overlay - Working on win7


renegadelink

Recommended Posts

  • Replies 169
  • Created
  • Last Reply

Top Posters In This Topic

Ok, I tried it.

 

Pops up the script windows.

 

Then pops a WoW script window (Windows 32 on Windows 64)

 

Run Launcher

 

Starts game.

 

Overlay doesn't work. Doesn't show as active in the friends window. Win 7 Ultimate 64 SP1

Edited by Lonkley
Link to comment
Share on other sites

Ok, I tried it.

 

Pops up the script windows.

 

Then pops a WoW script window (Windows 32 on Windows 64)

 

Run Launcher

 

Starts game.

 

Overlay doesn't work. Doesn't show as active in the friends window. Win 7 Ultimate 64 SP1

 

Check that preferences are correct, My first time running it, it reset the preferences for some reason.

Link to comment
Share on other sites

RenegadeLink, thank you so much for this thread! Following your instructions and forcing myself to be patient while the 2nd window said "Waiting for Launcher" and appeared to do nothing, and it does work! :)

 

Kimmie, running Vista 64 and pleased by your fix.

Link to comment
Share on other sites

I have copied the code exactly and everything works fine but I cannot get the overlay to work as well.

 

I have the game installed on a separate HDD but I don't think that matters. Here is what I have in target:

 

"C:\Windows\System32\cscript.exe" "D:\Star Wars-The Old Republic\steamswtor.vbs"

 

Here is what I have in "Start In":

 

"C:\Windows\System32"

 

Any help would be appreciated.

 

http://img.techpowerup.org/111228/Capture095260.jpg

 

** I also am using Windows 7 x64 if that helps. No OS is installed on disk D.

Edited by Misandrist
Link to comment
Share on other sites

Check that preferences are correct, My first time running it, it reset the preferences for some reason.

 

Yeah, i find that if you don't exit steam, it sometimes doesn't update programs you add or marked favorites.

 

All my paths are correct.

 

For the hell of it, I tried running steam with admin privilege. Didn't help. I'm pretty sure it's some type of permissions issue trying to hook swtor.exe, much like ventrilo and push to talk.

Link to comment
Share on other sites

Sadly didn't work for me.

 

Had a slightly odd occurance where it would start up a launcher.exe that was on a different HD for a different game (Need for Speed:Hot Pursuit) until i went into it's directory and renamed that exe. After that it was launching the SWTOR launcher, but after starting the game the overlay wasn't working, and there was no indication on steam that i was still playing.

Link to comment
Share on other sites

I have gotten the steam overlay to work on my computer. I don't have another computer to test it on, so this first attempt I am giving out may or may not work.

 

This also runs the swtor client in non-admin mode which is a nice security perk.

 

Here are the steps:

 

Step 1 (script):

copy paste this script into a plain text editor (ex. notepad) and save it as "steamswtor.vbs" in the same directory as your swtor launcher (ex. "C:\Program Files (x86)\Electronic Arts\BioWare\Star Wars - The Old Republic"):

 

' if nothing was passed in, we are starting from scratch, so start the launcher
If WScript.Arguments.length = 0 Then
swtorHome = WScript.ScriptFullName
swtorHome = Left(swtorHome, InStr(swtorHome, WScript.ScriptName)-1)

'run the launcher
Set objShell = WScript.CreateObject("Shell.Application")
objShell.ShellExecute "launcher.exe", "", swtorHome

' create the file that the elevated script will copy swtor's path and commandline to
set fso = CreateObject("Scripting.FileSystemObject")
set tempfolder = fso.GetSpecialFolder(2)
tempname = tempfolder & "\" & "swtorsteam.tmp"
set tempfile = fso.CreateTextFile(tempname)
tempfile.close()

'run this script but signal that it needs to elevate by giving it the tempfile name as an argument
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "cscript.exe", Chr(34) & WScript.ScriptFullName & Chr(34) & " " & tempname, "", "runas", 1

WScript.Echo "Waiting for other script to finish..."
' check every second if the temporary file has been updated with the commandline info
Do While True
	'check the filesize of the tempfile
	set tempfile = fso.GetFile(tempname)
	If tempfile.Size > 0 Then Exit Do
	WScript.Sleep 1000
Loop

swtorExecutablePath = swtorHome + "swtor\retailclient"
set tempfile = fso.OpenTextFile(tempname)
swtorCommandLine = tempfile.ReadLine
tempfile.close()

Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "swtor.exe", swtorCommandLine, swtorExecutablePath

fso.DeleteFile tempname
WScript.Quit
Else
' we are elevated now	
WScript.Echo "Waiting for launcher to start swtor..."

'Get Windows Manager object 
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")

' check every second for swtor.exe that was launched by swtor's launcher
While True

	'Get info on processes named "swtor.exe"
	Set swtorInstanceList = objWMIService.ExecQuery _ 
	("Select * from Win32_Process Where Name =""swtor.exe""")

	for Each swtorInstance in swtorInstanceList
		cmdline = swtorInstance.CommandLine

		'look for something only our swtor will have in it's commandline arguments
		If InStr(cmdline, "username") > 0 Then
			'we found the swtor.exe we care about
			swtorInstance.Terminate()

			'remove the exe path and name from the cmdline
			position = InStr(1, cmdline, """ ") + 1
			cleanCmdLine = Right(cmdline, Len(cmdline) - position)

			tempname = WScript.Arguments(0)
			set fso = CreateObject("Scripting.FileSystemObject")
			set tempfile = fso.OpenTextFile(tempname, 2)
			tempfile.WriteLine(cleanCmdLine)
			tempfile.close()

			WScript.Quit
		End If
	Next	

	WScript.Sleep 1000
Wend
End If

 

 

Step 2 (steam):

 

- Open up steam and go to the menu option "Games" and click "Add a non-steam game to my library"

- Add "Star Wars the Old Republic" or browse to swtor's "launcher.exe" and add that.

- Now right-click the newly added game in steam's library, and click properties.

 

- Change the properties to match these:

 

> (Optional) Choose Icon: Browse to swtor's "launcher.exe" and select it

> (Optional) Name: Star Wars - The Old Republic

> (Required) Target: "C:\Windows\System32\cscript.exe" "PUT FULLPATH TO steamswtor.vbs"

> here's a full example (the quotes are important):

Target: "C:\Windows\System32\cscript.exe" "C:\Program Files (x86)\Electronic Arts\BioWare\Star Wars - The Old Republic\steamswtor.vbs"

> (Required) Start In(the quotes are important): "C:\Windows\System32"

 

That's it.

 

Using vbscript has made doing this simple task annoying but I didn't want to write this so people would have to compile source code, or for me to give out an exe for people to run.

 

Hopefully this works for people. If not, I'll try something else. I know it is possible to get steam overlay working with swtor though which is good.

 

Enjoy.

 

This worked! THANK YOU VERY MUCH OP

Link to comment
Share on other sites

Thank you for a good job.

 

However I can't run this thing properly. I did everything exactly as you told. I even restarted a steam client itself. Lunching an swtor short cut lunches 2 windows and luncher. After I press a play button all 3 are vanishes and steam doesn't register me playing anything and overlay doesn't work either.

 

Here is a screenshot

http://img703.imageshack.us/img703/6527/steamswtor.jpg

 

I use windows 7 64bit Ultimate edition. All windows updates are installed. I logged into Windows as a normal user. First script window asks me for admin password, which I enter. Swtor luncher also asks for an admin password. Thus I have to enter a password twice.

 

Any suggestions?

Link to comment
Share on other sites

×
×
  • Create New...