Subversion Repositories Kolibri OS

Rev

Rev 938 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
938 leency 1
struct f70{
2
	dword	func;
3
	dword	param1;
4
	dword	param2;
5
	dword	param3;
6
	dword	param4;
7
	char	rezerv;
8
	dword	name;
9
};
10
 
944 leency 11
////////////////////////////
12
//     Прочитать файл     //
13
////////////////////////////
14
f70 read_file_70;
15
void ReadFile(dword pos, file_size, read_buffer, file_path)
16
{
17
	read_file_70.func = 0;
18
	read_file_70.param1 = pos;
19
	read_file_70.param2 = 0;
20
	read_file_70.param3 = file_size;
21
	read_file_70.param4 = read_buffer;
22
	read_file_70.rezerv = 0;
23
	read_file_70.name = file_path;
24
	$mov eax,70
25
	$mov ebx,#read_file_70.func
26
	$int 0x40
27
}
938 leency 28
 
29
///////////////////////////
944 leency 30
//    Прочитать папку    //
31
///////////////////////////
32
f70 read_dir_70;
33
void ReadDir(dword file_count, read_buffer, read_dir_path)
34
{
35
	read_dir_70.func = 1;
36
	read_dir_70.param1 = 0;
37
	read_dir_70.param2 = 0;
38
	read_dir_70.param3 = file_count;
39
	read_dir_70.param4 = read_buffer;
40
	read_dir_70.rezerv = 0;
41
	read_dir_70.name = read_dir_path;
42
	$mov eax,70
43
	$mov ebx,#read_dir_70.func
44
	$int 0x40
45
}
46
 
47
///////////////////////////
938 leency 48
//   Запуск программы    //
49
///////////////////////////
50
f70 run_file_70;
51
void RunProgram(dword run_path, run_param)
52
{
53
    run_file_70.func = 7;
54
    run_file_70.param1 =
55
    run_file_70.param3 =
56
    run_file_70.param4 =
57
    run_file_70.rezerv = 0;
58
    run_file_70.param2 = run_param;
59
    run_file_70.name = run_path;
60
    $mov eax,70
61
    $mov ebx,#run_file_70.func
62
    $int 0x40
63
}
64
 
65
///////////////////////////
66
//    Создание папки     //
67
///////////////////////////
68
f70 create_dir_70;
69
void CreateFolder(dword new_folder_path)
70
{
71
	create_dir_70.func = 9;
72
	create_dir_70.param1 =
73
	create_dir_70.param2 =
74
	create_dir_70.param3 =
75
	create_dir_70.param4 =
76
	create_dir_70.rezerv = 0;
77
	create_dir_70.name = new_folder_path;
78
	$mov eax,70
79
	$mov ebx,#create_dir_70.func
80
	$int 0x40
81
}
82
 
83
////////////////////////////
84
//  Удаление файла/папки  //
85
////////////////////////////
86
f70 del_file_70;
87
void DeleleFile(dword del_file_path)
88
{
89
	del_file_70.func = 8;
90
	del_file_70.param1 =
91
	del_file_70.param2 =
92
	del_file_70.param3 =
93
	del_file_70.param4 =
94
	del_file_70.rezerv = 0;
95
	del_file_70.name = del_file_path;
96
	$mov eax,70
97
	$mov ebx,#del_file_70.func
98
	$int 0x40
99
}
100
 
101
///////////////////////////
102
//   Скопировать файл    //
103
///////////////////////////
104
f70	CopyFile_f;
105
inline fastcall dword CopyFile(dword EBX,ECX)
106
{
107
	BDVK CopyFile_atr;
108
	dword s=EBX, d=ECX, cBufer=0;
109
	CopyFile_f.func = 5;
110
	CopyFile_f.param1 = 0;
111
	CopyFile_f.param2 = 0;
112
	CopyFile_f.param3 = 0;
113
	CopyFile_f.param4 = #CopyFile_atr;
114
	CopyFile_f.rezerv = 0;
115
	CopyFile_f.name = s;
116
	$mov eax, 70
117
	$mov ebx, #CopyFile_f
118
	$int 0x40
119
 
120
	if (!EAX)
121
	{
122
		cBufer = malloc(CopyFile_atr.sizelo);
944 leency 123
		ReadFile(dword 0, CopyFile_atr.sizelo, cBufer, s);
938 leency 124
 
125
		IF (!EAX)
126
		{
127
			CopyFile_f.func = 2;
128
			CopyFile_f.param1 = 0;
129
			CopyFile_f.param2 = 0;
130
			CopyFile_f.param3 = CopyFile_atr.sizelo;
131
			CopyFile_f.param4 = cBufer;
132
			CopyFile_f.rezerv = 0;
133
			CopyFile_f.name = d;
134
			$mov eax, 70
135
			$mov ebx, #CopyFile_f
136
			$int 0x40
137
		}
138
	}
139
 
140
}
141
 
142
/*char *extension[25]={".skn",".avi",".htm","html",".3ds",".lif",".cvs",".mp3",
143
".wav",".mid","midi",".rtf",".txt",".inc",".ini",".dat",".asm",".gif",".bmp",
144
".tga",".pcx",".png",".jpg","jpeg", 0}; //массив указателей
145
char *prog_path[25]={"desktop","/sys/kvid","/sys/network/HTMLv","/sys/network/HTMLv",
146
"/sys/demos/3d/view3ds","/sys/demos/life2","graph","AC97SND","AC97SND","MIDAMP",
147
"MIDAMP","RtfRead","TinyPad","TinyPad","TinyPad","TinyPad","TinyPad","MV","MV",
148
"MV","MV","@rcher","JpegView","JpegView", 0};
149
 
150
 
151
void Run_File(dword fpath)
152
{
153
	byte i;
154
	dword file_ext[4]=fpath+strlen(fpath)-4;
155
	FOR(i=0; extension[i]!=0; i++) IF (strcmp(file_ext,extension[i])==0)
156
	{
157
		Run_Program(prog_path[i], fpath);
158
		return;
159
	}
160
	Run_Program(fpath, "");
161
}*/
162
 
163
 
164
void Run_File(dword fpath)
165
{
166
	dword extension[4], fparam[256];
167
	copystr(fpath,#fparam); //по-умолчанию прога и параметр равны, если окажется что это файл, парам - сбросим
168
	copystr(fpath+strlen(fpath)-4,#extension); //узнаём расширение файла с каким работаем
169
	//тут мы это расширение сравнимаем, и, если оно асоциируется с прогой, прога - это fpath
170
		IF (!strcmp(#extension,".skn")) copystr("desktop",fpath);
171
		IF (!strcmp(#extension,".avi")) copystr("/sys/kvid",fpath);
172
		IF (!strcmp(#extension,".mpg")) copystr("/sys/kvid",fpath);
173
		IF (!strcmp(#extension,".htm")) copystr("/sys/network/HTMLv",fpath);
174
		IF (!strcmp(#extension,"html")) copystr("/sys/network/HTMLv",fpath);
175
		//IF (strcmp(#extension,".htm")==0) || (strcmp(#extension,"html")==0) copystr("/hd0/2/Programs/QIP/Users/419114984/RcvdFiles/313257308_Veliant/browser/HTMLv",fpath);
176
		IF (!strcmp(#extension,".3ds")) copystr("/sys/demos/3d/view3ds",fpath);
177
		IF (!strcmp(#extension,".lif")) copystr("/sys/demos/life2",fpath);
178
		IF (!strcmp(#extension,".cvs")) copystr("graph",fpath);
179
		IF (!strcmp(#extension,".nes")) copystr("/sys/games/fce",fpath);
180
		//audio
181
		IF (!strcmp(#extension,".mp3")) copystr("AC97SND",fpath);
182
		IF (!strcmp(#extension,".wav")) copystr("AC97SND",fpath);
183
		IF (!strcmp(#extension,".mid")) copystr("MIDAMP",fpath);
184
		IF (!strcmp(#extension,"midi")) copystr("MIDAMP",fpath);
185
		//text
186
		IF (!strcmp(#extension,".rtf")) copystr("RtfRead",fpath);
187
		IF (!strcmp(#extension,".txt")) copystr("TinyPad",fpath);
188
		IF (!strcmp(#extension,".inc")) copystr("TinyPad",fpath);
189
		IF (!strcmp(#extension,".ini")) copystr("TinyPad",fpath);
190
		IF (!strcmp(#extension,".dat")) copystr("TinyPad",fpath);
191
		IF (!strcmp(#extension,".asm")) copystr("TinyPad",fpath);
192
		IF (!strcmp(#extension,".cpp")) copystr("TinyPad",fpath);
193
		//изображения
194
		IF (!strcmp(#extension,".gif")) copystr("MV",fpath); //GifView,MenuAnimage
195
		IF (!strcmp(#extension,".bmp")) copystr("MV",fpath); //BmpMenu1,MenuAnimage
196
		IF (!strcmp(#extension,".tga")) copystr("MV",fpath);
197
		IF (!strcmp(#extension,".pcx")) copystr("MV",fpath);
198
		IF (!strcmp(#extension,".cur")) copystr("MV",fpath);
199
		IF (!strcmp(#extension,".ico")) copystr("MV",fpath);
200
		IF (!strcmp(#extension,".png")) copystr("pngview",fpath);
201
		IF (!strcmp(#extension,".jpg")) copystr("JpegView",fpath);
202
		IF (!strcmp(#extension,"jpeg")) copystr("JpegView",fpath);
203
	IF (!strcmp(fpath,#fparam)) fparam=''; //если fpath не изменился, то это таки, наверное, прога, параметров нет.
204
	RunProgram(fpath, #fparam); //запуск!
205
}