• ベストアンサー

WindowsタスクスケジューラからのEXEファイル実行

VB6のEXEファイルが通常実行すると正常に動作しますが、Windowsタスクスケジューラから実行すると「メモリ不足です」と表示され実行できません。 原因と解決方法を教えてください。

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

  • ベストアンサー
  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.5

こうなると、もう環境に依存した話で、再現するのは難しそうですね。 思いつくものとしては (1) 対象ファイルないし一時ファイル用フォルダを置いているドライブが、USBによる外付けHDDやその他のリムーバブルメディア上ということはないでしょうか。 (2) 対象ファイルないし一時ファイル用フォルダを置いているドライブが、LANによるネットワーク接続ドライブ上ということはないでしょうか。 こういった、起動してから認識を完了するまで時間のかかるドライブ上にファイルがあるようであれば、起動直後にプログラムを実行しても正常に動作しないことが予想されます。 このせいだとすれば、プログラムの最初で30秒とか1分とか(もしシステム側の事情が許せばもっと。とにかく充分な時間)停止しておいて、それから必要な動作をするようにしておけば、問題は解消します。 時間待ちの方法はいろいろ考えられますが、例えば (1) 起動時の時刻(Time)を取得しておいて、現在のTimeとの差が必要な待ち時間になるまでDoEventsを繰り返す。 (2) 起動時に表示するFormにTimerを貼っておき、必要な待ち時間をIntervalに設定しておく。Timerイベントが発生したら、必要な動作に移る。 こんなところでしょうか。

atsushi758
質問者

お礼

ありがとうございました。

atsushi758
質問者

補足

お世話になります。 待ち時間を300秒取ってEXEファイルを起動させましたが、うまくいきませんでした。今までと同じでスタンバイ状態から起動させるときのみTXTファイルが開けません。 以前使用していたパソコン(Windows98)で試したところ、問題なく起動しました。 どうしたもんでしょう? OSを再インストールしたほうがよいでしょうか?

その他の回答 (4)

  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.4

テキストファイルを1MBから10MBまで6種類用意して、同じプログラムをスタンバイ状態からタスクスケジューラで実行しましたが、どれもエラーは発生しませんでした。 要因は何か別のところにありそうです。

atsushi758
質問者

補足

お世話になります。 進捗状況を報告します。 100バイト程度のファイルも同様に開けませんでした。 またテストのためタスクスケジューラを数回起動させると、以下のような2つの変な現象が起こることが判明しました。 1.ログオン状態でも全くタスクスケジューラが起動しなくなる。 2.VBで作成したEXEファイルだけがごみ箱に捨てられなくなる。(「アクセスできません」と表示される。) これらの現象は、OS(XP)を再起動させると解消される。 説明がうまくできなくて、すみません。 OS側の特別な設定が必要なんでしょうか?

  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.3

再度の確認ですが、その「単純にテキストファイルを開くだけのEXE」で開こうとしているテキストファイルのサイズはどのくらいでしょうか。 先の回答にありました4.78MBのファイルでしたら、それを小さなもの(数百バイトのもの)にした場合は動作するでしょうか。 ※質問にもテクニックがあります。回答者が質問者の状況をいろいろ想像する必要がないように条件を整えることもその1つです。条件が限定されるほど回答しやすい=回答が得られやすいわけですから、質問者側で試せることがあるなら何でも一通り試してその結果を添えておくほうが効果的ですよ。

  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.2

うーん、詳細なコードなんて全く必要ないのですが。 1行もプログラムのない、フォームをただ表示するだけのプログラムをVBで作成して、そのEXEでも同じエラーになりますか? あるいは、EXEとしてメモ帳(notepad.exe)を使っても同じエラーになりますか? 同じエラーになるのであれば、エラーの原因はVBのプログラムとは関係ない可能性が高いわけです。そうなれば、回答者側でも同じ用具立てが用意できるわけですから、回答のために何か調査しようということもできるようになります。 また、エラーにならない(正常に実行される)のであれば、エラーの原因はVBのプログラム内にある可能性が高いわけです。そうであれば、改めて「プログラム自体に問題がある」と意識してプログラムの内容を調査すればよいということになります。

atsushi758
質問者

補足

お世話になります。 単純にテキストファイルを開くだけのEXEを作成し、試してみました。結果は同じでうまくいきませんでした。 Dim xl As Object Set xl = CreateObject("Excel.Application") xl.Visible = True xl.Application.Workbooks.OpenText FileName:="C:\test.txt" これだけのプログラムです。 いろいろ調べましたが、よくわかりません。

  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.1

現象が発生するVBのプログラムの内容と、その現象を再現させるための手順を書いていただければ、回答者はとても楽ができるので、回答がとても得られやすくなるかと思います。

atsushi758
質問者

補足

お手数をおかけして申し訳ありません。 EXEファイルからxlsファイル(1.94MB)とtxtファイル(4.78MB)をエクセルで開き、データ処理をさせます。 ログオン状態でタスクスケジューラからEXEファイルを起動させた場合、問題なく実行されます。 スタンバイ状態でタスクスケジューラからEXEファイルを起動させると「メモリ不足です。完全に表示できません。」と表示(エクセルのエラー)され、txtファイルを開くことができません。(xlsファイルは開けます。) 詳細なコードは企業秘密のため表記できません。(ホント申し訳ありません。) 以上の事しか記せませんが、この問題は解決できるでしょうか?

関連するQ&A

  • タスクスケジューラでEXEが動かない

    教えて下さい。 あるEXE(VisualSutudiio2005でつくった)を、 タスクスケジューラで自動実行させようとしたのですがうまく動きません。 (スケジューラからバッチファイルを起動してバッチファイルないでEXEを起動しています) 正常に終了したかのうように終わってしまいます。 ※バッチファイルを普通に実行した場合は正常に動作します。 何が原因なのでしょうか? どうすれば自動実行できるようになるのでしょうか? よろしくお願い致します。

  • タスクスケジューラでVB6のプログラムが実行しない

    VB6で作ったプログラムをWindows7において、タスクスケジューラで起動させたが、実行しない。 フォ-ムは1個だけで、その中のACTIVATEから、同フォーム内のルーチンを呼び出して目的の動作をさせるようになっています。手動で起動させると、目的の動作をして終了するが、タスクスケジューラではフォームを表示した状態で止まっている。そのフォームをクリックすると目的の動作を行う。なお、フォームはその時実行されている別のVB6のフォームの前面[最前面)に表示されている。目的は1日1回自動的に特定ファイルの状態を調べたいだけです。 よろしくお願いします。

  • exeファイルで実行できない

    VB6.0のexeファイルでのアプリ稼動ができません。プロジェクトファイルを開いて実行すれば稼動するのですが、生成したexeファイルを実行した場合は稼動しません。 いったいどういう原因なのでしょうか?リリースモードでコンパイル云々という話でしょうか? ただ他にもVBのアプリが存在するのですが、そちらはexeファイルの実行だけで問題なく稼動します。 OS Windows XP(SP1) 開発環境 VB6.0 (SP5) .NET Framework 1.0? 原因が分かる方、推測できる方いらっしゃったら、教えていただけないでしょうか?宜しくお願いします。

  • vb.netで作成したexeファイルが実行できない

    vb.netのexeファイルでのアプリの一部の動作ができません。 プロジェクトファイルを開いて実行すれば稼動するのですが、生成したexeファイルを実行した場合に一部の動作が稼働できません。その動作以外の動作は稼働します。 その稼働しない動作はデバイスの状態変更(有効から無効)にする動作です。 原因が分かる方、推測できる方がいらっしゃったら、教えていただけないでしょうか? 宜しくお願いします。 exeファイルは監視exeでデバイスの接続時にフォームが表示するようにタスクスケジューラーで常時監視をしています。 また、通常時は画面上には見えないように「ShowInTaskbar」をFalseにしており、フォームは通常時最小化されている状態になります。

  • exeファイルが実行できません

    保存したexeファイルを実行できません。 「実行する」のボタンをクリックすると、「Extracting setup files...」と表示されたウィンドウが一瞬現れてすぐ消えます。その後、「問題が発生したため、setup wizard を終了します。ご不便をおかけして申し訳ありません。」とエラーが出ます。 どうしたらこのファイルを実行できるのでしょうか? 解決策を教えてください。よろしくお願いします。

  • VISTAでのexeファイルの実行について

    システム運用管理に携わっている者です。 VISTAでのプログラム実行の動作について教えてください。 ユーザ権限で、あるプログラム(VB.NETで作成されたexeファイル)を 実行すると何も起きません。同じプログラムを「管理者として実行」 で実行すると、管理者のパスワードが要求され、入力すると正常に 動作します。 やりたいことは、ユーザ権限でパスワードの入力なしでこのプログラム を実行することなのですがどうすればよいかわかりません。 なお、別の部署のVISTAのパソコンではこの現象は発生しません。 2台のパソコンは共に購入したままの状態ですので、特に設定をした というようなことはないと思います。 大変困っていますので、どなたか原因と対応方法をご教示いただけない でしょうか。 不要な情報かもしれませんが、ウィルス対策ソフトは、 ノートンアンチウィルス2007です。 よろしくお願いいたします。

  • 作ったEXEファイルを他PCで実行できません

    VB.NET2008でEXCEL2007のファイルを作成するEXEを作りました。開発環境OSはXPです。コンパイル後にできるReleaseフォルダを他PC(OSはWindows2003サーバー、EXCEL2007インストール済み)にコピーして実行したのですが、何事もなく終わってしまいます。このEXEを実行すると最初にメッセージボックスを表示し、テキストファイルにログを書き込むようにプログラムしていますが、サーバー機ではメッセージボックスは表示されず、ログファイルも作成されません。同じ開発機で作成した別のEXEは正常に実行してExcelファイルも作成されます。 よろしくお願いします。

  • タスクスケジューラでのtelnet実行について

    よろしくお願いいたします。 ネットワーク機器に定期的にログインチェックを行う必要が生じたため、 バッチファイルとVBSを作成し、手動で実行すると問題なく動作しました。 ところがWindowsタスクスケジューラでユーザーがログオフした状態で実行すると 異常終了してしまいました。 処理の流れは以下になります。 (1)バッチファイル起動 (2)バッチファイルが適当な名前を付けたコマンドプロンプトを起動。 (3)バッチファイルがVBSを起動 (4)VBSが(2)で起動したコマンドプロンプトをアクティブにする。 (5)VBSがSendKeysメソッドでコマンドプロンプト上でtelnetを実行 原因が分からず困っています。 ユーザーがログオフしている環境ではtelnetは実行できないものなのでしょうか。 どうぞご教授下さい。

  • EXEの実行

    Windows2000+IISで実行しています。EXEを実行して画像処理を行うことになりました。EXEそのものはテキストファイルをパラメータにします。 PHPから、このEXEを起動しないといけません。マニュアルを読んでも、EXEの実行はないのですが、出来るのでしょうか?あるとすれば、どのような方法なのでしょうか。よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • EXEの実行って??

    このカテゴリかどうかも怪しいのですが、聞きたいことがあります。 あるサイトでVB6で作ったゲームがあってそれを落としたいのですが、やり方が全くわかりません・・・ 以下2ファイルを同じ場所へ置き、EXEを実行してください。 http://・・・・・・・・・・・・・・・.exe http://・・・・・・・・・・・・・・・.rar (「・・・」は内容です) よろしくお願いします。

専門家に質問してみよう