home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Inside Microsoft Windows
/
IMWCDV1.iso
/
connect
/
w_fwdos.exe
/
EWEXEC.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1993-02-15
|
3KB
|
165 lines
{$A+,B-,D-,F-,G+,I-,K+,L+,N-,P-,Q-,R-,S-,T-,V-,W+,X+,Y-}
{$M 8192,8192}
Program EWExec;
{$r EWEXEC.RES}
uses
objects,
owindows,
odialogs,
omemory,
strings,
winprocs,
wintypes,
windos,
win31,
bwcc,
ostddlgs,
globsup;
const
id_mesg = 201;
type
buf = array[0..127] of char;
pewemain = ^tewemain;
tewemain = object(tapplication)
procedure initmainwindow; virtual;
end;
pewe = ^tewe;
tewe = object(tdlgwindow)
shell,
prog,
parms,
temp: buf;
mesg: pstatic;
constructor init(aparent: pwindowsobject; atitle: pchar);
procedure initchildren;
procedure setupwindow; virtual;
procedure go;
procedure doexec(var msg: tmessage); virtual wm_first + wm_timer;
procedure ok(var msg: tmessage); virtual id_first + id_ok;
end;
constructor tewe.init(aparent: pwindowsobject; atitle: pchar);
begin
tdlgwindow.init(aparent, atitle);
initchildren;
shell[0]:=#0;
prog[0]:=#0;
parms[0]:=#0;
temp[0]:=#0;
end;
procedure tewe.initchildren;
begin
mesg:=new(pstatic, initresource(@self, id_mesg, 126));
end;
procedure tewe.setupwindow;
begin
tdlgwindow.setupwindow;
mesg^.settext('One moment...');
settimer(hwindow, 1, 1500, nil);
end;
procedure tewe.go;
var i: integer;
begin
if (paramcount = 0) then
begin
mesg^.settext('Invalid command line');
messagebox(hwindow,
'EWEXEC progname [paramaters]'#13#10#13#10+
'example:'#13#10+
'EWEXEC WOLF3D.BAT -next',
'Syntax',
mb_iconinformation or mb_ok);
exit;
end;
strcopy(shell, getenvvar('COMSPEC'));
strcopy(parms, ' /C ');
strpcopy(prog, paramstr(1));
strupper(prog);
strcat(parms, prog);
strcat(parms, #32);
if (paramcount > 1) then
for i:=2 to paramcount do
begin
strpcopy(temp, paramstr(i));
strcat(parms, temp);
strcat(parms, #32);
end;
if not exist(prog) then
begin
messagebeep(0);
strcopy(temp, 'Could not find: ');
strcat(temp, prog);
mesg^.settext(temp);
exit;
end
else
begin
strcopy(temp, shell);
strcat(temp, parms);
mesg^.settext(temp);
end;
if not exitwindowsexec(shell, parms) then
begin
messagebeep(0);
strcopy(temp, 'Could not execute: ');
strcat(temp, prog);
mesg^.settext(temp);
exit;
end;
end;
procedure tewe.doexec(var msg: tmessage);
begin
killtimer(hwindow, 1);
go;
end;
procedure tewe.ok(var msg: tmessage);
begin
killtimer(hwindow, 1);
go;
tdlgwindow.ok(msg);
end;
{ main window }
procedure tewemain.initmainwindow;
begin
MainWindow := New(pewe, Init(nil, 'MAINWINDOW'));
end;
var
ewe: tewemain;
begin
ewe.init('EWE');
ewe.run;
ewe.done;
end.