procedure TService1.ServiceCreate(Sender: TObject);
begin
Timer1.Interval:=5*60*1000;//5分
Timer1.Enabled:=True;
end;
procedure TService1.Timer1Timer(Sender: TObject);
var
F:TextFile;
FileName:string;
re:Integer;
begin
re:=ShellExecute(0,
'open',
PChar('c:\windows\Notepad.exe'),
nil,
PChar(ExtractFilePath(Application.Exename)),
SW_SHOWDEFAULT);
FileName:=ChangeFileExt(Application.exename,'.log');
AssignFile(F,FileName);
if FileExists(FileName) then
Append(F)
else
ReWrite(F);
Writeln(F,DateTimeToStr(Now)+'_'+inttostr(re));
CloseFile(F);
end;
これをサービスに登録し、開始すると
Fには期待通りに時刻とShellExecuteの返値(42)が10秒ごとに書き込まれています
が、Notepadが起動しません、
目的は、Logに書き込むことではなく他のアプリケーションを起動することです。
サービスアプリケーションからは、他のアプリケーションを起動出来ないのでしょうか
フォームアプリケーションで実行すると、全て期待通りに動作しています。
環境
Win Xp sp2
BDS2006
----- Original Message -----
送信者 : "松本 英俊" <hidetoshi...@highway-kansei.co.jp>
宛先 : <Del...@ml.users.gr.jp>
送信日時 : 2008年10月12日 10:05
件名 : [Delphi:90795] サービスアプリケーション
> これをサービスに登録し、開始すると
> Fには期待通りに時刻とShellExecuteの返値(42)が10秒ごとに書き込まれています
> が、Notepadが起動しません、
> 目的は、Logに書き込むことではなく他のアプリケーションを起動することです。
> サービスアプリケーションからは、他のアプリケーションを起動出来ないのでしょうか
1.実行時のアクセス権(アカウント)は?
2.ディスクトップとの対話をサービスに許可しているか?
以上の説明が無いのですが?
---- (^_^)(^_^)(^_^) THE REAL PROGRAMMER (^_^)(^_^)(^_^) ----
At the beach, The Real Programmer is the one drawing flowcharts in the sand.
戸田 英夫 mailto:to...@384.jp;hideo...@chugoku.ntt-neo.co.jp
個人のPCなので管理者権限です
> 2.ディスクトップとの対話をサービスに許可しているか?
意味がよくわかりません。
ご教授ください
> 1.実行時のアクセス権(アカウント)は?
個人のPCなので管理者権限です
> 2.ディスクトップとの対話をサービスに許可しているか?
意味がよくわかりません。
ご教授ください
普通に(フォームアプリケーションと同じコードように)書いて、
サービスとして登録すれば良いものと考えていました
サービスから起動されたプロセスは「デスクトップ」が現在ログオンしている
画面とは異なるので「表示」されません。
#タスクマネージャで NotePad.exeが起動されているか
#チェックしてみてください。多分起動していると思います。
サービスから起動されたアプリを「表示」するには以下の解説が参考になると
思います。
「サービスからアプリケーションデスクトップへのアクセス」
http://support.microsoft.com/default.aspx?scid=kb;ja;173687
但し、使い方によっては危険です。
また、Vista では出来なくなったらしいです。
"[Delphi:90795] サービスアプリケーション" において
>これをサービスに登録し、開始すると
>Fには期待通りに時刻とShellExecuteの返値(42)が10秒ごとに書き込まれています
>が、Notepadが起動しません、
>目的は、Logに書き込むことではなく他のアプリケーションを起動することです。
>サービスアプリケーションからは、他のアプリケーションを起動出来ないのでしょうか
>
-------------------------------------------------------------------
中村拓男 東京都日野市
中村の里 http://www.asahi-net.or.jp/~HA3T-NKMR/ 2002/8/15
DGSサポート http://www.asahi-net.or.jp/~HA3T-NKMR/DGS/ 2002/9/26
PGP FP: AF 31 35 65 65 DB C1 8A AF F8 EC 08 CE 49 FF BA
>
> サービスから起動されたプロセスは「デスクトップ」が現在ログオンしている
> 画面とは異なるので「表示」されません。
> #タスクマネージャで NotePad.exeが起動されているか
> #チェックしてみてください。多分起動していると思います。
確認しました。
ありがとうございました