forked from KolibriOS/kolibrios
9410fc9d15
git-svn-id: svn://kolibrios.org@7914 a494cfbc-eb01-0410-851d-a64ba20cac60
57 lines
1.1 KiB
C
57 lines
1.1 KiB
C
#ifndef INCLUDE_RESTART_PROCESS_H
|
|
#define INCLUDE_RESTART_PROCESS_H
|
|
|
|
#ifndef INCLUDE_KOLIBRI_H
|
|
#include "../lib/kolibri.h"
|
|
#endif
|
|
|
|
enum {
|
|
MULTIPLE,
|
|
SINGLE
|
|
};
|
|
|
|
#define MAX_PROCESS_COUNT 256
|
|
|
|
:bool CheckProcessExists(dword proc_name) {
|
|
int i;
|
|
proc_info Process;
|
|
for (i=0; i<MAX_PROCESS_COUNT; i++;)
|
|
{
|
|
GetProcessInfo(#Process, i);
|
|
if (strcmpi(#Process.name, proc_name)==0) return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
:void KillProcessByName(dword proc_name, byte multiple) {
|
|
int i;
|
|
proc_info Process;
|
|
for (i=0; i<MAX_PROCESS_COUNT; i++;)
|
|
{
|
|
GetProcessInfo(#Process, i);
|
|
if (strcmpi(#Process.name, proc_name)==0)
|
|
{
|
|
KillProcess(Process.ID);
|
|
if (multiple==SINGLE) break;
|
|
}
|
|
}
|
|
}
|
|
|
|
:int GetProcessesCount(dword proc_name) {
|
|
int i, count=0;
|
|
proc_info Process;
|
|
for (i=0; i<MAX_PROCESS_COUNT; i++;)
|
|
{
|
|
GetProcessInfo(#Process, i);
|
|
if (strcmpi(#Process.name, proc_name)==0) count++;
|
|
}
|
|
return count;
|
|
}
|
|
|
|
:void RestartProcessByName(dword proc_name, byte multiple) {
|
|
KillProcessByName(proc_name + strrchr(proc_name, '/'), multiple);
|
|
RunProgram(proc_name, "");
|
|
}
|
|
|
|
|
|
#endif |