mirror of
https://github.com/hbsw-darkness/ShiningLoreLauncher.git
synced 2025-04-02 21:38:32 +08:00
73 lines
2.2 KiB
C#
73 lines
2.2 KiB
C#
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("런처가 종료되었습니다. 모든 샤이닝로어를 종료합니다.");
|
|
}
|
|
}
|
|
}
|
|
}
|