ShiningLoreLauncher/ProcessControl.cs

73 lines
2.2 KiB
C#
Raw Permalink Normal View History

2019-06-17 18:45:20 +08:00
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Windows.Forms;
/*
1 1 1 2
.
5
.
*/
namespace ShiningLoreLauncher
{
class ProcessControl
{
int count = 0;
//모든 프로세스 리스트 검색
public void ProcessCheckM(int numCheck)
{
Process[] pl = Process.GetProcesses();
if (numCheck == 0)
{
foreach (Process p in pl)
{
WriteProcessInfo(p);
}
}
else if(numCheck == 1)
{
foreach (Process p in pl)
{
AllClose(p);
}
}
}
//프로세스 리스트중에서 샤이닝로어 클라이언트 검출
private void WriteProcessInfo(Process processInfo)
{
string processname = processInfo.ProcessName.ToString();
if (processname == "SlOnline")
{
count++;
}
//만약에 샤로가 2개 넘어서 켜질 경우
if (count > 2 && processname == "SlOnline")
{
processInfo.Kill();
MessageBox.Show("클라이언트가 세개 이상입니다. 샤이닝로어를 강제 종료합니다.");
}
}
public void AllClose(Process processInfo)
{
string processname = processInfo.ProcessName.ToString();
if (processname == "SlOnline")
{
processInfo.Kill();
MessageBox.Show("런처가 종료되었습니다. 모든 샤이닝로어를 종료합니다.");
}
}
}
}