Subversion Repositories Kolibri OS

Rev

Rev 7654 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
5598 pavelyakov 1
#ifndef INCLUDE_RESTART_PROCESS_H
2
#define INCLUDE_RESTART_PROCESS_H
3
 
4
#ifndef INCLUDE_KOLIBRI_H
5
#include "../lib/kolibri.h"
6
#endif
7
 
5548 leency 8
enum {
9
	MULTIPLE,
10
	SINGLE
11
};
12
 
6708 leency 13
#define MAX_PROCESS_COUNT 256
14
 
7433 leency 15
:bool CheckProcessExists(dword proc_name) {
5548 leency 16
	int i;
17
	proc_info Process;
6708 leency 18
	for (i=0; i
5548 leency 19
	{
20
		GetProcessInfo(#Process, i);
5622 leency 21
		if (strcmpi(#Process.name, proc_name)==0) return 1;
22
	}
23
	return 0;
24
}
25
 
26
:void KillProcessByName(dword proc_name, byte multiple) {
27
	int i;
28
	proc_info Process;
6708 leency 29
	for (i=0; i
5622 leency 30
	{
31
		GetProcessInfo(#Process, i);
5548 leency 32
		if (strcmpi(#Process.name, proc_name)==0)
33
		{
34
			KillProcess(Process.ID);
35
			if (multiple==SINGLE) break;
36
		}
37
	}
5622 leency 38
}
39
 
7914 leency 40
:int GetProcessesCount(dword proc_name) {
41
	int i, count=0;
42
	proc_info Process;
43
	for (i=0; i
44
	{
45
		GetProcessInfo(#Process, i);
46
		if (strcmpi(#Process.name, proc_name)==0) count++;
47
	}
48
	return count;
49
}
50
 
5622 leency 51
:void RestartProcessByName(dword proc_name, byte multiple) {
7654 leency 52
	KillProcessByName(proc_name + strrchr(proc_name, '/'), multiple);
5548 leency 53
	RunProgram(proc_name, "");
5598 pavelyakov 54
}
55
 
5622 leency 56
 
5598 pavelyakov 57
#endif