Subversion Repositories Kolibri OS

Rev

Rev 7914 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  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.  
  8. enum {
  9.         MULTIPLE,
  10.         SINGLE
  11. };
  12.  
  13. #define MAX_PROCESS_COUNT 256
  14.  
  15. :bool CheckProcessExists(dword proc_name) {
  16.         int i;
  17.         proc_info Process;
  18.         for (i=0; i<MAX_PROCESS_COUNT; i++;)
  19.         {
  20.                 GetProcessInfo(#Process, i);
  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;
  29.         for (i=0; i<MAX_PROCESS_COUNT; i++;)
  30.         {
  31.                 GetProcessInfo(#Process, i);
  32.                 if (strcmpi(#Process.name, proc_name)==0)
  33.                 {
  34.                         KillProcess(Process.ID);
  35.                         if (multiple==SINGLE) break;
  36.                 }
  37.         }
  38. }
  39.  
  40. :int GetProcessesCount(dword proc_name) {
  41.         int i, count=0;
  42.         proc_info Process;
  43.         for (i=0; i<MAX_PROCESS_COUNT; i++;)
  44.         {
  45.                 GetProcessInfo(#Process, i);
  46.                 if (strcmpi(#Process.name, proc_name)==0) count++;
  47.         }
  48.         return count;
  49. }
  50.  
  51. :void RestartProcessByName(dword proc_name, byte multiple) {
  52.         KillProcessByName(proc_name + strrchr(proc_name, '/'), multiple);
  53.         RunProgram(proc_name, "");     
  54. }
  55.  
  56. :void RestartAllProcess() {
  57.         int i;
  58.         proc_info Process, Self;
  59.         GetProcessInfo(#Self, -1);
  60.         for (i=0; i<MAX_PROCESS_COUNT; 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. }
  70.  
  71. #endif