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 |