diff --git a/src/main/services/bs-launcher.service.ts b/src/main/services/bs-launcher.service.ts index bdc6ab3cf..dda6d49e4 100644 --- a/src/main/services/bs-launcher.service.ts +++ b/src/main/services/bs-launcher.service.ts @@ -52,13 +52,13 @@ export class BSLauncherService{ } public isBsRunning(): boolean{ - return this.bsProcess?.connected || this.utilsService.taskRunning(BS_EXECUTABLE); + return this.bsProcess?.connected || this.utilsService.taskRunning(BS_EXECUTABLE) === true; } public async launch(launchOptions: LauchOption): Promise{ - if(launchOptions.version.oculus && !this.oculusService.oculusRunning()){ return "OCULUS_NOT_RUNNING" } - if(!launchOptions.version.oculus && !this.steamService.steamRunning()){ return "STEAM_NOT_RUNNING" } - if(this.isBsRunning()){ return "BS_ALREADY_RUNNING" } + if(launchOptions.version.oculus && this.oculusService.oculusRunning() === false){ return "OCULUS_NOT_RUNNING" } + if(!launchOptions.version.oculus && this.steamService.steamRunning() === false){ return "STEAM_NOT_RUNNING" } + if(this.isBsRunning() === true){ return "BS_ALREADY_RUNNING" } const cwd = await this.localVersionService.getVersionPath(launchOptions.version); const exePath = path.join(cwd, BS_EXECUTABLE); diff --git a/src/main/services/oculus.service.ts b/src/main/services/oculus.service.ts index 50e3cf97e..4af4266ba 100644 --- a/src/main/services/oculus.service.ts +++ b/src/main/services/oculus.service.ts @@ -20,7 +20,7 @@ export class OculusService { this.utils = UtilsService.getInstance(); } - public oculusRunning(): boolean{ + public oculusRunning(): boolean | null{ return this.utils.taskRunning("OculusClient.exe"); } diff --git a/src/main/services/steam.service.ts b/src/main/services/steam.service.ts index 0f1cf7db9..b4e570a7c 100644 --- a/src/main/services/steam.service.ts +++ b/src/main/services/steam.service.ts @@ -25,7 +25,7 @@ export class SteamService{ return SteamService.instance; } - public steamRunning(): boolean{ + public steamRunning(): boolean | null{ return this.utils.taskRunning('steam.exe'); } diff --git a/src/main/services/utils.service.ts b/src/main/services/utils.service.ts index 2bc862c21..eece52542 100644 --- a/src/main/services/utils.service.ts +++ b/src/main/services/utils.service.ts @@ -33,10 +33,16 @@ export class UtilsService{ public setMainWindows(windows: Map){ this.windows = windows; } public getMainWindows(win: AppWindow){ return this.windows.get(win); } - public taskRunning(task: string): boolean{ - const tasks = spawnSync('tasklist').stdout.toString(); - return tasks.includes(task); - } + public taskRunning(task: string): boolean | null{ + try{ + const tasks = spawnSync('tasklist').stdout; + return tasks.toString().includes(task); + } + catch(error){ + log.error(error); + return null; + } + } public ipcSend(channel: string, response: IpcResponse): void{ try {