Rev 7914 | 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 | |||
8013 | leency | 56 | :void RestartAllProcess() { |
57 | int i; |
||
58 | proc_info Process, Self; |
||
59 | GetProcessInfo(#Self, -1); |
||
60 | for (i=0; i |
||
61 | { |
||
62 | GetProcessInfo(#Process, i); |
||
63 | if (Process.name) |
||
64 | && (!streq(#Process.name, "OS")) |
||
65 | && (Process.ID != Self.ID) |
||
66 | KillProcess(Process.ID); |
||
67 | } |
||
68 | RunProgram("/sys/launcher", NULL); |
||
69 | } |
||
5622 | leency | 70 | |
5598 | pavelyakov | 71 | #endif |