• ベストアンサー

VC++でタスクファイルの作成

VC++のNetScheduleJobAdd()を使って毎日1時間ごとに起動するタスクファイルを作ろうとしているのですが、JobTimeの指定がどうもうまくいきません。 詳しい方がいましたら教えていただけないでしょうか? また、「実行するアカウント名」を動的に指定することはできるのでしょうか? 例えば上記のタスクファイル生成EXEを起動するユーザによって「実行するアカウント名」が変わるなど。 たくさん質問してすいませんがよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

>すいません。taka_tetsuさんは詳しそうなので追加質問させてください。 いえ、別に。ヘルプを読んだだけですが。 >NetScheduleJobAdd()でタスクを生成すると生成したタスクファイル名がAt1となってしまうのですが、このファイル名をプログラムで指定することはできるのでしょうか? NetScheduleJobAdd()ではできません。 本来、NetScheduleJobAdd()はATコマンドのスケジュールを追加するAPIです。NT3.1のころから存在します。そのため、NT4位から追加されたタスクスケジューラにジョブを追加するAPIではないのです。 実際、ATコマンドでスケジュールを追加した場合、AT?といったスケジュールがタスクに追加されますが、タスクスケジューラで追加したスケジュールはATコマンドには反映されません。 つまり、詳細な設定をしたいのであれば、ITaskを使ってくださいねということです。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

無理でしょう。 1日のうちの何時にという指定しかできません。 タスクを手動で追加したときもできませんよね。 実行アカウントは、このAPIを使う限りは無理です。 COMであるITaskを使用する必要があります。 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/taskschd/taskschd/itask.asp

noname#11718
質問者

補足

すいません。taka_tetsuさんは詳しそうなので追加質問させてください。 NetScheduleJobAdd()でタスクを生成すると生成したタスクファイル名がAt1となってしまうのですが、このファイル名をプログラムで指定することはできるのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 【VC++】インストーラーの削除

    VC++2005の.NETでアプリケーションを作成しています。 VC++のプロジェクト追加にて、 新しいプロジェクト⇒セットアッププロジェクト を選択し、「.msi」ファイルをビルド生成して、 インストーラーを作成しました。 このインストーラーを実行し、指定のフォルダにアプリのexeファイルは生成することが出来ました。 しかし、このアプリを実行すると、同階層に設定ファイルが生成されるのですが、 アプリ終了後、「.msi」ファイルを再度実行して、インストールファイルの削除をする際に、 インストールフォルダと、その中に設定ファイルのみ残ってしまう状態となってしまいます。 削除時には、設定ファイルも一緒に削除したいのですが、 削除対象のファイルを指定することはできないのでしょうか? ちなみに設定ファイルの状態として、下記となります。 ・起動時に生成 ・ファイル名は同じ⇒よって生成の度に上書き ・生成場所はexeファイルと同階層

  • タスクマネージャーが起動しない

    [Ctrl]+[Alt]+[Del]でタスクマネージャが起動しなくなりました ツールバーの上で右クリック→『タスクマネージャ』でも起動せずにエラーメッセージも出ず無反応です 同じく『ファイル名を指定して実行』からtaskmgrを指定しても無反応です また、C:\WINDOWS\system32フォルダの中に、taskmgr.exeがあるのですがC:\WINDOWS\system32\taskmgr.exe 指定されたパスは存在しません。 パスが正しいか確認してください。とエラーを返されます。 タスクバーのあいているところで右クリックのタスクマネージャーも開きません [Ctrl] + [Shift] + [Esc] でも起動できず 「スタート」「ファイル名を指定して実行」で「taskmgr」と入力もNG レジトリエディタで スタート → 「ファイル名を指定して実行」  → 「regedit」と入力し、OK HKEY_CURRENT_USER→Software→Microsoft→Windows→CurrentVersion→Policiesとたどると 「System」が無い。 これが原因でしょうか? レジストリの書き方を教えていただけませんか? OS WinXP Home Edition らと

  • タスクマネージャが起動しない

    ある時から[Ctrl]+[Alt]+[Del]でタスクマネージャが起動しなくなりました ツールバーの上で右クリック→『タスクマネージャ』でも起動せずにエラーメッセージも出ず無反応です 同じく『ファイル名を指定して実行』からtaskmgrを指定しても無反応です ほとほと困っていたのですが、マイドキュメントの中にtaskmgr.exeがあってそれを実行するとタスクマネージャが起動しました 一体原因は何なのでしょうか?また、どのようにすれば元の状態に戻せるでしょうか? よろしくお願いいたします

  • 自動起動タスクを実行するユーザーのアクセス権について

    WindowsServer2003StandardEditionであるプログラムを自動起動させるために、タスクスケジューラにタスクを登録しました。タスクはサーバーがログオフされた状態でも実行される必要があります。 このタスクの実行ユーザーをAdministratorに指定した場合には、正常に実行されるのですが、一般ユーザー(ローカルUsersのメンバー)を指定した場合には、タスクが実行されません。 一般ユーザーで実行したいのですが、何を設定すればよいでしょうか? 漠然とした質問で申し訳ありませんが、何かヒントだけでももらえればと思います。 タスクの実行に際してアクセスされるファイル(EXEやログファイルなど)へのアクセス権はフルコントロールに設定しています。 WindowsNTの時には、ユーザー権利の設定で「サービスとしてログオン」というような設定がありましたが、この設定が不足しているのでしょうか?これだとすれば、どこで設定すればよいのでしょうか。

  • VC++での外部ファイル(batファイル)の実行

    VC++のコード上で.batファイルを実行する必要が出てきたのですが、 VC++で外部ファイルを実行、その結果を受け取るにはどうすればよいのでしょうか? ちなみに使用しようと思っているバッチファイルは、juliusという音声認識エンジンです。 1.go.batからjulius.exeが起動 2.「### read waveform input enter filename->」と言う記述が出てくるので、wavファイルのファイル名を指定してエンター 3.#sentence1: ついに 、 他 団体 戦 。 #wseq1: <s> ついに:ツイニ:ついに:503 、:、:、:10 他:タ:他:188 団体:ダンタイ:団体: #507 戦:セン:戦:520 。:。:。:8 </s> #phseq1: silB | ts u i n i | sp | t a | d a N t a i | s e N | sp | silE のようにcmd.exe上に結果が返ってくる。 この一連の動作を、1のファイル名をVC++上で指定し、 3のcmd.exe上で現れる分をVC++上で受け取る(CStringなりに格納する)ような方法は無いでしょうか。 もし他に良い方法をご存知の方がいましたら、教えていただければ幸いです。

  • タスクマネージャーのファイル名が大文字。。。

    こんにちは! いつもお世話になっています。。。 修正パッチをあてたいアプリケーションがあるのですがその説明書には 【対象のアプリケーションを起動後実行を押すとインストールが開始されます。】 と書いてあるのですが実際起動して実行してみても 【対象のファイルopen.exeが見つかりません。対象のファイルを起動後実行してください】 と表示されます。 実際起動しっかりとしているのですがタスクマネージャーで確認したところファイル名が【OPEN.EXE】と大文字になっていたためファイルを見つけることができなかったのではないかと考えていますが… どうしてタスクマネージャーで表示される名前が大文字になってしまうのでしょうか? また改善する方法などがありましたらぜひ教えてくださいx_x 宜しくお願いします(´;ω;`)

  • タスクスケジュールからのpsshutdownの実行

    環境:Windows2000server こんにちは石ころです。 お伺いしたい件があります。 助言よろしくお願いいたします。 毎日決められた時間にPCを再起動したくて、psshutdown.exeと、タスクスケジュールを使うことにしました。 system32の下にpsshutdown.exeをコピーし、ショートカットを作成する際に「psshutdown.exe -r -t 0」と指定し、作成したショートカットを実行するとPCが再起動しました。 しかし、タスクスケジュールからショートカットを実行しようとすると、system32の下に置いたpsshutdown.exe自体を実行してしまいPCの再起動ができません。 対応方法はあるのでしょうか 再起動のbatファイルの作成もしてみましたが、慣れておらず失敗したためこの方法をとってみました。 助言よろしくお願いいたします。

  • タスクについて

    Windowsのタスクを使って実行ファイルを定期的に実行しようと思うのですが、実行するアカウント名のパスワードが正しくありませんと出て実行することが出来ません。実行するアカウントは特にパスワードを設定していないのですがなぜでしょうか?実行させる方法を教えてください。よろしくお願いします。 OSはXP Proです。

  • タスクマネージャが起動しなくなりました。

    OSはwindowsXPサービスパック3です。 タスクマネージャが起動しなくなりました。 右クリックの起動もCtrl、Art、deleteでも起動しません。 ググって調べ、できることはやってみました。 ・「ファイル名を指定して実行」にtaskmgrと打ち込んで起動 →指定されたパスは存在しません。 ・system32の中にあるtaskmgr.exeを実行 →指定されたパスは存在しません。 ・システムファイルチェッカー →症状変わらず ・スキャンディスク(チェックディスク) →症状変わらず ・ウィルススキャン、スパイウェアのチェック →症状変わらず 他に何か改善方法はありますか? タスクマネージャが起動しないだけで他は問題ないのでOSの再インストールは最終手段として考えています。

  • VC++にて_spawnlpでプロセス起動

    Microsoft VisualC++にて_spawnlpを使用してのプロセス起動について質問です。 環境 OS:WindowsXP MS-Visual C++ 6.0 ----------------------------------------------------------------- int i; char cTask[10][50]; //起動するexeのパス&ファイル名 if(i=0; i<10; i++) { /* プロセス起動 */ ret = _spawnlp(_P_NOWAIT,cTask[pno],cTask[pno],NULL); } ----------------------------------------------------------------- 上記プログラムでcTaskに登録されているEXEを起動させています。 cTaskに登録されているEXEは、どれもVC++にてコンソールアプリケーションとして作成しています。 ですので、エクスプローラにて単体で各EXEを起動させると、10個のコンソールが表示されます。 ですが、上記プログラムにてcTaskに登録されているEXEを起動させると、画面上には1個のコンソールしか表示されません。 タスクマネージャで確認すると、全てのEXEは起動していますので、画面上のコンソールが1個に纏められてしまいます。 各EXE毎に10個のコンソールを表示させるようにしたいのですが、どのようにすればよいのでしょうか? 上記プログラムもVC++のコンソールアプリケーションとして作成しました。