Subversion Repositories Kolibri OS

Rev

Rev 944 | Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. #define ac97snd "AC97SND"
  2. #define desktop "desktop"
  3. #define fce "/sys/games/fce"
  4. #define graph "graph"
  5. #define htmlv "/sys/network/HTMLv"
  6. #define jpegview "JpegView"
  7. #define kvid "/sys/kvid"
  8. #define life2 "/sys/demos/life2"
  9. #define midamp "MIDAMP"
  10. #define mv "MV"
  11. #define pngview "pngview"
  12. #define rtfread "RtfRead"
  13. #define tinypad "TinyPad"
  14. #define view3ds "/sys/demos/3d/view3ds"
  15.  
  16. struct f70{
  17.         dword   func;
  18.         dword   param1;
  19.         dword   param2;
  20.         dword   param3;
  21.         dword   param4;
  22.         char    rezerv;
  23.         dword   name;
  24. };
  25.  
  26. struct BDVK{
  27.         dword   attr;
  28.         byte    type_name;
  29.         byte    rez1, rez2, rez3;
  30.         dword   timecreate;
  31.         dword   datecreate;
  32.         dword   timelastaccess;
  33.         dword   datelastaccess;
  34.         dword   timelastedit;
  35.         dword   datelastedit;
  36.         dword   sizelo;
  37.         dword   sizehi;
  38.         char    name[518];
  39. };
  40.  
  41. ////////////////////////////
  42. //     Ïðî÷èòàòü ôàéë     //
  43. ////////////////////////////
  44. f70 read_file_70;
  45. void ReadFile(dword pos, file_size, read_buffer, file_path)
  46. {    
  47.         read_file_70.func = 0;
  48.         read_file_70.param1 = pos;
  49.         read_file_70.param2 = 0;
  50.         read_file_70.param3 = file_size;
  51.         read_file_70.param4 = read_buffer;
  52.         read_file_70.rezerv = 0;
  53.         read_file_70.name = file_path;
  54.         $mov eax,70
  55.         $mov ebx,#read_file_70.func
  56.         $int 0x40
  57. }    
  58.  
  59. ///////////////////////////
  60. //    Ïðî÷èòàòü ïàïêó    //
  61. ///////////////////////////
  62. f70 read_dir_70;
  63. void ReadDir(dword file_count, read_buffer, read_dir_path)
  64. {    
  65.         read_dir_70.func = 1;
  66.         read_dir_70.param1 = 0;
  67.         read_dir_70.param2 = 0;
  68.         read_dir_70.param3 = file_count;
  69.         read_dir_70.param4 = read_buffer;
  70.         read_dir_70.rezerv = 0;
  71.         read_dir_70.name = read_dir_path;
  72.         $mov eax,70
  73.         $mov ebx,#read_dir_70.func
  74.         $int 0x40
  75. }  
  76.  
  77. ///////////////////////////
  78. //   Çàïóñê ïðîãðàììû    //
  79. ///////////////////////////
  80. f70 run_file_70;
  81. void RunProgram(dword run_path, run_param)
  82. {    
  83.     run_file_70.func = 7;
  84.     run_file_70.param1 =
  85.     run_file_70.param3 =
  86.     run_file_70.param4 =
  87.     run_file_70.rezerv = 0;
  88.     run_file_70.param2 = run_param;
  89.     run_file_70.name = run_path;
  90.     $mov eax,70
  91.     $mov ebx,#run_file_70.func
  92.     $int 0x40
  93. }
  94.  
  95. ///////////////////////////
  96. //    Ñîçäàíèå ïàïêè     //
  97. ///////////////////////////
  98. f70 create_dir_70;
  99. void CreateFolder(dword new_folder_path)
  100. {
  101.         create_dir_70.func = 9;
  102.         create_dir_70.param1 =
  103.         create_dir_70.param2 =
  104.         create_dir_70.param3 =
  105.         create_dir_70.param4 =
  106.         create_dir_70.rezerv = 0;
  107.         create_dir_70.name = new_folder_path;
  108.         $mov eax,70
  109.         $mov ebx,#create_dir_70.func
  110.         $int 0x40
  111. }
  112.  
  113. ////////////////////////////
  114. //  Óäàëåíèå ôàéëà/ïàïêè  //
  115. ////////////////////////////
  116. f70 del_file_70;       
  117. void DeleleFile(dword del_file_path)
  118. {    
  119.         del_file_70.func = 8;
  120.         del_file_70.param1 =
  121.         del_file_70.param2 =
  122.         del_file_70.param3 =
  123.         del_file_70.param4 =
  124.         del_file_70.rezerv = 0;
  125.         del_file_70.name = del_file_path;
  126.         $mov eax,70
  127.         $mov ebx,#del_file_70.func
  128.         $int 0x40
  129. }  
  130.  
  131. ///////////////////////////
  132. //   Ñêîïèðîâàòü ôàéë    //
  133. ///////////////////////////
  134. f70     CopyFile_f;
  135. inline fastcall dword CopyFile(dword EBX,ECX)
  136. {
  137.         BDVK CopyFile_atr;
  138.         dword s=EBX, d=ECX, cBufer=0;
  139.         CopyFile_f.func = 5;
  140.         CopyFile_f.param1 = 0;
  141.         CopyFile_f.param2 = 0;
  142.         CopyFile_f.param3 = 0;
  143.         CopyFile_f.param4 = #CopyFile_atr;
  144.         CopyFile_f.rezerv = 0;
  145.         CopyFile_f.name = s;
  146.         $mov eax, 70
  147.         $mov ebx, #CopyFile_f
  148.         $int 0x40
  149.        
  150.         if (!EAX)
  151.         {      
  152.                 cBufer = malloc(CopyFile_atr.sizelo);  
  153.                 ReadFile(dword 0, CopyFile_atr.sizelo, cBufer, s);
  154.        
  155.                 IF (!EAX)
  156.                 {
  157.                         CopyFile_f.func = 2;
  158.                         CopyFile_f.param1 = 0;
  159.                         CopyFile_f.param2 = 0;
  160.                         CopyFile_f.param3 = CopyFile_atr.sizelo;
  161.                         CopyFile_f.param4 = cBufer;
  162.                         CopyFile_f.rezerv = 0;
  163.                         CopyFile_f.name = d;
  164.                         $mov eax, 70
  165.                         $mov ebx, #CopyFile_f
  166.                         $int 0x40
  167.                 }
  168.         }
  169.  
  170. }
  171.  
  172. void Run_File(dword fpath)
  173. {
  174.         dword extension[4], fparam[256]; byte needrun;
  175.         needrun = 1; //åñëè 1 òî íóæíî çàïóñêàòü, åñëè 0 òî íå íàäî
  176.         copystr(fpath,#fparam); //ïî-óìîë÷àíèþ ïðîãà è ïàðàìåòð ðàâíû, åñëè îêàæåòñÿ ÷òî ýòî ôàéë, ïàðàì - ñáðîñèì
  177.         copystr(fpath+strlen(fpath)-4,#extension); //óçíà¸ì ðàñøèðåíèå ôàéëà ñ êàêèì ðàáîòàåì
  178.         //òóò ìû ýòî ðàñøèðåíèå ñðàâíèìàåì, è, åñëè îíî àñîöèèðóåòñÿ ñ ïðîãîé, ïðîãà - ýòî fpath
  179.         IF (!strcmp(#extension,".skn")) copystr("desktop",fpath);
  180.         IF (!strcmp(#extension,".avi")) || (!strcmp(#extension,".mpg")) copystr(kvid,fpath);
  181.         IF (!strcmp(#extension,".htm")) || (!strcmp(#extension,"html")) copystr(htmlv,fpath);
  182.         IF (!strcmp(#extension,".3ds")) copystr(view3ds,fpath);
  183.         IF (!strcmp(#extension,".lif")) copystr(life2,fpath);
  184.         IF (!strcmp(#extension,".cvs")) copystr(graph,fpath);
  185.         IF (!strcmp(#extension,".nes")) copystr(fce,fpath);
  186.         //audio
  187.         IF (!strcmp(#extension,".mp3")) || (!strcmp(#extension,".wav")) copystr(ac97snd,fpath);
  188.         IF (!strcmp(#extension,".mid")) || (!strcmp(#extension,"midi")) copystr(midamp,fpath);
  189.         //text
  190.         IF (!strcmp(#extension,".rtf")) copystr(rtfread,fpath);
  191.         IF (!strcmp(#extension,".txt")) || (!strcmp(#extension,".inc")) ||
  192.            (!strcmp(#extension,".ini")) || (!strcmp(#extension,".dat")) ||
  193.            (!strcmp(#extension,".asm")) || (!strcmp(#extension,".cpp")) copystr(tinypad,fpath);
  194.         //èçîáðàæåíèÿ
  195.         IF (!strcmp(#extension,".gif")) || (!strcmp(#extension,".bmp")) ||
  196.            (!strcmp(#extension,".tga")) || (!strcmp(#extension,".pcx")) ||
  197.            (!strcmp(#extension,".cur")) || (!strcmp(#extension,".ico")) copystr(mv,fpath);
  198.         IF (!strcmp(#extension,".png")) copystr(pngview,fpath);
  199.         IF (!strcmp(#extension,".jpg")) || (!strcmp(#extension,"jpeg")) copystr(jpegview,fpath);
  200.  
  201.         IF (!strcmp(#extension,".sys")) || (!strcmp(#extension,".drv")) ||
  202.            (!strcmp(#extension,".obj")) needrun=0; // ýòè ôàéëû íå äëÿ çàïóñêà
  203.  
  204.         IF (!strcmp(fpath,#fparam)) fparam=''; //åñëè fpath íå èçìåíèëñÿ, òî ýòî òàêè, íàâåðíîå, ïðîãà, ïàðàìåòðîâ íåò.
  205.         IF (needrun == 1) RunProgram(fpath, #fparam); //çàïóñê!
  206. }
  207.