Saya cukup baru di C#, saya pernah bermain-main dengannya sebelumnya, tetapi saya benar-benar ingin mengetahuinya sekarang. Saya ingin membuat aplikasi konsol luar untuk sebuah game, game tersebut adalah port yang buruk dan membutuhkan banyak program untuk dibuka di latar belakang agar lebih dapat dimainkan. Jadi saya memutuskan untuk membuat program yang menggantikan launcher.exe dengan yang meluncurkan semua program saat game dimulai dan menutupnya saat game ditutup.
Gamenya adalah BioShock 2 tepatnya, tapi kemungkinan besar saya akan membuat program ini sehingga saya bisa menggunakannya dengan game lain yang juga bisa menggunakan program ini. Inilah masalah saya, ketika saya memulai debug itu akan membuka salah satu program untuk membantu permainan (FlawlessWidescreen) tetapi permainan itu sendiri tidak akan terbuka. Saya sudah mencoba menjalankan BioShock2 tetapi itu menunjukkan itu berjalan sebentar dan kemudian menutup, tidak ada kesalahan jadi saya tidak tahu persis apa yang saya lakukan salah.
Berikut kode saya.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
using System.Security;
namespace Bioshock2_Advanced_Launcher
{
public class SecurityException : SystemException
{
static void Main(string[] args)
{
Process.Start("F:\\Steam Library\\steamapps\\common\\BioShock 2\\SP\\Builds\\Binaries\\FlawlessWidescreen.lnk");
Process.Start("F:\\Steam Library\\steamapps\\common\\BioShock 2\\SP\\Builds\\Binaries\\Bioshock2.exe");
}
}
}
FlawlessWidescreen adalah jalan pintas, saya harus memberikan izin yang lebih tinggi sehingga saya tidak perlu menjalankan aplikasi sebagai admin sepanjang waktu.
Saya juga ingin tahu apakah ada di antara Anda yang tahu cara memeriksa apakah BioShock2 ditutup sehingga program lain juga akan ditutup. Ada ide?
Terima kasih
Sunting: Saya juga ingin menambahkan bahwa game lain yang saya coba luncurkan dengan baik.
1 menjawab
Memperbaikinya dengan menggunakan WorkingDirectory.
ProcessStartInfo bioshock2Info = new ProcessStartInfo();
bioshock2Info.FileName = (@"F:\Steam Library\steamapps\common\BioShock 2\SP\Builds\Binaries\Bioshock2.exe");
bioshock2Info.WorkingDirectory = Path.GetDirectoryName(@"F:\Steam Library\steamapps\common\BioShock 2\SP\Builds\Binaries\Bioshock2.exe");
Process bioshock2 = Process.Start(bioshock2Info);
ProcessStartInfo
tempat Anda menyetelEnableRaisingEvents = true
. Kemudian simpan proses yang dimulai dalam sebuah variabel dan kaitkan eventExited
. Pertahankan aplikasi Anda tetap hidup sampai saat itu. (msdn.microsoft. com/en-us/library/…)