16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"時間になったら起動する常駐プログラム"
この発言に対し以下のコメントが寄せられています
#00497 瑠瓏 さん RE:時間になったら起動する常駐プログラム
コンソールプログラムなので、そのまま、コンパイルするだけです。
約40kBくらいの小さなプログラムです。
tsr.pas(tsr.dpr)として、D2/D3でコンパイルしてください。
tsr <cr> で常駐
tsr quit <cr> で常駐解除
program Tsr;
uses Windows,SysUtils;
{$APPTYPE CONSOLE}
const brk ='TSR_PROGRAM_BREAK';{}
doing='TSR_PROGRAM_DOING';{}
app ='APPLICATION_NAME' ;{}
Stime='12:00';{再起動する時間}
Qtime='12:30';{再起動をしない時間帯}
procedure Run;
var a:TAtom;
h,m,s,d:word;
n:string;
function BreakCheck:boolean;
begin
Result:=GlobalFindAtom(brk)<>0
end;
begin
if GlobalFindAtom(doing)<>0 then
Writeln('Error:すでに常駐しています')
else begin
a:=GlobalAddAtom(doing);
repeat
Sleep(3000); {3秒に1回チェックする}
DecodeTime(now,h,m,s,d);
n:=Format('%.2d:%.2d',[h,m]);
until BreakCheck or ((n>=Stime) and (n<Qtime));
if not BreakCheck then begin
// WinExec または CreateProcess で実行
repeat
Sleep(3000); {3秒に1回チェックする}
DecodeTime(now,h,m,s,d);
n:=Format('%.2d:%.2d',[h,m]);
until BreakCheck or (n<Stime) or (n>=Qtime)
end;
GlobalDeleteAtom(a)
end
end;
procedure RunBreak;
var a:TAtom;
c:integer;
begin
if GlobalFindAtom(doing)=0 then Writeln('Error:常駐していません')
else begin
c:=10;
a:=GlobalAddAtom(brk);
Sleep(5000); {5秒待つ}
while (c>0) and (GlobalFindAtom(doing)<>0) do begin
Sleep(3000); {3秒待つ(10回なので、計30秒)}
dec(c)
end;
if GlobalFindAtom(doing)<>0 then
Writeln('Error:常駐解除できませんでした');
GlobalDeleteAtom(a)
end
end;
begin
Writeln('TSR.Exe : 常駐監視サンプル');
Writeln('Copyright 1998, by Le Reaux(PS-Network)'#10#13:79);
if UpperCase(Paramstr(1))='BREAK' then RunBreak else Run
end.
***ここまで。
APPTYPE COSOLEを外して、Writelnの変わりに、ShowMessageを使うと、DOS窓
も出ないので、スタートアップに入れることも可。
URL=http://member.nifty.ne.jp/lereaux/
卯月、小満、晩春挿話 FDELPHI ☆ 瑠瓏 <KHB05271@niftyserve.or.jp>
FJBUILDR Fri,4/17/98 12:22
Original document by 瑠瓏 氏 ID:(KHB05271)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|