struct f70{ dword func; dword param1; dword param2; dword param3; dword param4; char rezerv; dword name; }; //////////////////////////// // Прочитать файл // //////////////////////////// f70 read_file_70; void ReadFile(dword pos, file_size, read_buffer, file_path) { read_file_70.func = 0; read_file_70.param1 = pos; read_file_70.param2 = 0; read_file_70.param3 = file_size; read_file_70.param4 = read_buffer; read_file_70.rezerv = 0; read_file_70.name = file_path; $mov eax,70 $mov ebx,#read_file_70.func $int 0x40 } /////////////////////////// // Прочитать папку // /////////////////////////// f70 read_dir_70; void ReadDir(dword file_count, read_buffer, read_dir_path) { read_dir_70.func = 1; read_dir_70.param1 = 0; read_dir_70.param2 = 0; read_dir_70.param3 = file_count; read_dir_70.param4 = read_buffer; read_dir_70.rezerv = 0; read_dir_70.name = read_dir_path; $mov eax,70 $mov ebx,#read_dir_70.func $int 0x40 } /////////////////////////// // Запуск программы // /////////////////////////// f70 run_file_70; void RunProgram(dword run_path, run_param) { run_file_70.func = 7; run_file_70.param1 = run_file_70.param3 = run_file_70.param4 = run_file_70.rezerv = 0; run_file_70.param2 = run_param; run_file_70.name = run_path; $mov eax,70 $mov ebx,#run_file_70.func $int 0x40 } /////////////////////////// // Создание папки // /////////////////////////// f70 create_dir_70; void CreateFolder(dword new_folder_path) { create_dir_70.func = 9; create_dir_70.param1 = create_dir_70.param2 = create_dir_70.param3 = create_dir_70.param4 = create_dir_70.rezerv = 0; create_dir_70.name = new_folder_path; $mov eax,70 $mov ebx,#create_dir_70.func $int 0x40 } //////////////////////////// // Удаление файла/папки // //////////////////////////// f70 del_file_70; void DeleleFile(dword del_file_path) { del_file_70.func = 8; del_file_70.param1 = del_file_70.param2 = del_file_70.param3 = del_file_70.param4 = del_file_70.rezerv = 0; del_file_70.name = del_file_path; $mov eax,70 $mov ebx,#del_file_70.func $int 0x40 } /////////////////////////// // Скопировать файл // /////////////////////////// f70 CopyFile_f; inline fastcall dword CopyFile(dword EBX,ECX) { BDVK CopyFile_atr; dword s=EBX, d=ECX, cBufer=0; CopyFile_f.func = 5; CopyFile_f.param1 = 0; CopyFile_f.param2 = 0; CopyFile_f.param3 = 0; CopyFile_f.param4 = #CopyFile_atr; CopyFile_f.rezerv = 0; CopyFile_f.name = s; $mov eax, 70 $mov ebx, #CopyFile_f $int 0x40 if (!EAX) { cBufer = malloc(CopyFile_atr.sizelo); ReadFile(dword 0, CopyFile_atr.sizelo, cBufer, s); IF (!EAX) { CopyFile_f.func = 2; CopyFile_f.param1 = 0; CopyFile_f.param2 = 0; CopyFile_f.param3 = CopyFile_atr.sizelo; CopyFile_f.param4 = cBufer; CopyFile_f.rezerv = 0; CopyFile_f.name = d; $mov eax, 70 $mov ebx, #CopyFile_f $int 0x40 } } } /*char *extension[25]={".skn",".avi",".htm","html",".3ds",".lif",".cvs",".mp3", ".wav",".mid","midi",".rtf",".txt",".inc",".ini",".dat",".asm",".gif",".bmp", ".tga",".pcx",".png",".jpg","jpeg", 0}; //массив указателей char *prog_path[25]={"desktop","/sys/kvid","/sys/network/HTMLv","/sys/network/HTMLv", "/sys/demos/3d/view3ds","/sys/demos/life2","graph","AC97SND","AC97SND","MIDAMP", "MIDAMP","RtfRead","TinyPad","TinyPad","TinyPad","TinyPad","TinyPad","MV","MV", "MV","MV","@rcher","JpegView","JpegView", 0}; void Run_File(dword fpath) { byte i; dword file_ext[4]=fpath+strlen(fpath)-4; FOR(i=0; extension[i]!=0; i++) IF (strcmp(file_ext,extension[i])==0) { Run_Program(prog_path[i], fpath); return; } Run_Program(fpath, ""); }*/ void Run_File(dword fpath) { dword extension[4], fparam[256]; copystr(fpath,#fparam); //по-умолчанию прога и параметр равны, если окажется что это файл, парам - сбросим copystr(fpath+strlen(fpath)-4,#extension); //узнаём расширение файла с каким работаем //тут мы это расширение сравнимаем, и, если оно асоциируется с прогой, прога - это fpath IF (!strcmp(#extension,".skn")) copystr("desktop",fpath); IF (!strcmp(#extension,".avi")) copystr("/sys/kvid",fpath); IF (!strcmp(#extension,".mpg")) copystr("/sys/kvid",fpath); IF (!strcmp(#extension,".htm")) copystr("/sys/network/HTMLv",fpath); IF (!strcmp(#extension,"html")) copystr("/sys/network/HTMLv",fpath); //IF (strcmp(#extension,".htm")==0) || (strcmp(#extension,"html")==0) copystr("/hd0/2/Programs/QIP/Users/419114984/RcvdFiles/313257308_Veliant/browser/HTMLv",fpath); IF (!strcmp(#extension,".3ds")) copystr("/sys/demos/3d/view3ds",fpath); IF (!strcmp(#extension,".lif")) copystr("/sys/demos/life2",fpath); IF (!strcmp(#extension,".cvs")) copystr("graph",fpath); IF (!strcmp(#extension,".nes")) copystr("/sys/games/fce",fpath); //audio IF (!strcmp(#extension,".mp3")) copystr("AC97SND",fpath); IF (!strcmp(#extension,".wav")) copystr("AC97SND",fpath); IF (!strcmp(#extension,".mid")) copystr("MIDAMP",fpath); IF (!strcmp(#extension,"midi")) copystr("MIDAMP",fpath); //text IF (!strcmp(#extension,".rtf")) copystr("RtfRead",fpath); IF (!strcmp(#extension,".txt")) copystr("TinyPad",fpath); IF (!strcmp(#extension,".inc")) copystr("TinyPad",fpath); IF (!strcmp(#extension,".ini")) copystr("TinyPad",fpath); IF (!strcmp(#extension,".dat")) copystr("TinyPad",fpath); IF (!strcmp(#extension,".asm")) copystr("TinyPad",fpath); IF (!strcmp(#extension,".cpp")) copystr("TinyPad",fpath); //изображения IF (!strcmp(#extension,".gif")) copystr("MV",fpath); //GifView,MenuAnimage IF (!strcmp(#extension,".bmp")) copystr("MV",fpath); //BmpMenu1,MenuAnimage IF (!strcmp(#extension,".tga")) copystr("MV",fpath); IF (!strcmp(#extension,".pcx")) copystr("MV",fpath); IF (!strcmp(#extension,".cur")) copystr("MV",fpath); IF (!strcmp(#extension,".ico")) copystr("MV",fpath); IF (!strcmp(#extension,".png")) copystr("pngview",fpath); IF (!strcmp(#extension,".jpg")) copystr("JpegView",fpath); IF (!strcmp(#extension,"jpeg")) copystr("JpegView",fpath); IF (!strcmp(fpath,#fparam)) fparam=''; //если fpath не изменился, то это таки, наверное, прога, параметров нет. RunProgram(fpath, #fparam); //запуск! }