jonq Mesaj tarihi: Ocak 16, 2012 Mesaj tarihi: Ocak 16, 2012 Steam kullananlar bildikleri gibi SWTOR'u steam e ekleseniz dahi launcher kapandıktan sonra çalışmıyor. Steam kullananlar için steam forumlarında dolaylı bir yol buldum. Kendim uyguladım. Gayette güzel çalışıyor. -Masaustune bir "Star Wars - The Old Republic.txt" adında bir dosya yaratip aşağıdaki kodu aynen kopyalayıp ekliyoruz. Kopyalanacak kod using System; using System.Diagnostics; using System.IO; using System.IO.Pipes; using System.Management; using System.Threading; using System.Windows.Forms; namespace steamswtor { class Program { static bool IsPreVista() { //Vista or higher check if (System.Environment.OSVersion.Version.Major < 6) { MessageBox.Show("Windows Vista or higher is required.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return true; } return false; } static void Main(string[] args) { // If Operating System is before Vista, then exit if (IsPreVista()) return; if (args.Length == 0) { string pipeName = "swtorsteam"; // run ourself as admin try { Process admin = new Process(); admin.StartInfo.FileName = System.Reflection.Assembly.GetEntryAssembly().Location; admin.StartInfo.Arguments = pipeName; admin.StartInfo.Verb = "runas"; admin.Start(); } catch(Exception e) { string errmsg = e.Message + "n"; errmsg += "Failed to escalate. Program will now exit."; MessageBox.Show(errmsg, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // run the swtor launcher try { Process launcher = new Process(); launcher.StartInfo.FileName = Directory.GetCurrentDirectory() + "launcher.exe"; launcher.Start(); } catch(Exception e) { string errmsg = e.Message + "n"; errmsg += "Launcher failed to begin. Is this exe in SWTOR's home directory? Program will now exit."; MessageBox.Show(errmsg, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // loop waiting for our temp file to be filled with swtor's commandline arguments Console.WriteLine("Waiting for our other program to finish..."); // grab data from the commandline arguments string exe, arguments, workingdirectory; try { NamedPipeServerStream server = new NamedPipeServerStream(pipeName); server.WaitForConnection(); StreamReader sr = new StreamReader(server); string cmdline = sr.ReadLine(); // grab data from the commandline arguments exe = cmdline.Substring(1, cmdline.IndexOf('"', 1) - 1); arguments = cmdline.Substring(cmdline.IndexOf("" ") + 2); workingdirectory = cmdline.Substring(1, cmdline.IndexOf("swtor.exe") - 1); } catch(Exception e) { string errmsg = e.Message + "n"; errmsg += "Failed to read command line arguments from other program. Program will now exit."; MessageBox.Show(errmsg, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } try { // start swtor's client Process swtor = new Process(); swtor.StartInfo.FileName = exe; swtor.StartInfo.Arguments = arguments; swtor.StartInfo.WorkingDirectory = workingdirectory; swtor.Start(); } catch(Exception e) { string errmsg = e.Message + "n"; errmsg += "swtor.exe failed to begin. Is this exe in SWTOR's home directory? Program will now exit."; MessageBox.Show(errmsg, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // exit the program return; } else { // Connect to pipe server string pipeName = args[0]; NamedPipeClientStream client = new NamedPipeClientStream(pipeName); try { client.Connect(10000); } catch (Exception e) { string errmsg = e.Message + "n"; errmsg += "Failed to connect to other program. Program will now exit."; MessageBox.Show(errmsg, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //Create the query ObjectQuery query = new ObjectQuery("Select * from Win32_Process Where Name ="swtor.exe""); // check once a second for swtor.exe that the launcher starts when the user hit's play in the launcher Console.WriteLine("Waiting for launcher to start swtor..."); while (true) { ManagementObjectSearcher searcher = new ManagementObjectSearcher(query); ManagementObjectCollection processList = searcher.Get(); foreach (ManagementObject obj in processList) { string cmdline = obj.GetPropertyValue("CommandLine").ToString(); if (cmdline.Contains("username")) { // kill the process obj.InvokeMethod("Terminate", null); // write command line to the pipe try { StreamWriter sw = new StreamWriter(client); sw.AutoFlush = true; sw.WriteLine(cmdline); } catch(Exception e) { string errmsg = e.Message + "n"; errmsg += "Failed to write commandline arguments to pipe. Program will now exit."; MessageBox.Show(errmsg, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // exit the program return; } } Thread.Sleep(1000); } } } } } -Command penceresini açıyoruz ve aşağıdaki komutu çalıştırıyoruz. ( Başlat kısmına "cmd" yazmanız yeterli ) uygulanacak komut %windir%Microsoft.NetFrameworkv3.5csc /platform:x86 "/out:%USERPROFILE%DesktopStar Wars - The Old Republic.exe" "%USERPROFILE%DesktopStar Wars - The Old Republic.txt" -Masaüstüne "Star Wars - The Old Republic.exe" adında bir dosya olusturacaktır. Bu dosyayı alıp oyun klasörümüzün içine atıyoruz. -Steam'den "Add Non-Steam Game" sekmesinden bu exeyi gösterip ekliyoruz. ( isteyen iconda değişir ) Oyunu başlattığınız zaman içlerinde "Waiting for our other program to finish..." ve "Waiting for launcher to start swtor...". yazan 2 adet msdos penceresi açılacaktır. Bu pencereleri kapatmadan bekleyiniz. Açılan Swtor launcher'ına account unuzu girdikten sonra play tuşuna bastığınız zaman bu pencereler otomatik kapanacaktır. Kaynak
Seru Mesaj tarihi: Ocak 17, 2012 Mesaj tarihi: Ocak 17, 2012 Oyunu steam üzerinden çalıştırmanın ne manası var ki, bu kadar zahmete gireceğim.
Dark_Soul Mesaj tarihi: Ocak 17, 2012 Mesaj tarihi: Ocak 17, 2012 Steamdeki panpalarinin oyunda oldugunu gormeleri icin.
jonq Mesaj tarihi: Ocak 17, 2012 Konuyu açan Mesaj tarihi: Ocak 17, 2012 yada Steam'deki panpalarınla iletişimi koparmamak için.
Sin Mesaj tarihi: Ocak 17, 2012 Mesaj tarihi: Ocak 17, 2012 valla steam overlay e grek yok oynarken full screen windowed yapin oyunu win tusuna basin gayet basit bi sekilde chatlesin oynarken
DA2019 Mesaj tarihi: Ocak 17, 2012 Mesaj tarihi: Ocak 17, 2012 Daha kolay çözüm. Steamdeki panpaların da başlasın oyuna. Ingame chatleşin. :)
Öne çıkan mesajlar