Subversion Repositories Kolibri OS

Rev

Rev 944 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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