Subversion Repositories Kolibri OS

Rev

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