Subversion Repositories Kolibri OS

Rev

Rev 7654 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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