kolibrios-fun/programs/cmm/lib/patterns/restart_process.h
Kirill Lipatov (Leency) 9410fc9d15 WebView 2.5: open new urls in the process that already exists
git-svn-id: svn://kolibrios.org@7914 a494cfbc-eb01-0410-851d-a64ba20cac60
2020-05-11 23:02:41 +00:00

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