掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
毎時00分に別のアプリを起動させる。 (ID:3609)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
アプリケーションを立ち上げるのがOSでよければ、特に常駐する必要はありませんよ。 WindowsXPであればコントロールパネルに、たぶんその前までは、マイコンピュータかコントロールパネルのどちらか、またはタスクトレイに「タスクスケジューラ」というのがあります。 # WindowsXPでは「タスク」とあるので、こちらかもしれません これに、アプリケーション(便宜上Bとします)を毎時00分に立ち上がるよう設定し、アプリケーションBから、本当に立ち上げたいアプリケーション(便宜上Aとします)を立ち上げます。 説明を見ると、たぶん2でしょうから、上の説明は参考程度にしてくださいね。 常駐するアプリは簡単です。終了しなければ常駐と同じですから。 あとは、タスクトレイにどういれるかですね。 簡単にすましたいのであれば、コンポーネントを使用します。 Delphian World http://home1.infonia.ne.jp/~delphian/delphi/ ここなどに、タスクトレイにアイコンを表示するコンポーネントがあります。 自分でタスクトレイにアイコンを入れたいのであれば、Shell_NotifyIconというAPIを使用します。 http://www.wwlnk.com/boheme/delphi/tips/tec0310.htm にサンプルがありました。 あとは、TTimerコンポーネントで1秒とか数秒ごとに起動させればOKです。 あとはこんな感じですね。 これをTTimerのOnIntervalイベントに設定すれば、それなりにできると思います。 var si : TStartupInfo; pi : TProcessInformation; Temp : String; begin FillChar(si,SizeOf(TStartupInfo), 0); if CreateProcess( nil, PChar('C:\WINDOWS\system32\notepad.exe'), nil, nil, false, NORMAL_PRIORITY_CLASS, nil, nil, si,pi) then begin WaitForInputIdle(pi.hProcess, 100);//初期化されるのを待つ sleep(200);//起動後、画面が安定するのを適当に待つ keybd_event(Byte('R'), 0, 0, 0); keybd_event(Byte('U'), 0, 0, 0); keybd_event(Byte('N'), 0, 0, 0); keybd_event(VK_RETURN, 0, 0, 0); sleep(1000);//run[ENTER]の処理を適当に待つ keybd_event(VK_SNAPSHOT, 0, 0, 0);// PrintScreenでスナップショットを取得 sleep(200);//スナップショットが終了するのを適当に待つ TerminateProcess(pi.hProcess, 0); CloseHandle(pi.hProcess); end end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.