アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (3件)

VB6は7とvistaには対応していません。



実行ファイルを右クリックのプロパティの互換性で互換モードXPを
選べばできるかもしれません。

この回答への補足

Windows7とVISTAで試しましたが、全く同じ症状でした。なお、No.2の方の方法で、問題はあるものの、実行できましたので、タスクスケジューラはACTIVATEまでは実行しないということのようです。(VB2000など互換性のあるものでは実行できるのかわかりませんが)。ありがとうございました。

補足日時:2011/04/04 21:54
    • good
    • 0
この回答へのお礼

早速の回答をありがとうございます。
実行したい環境が職場のコンピュータで、今テストできません。月曜日に早速やってみます。
VB6がVistaなどに対応していないことは知っていましたが、自作のプログラムが一部の機能を除いては問題なく動くので、互換性のことはうたがはず、何か設定の問題でもあるのかと思っていました。
結果が出ましたら、報告します。

お礼日時:2011/04/01 21:33

フォームが最前面になっているが、アクティブになっていないからです。



>>その中のACTIVATEから

Private Sub Form_Load()
に変えたら動きます。


http://hm.cocolog-nifty.com/hmpage/2009/03/windo …

この回答への補足

指摘の方法でWindows7とVISTAで実行されることが確認できました。ついでにInitializeでも起動されることが確認できました。実用的にはこれで十分なのですが、実行中、画面にフォームが表示されないなど、起動していることが全くわからない状態でした。起動は、当方のVB6プログラムがログファイルを作成するので、それを調べて確認しました。
当初Activateのところで実行したかったのは、フォームを画面に表示して、実行している様子を見たいためでした。このようなことは出来ないのでしょうか。また、フォームが表示されていない状態(Load または Initailize の段階で)、フォーム内のラベル等に書き込みを行っています。今回エラーはでませんでしたが、特に問題は無いのでしょうか。
よろしくお願いします。

補足日時:2011/04/04 22:14
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
今回のプログラムは
Private Sub Form_Load() (変数の定義などを行っている)
Private Sub Form_Activate()
の両方を入れています。

VBAのプログラムではLoad、Activateと実行され、ここでフォームが表示されているようなので、VB6も同じと思い、Activateのところで実際の動作をさせています。(VBAの場合はLoadのところではフォームが表示されませんでした。)

実行環境が職場なので、月曜日にテストしてみます。

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

お礼日時:2011/04/03 01:37

起動時に


Me.Show
DoEvents
追加してください。
    • good
    • 1
この回答へのお礼

ご指摘の方法で、確かにフォームが表示されました。

メインフォームが最初に表示される過程は制御できないと思い込み、一度も試しておりませんでした。
コロンブスの卵のようなことでしたが、これで全て問題が解決しました。

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

お礼日時:2011/04/06 16:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!