[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/08/02(Tue) 10:54
投稿者名:mainomama
URL :
タイトル:
スタートアップからExeを起動で非アクティブ VB6
はじめまして。
教えていただきたく、お願いします。
VB6SP5で作成したEXEファイルをスタートアップフォルダにショートカットを入れて起動しています。
順調にWindowsが起動すれば問題ないのですが、無線LANなどで時間が掛かったりすると、メインメニュー画面
が非アクティブになってしまいます。
Load時にタイマーを起動し、30秒後にmenu.showとしてもタイミングによっては非アクティブになります。
画面をクリックすれば良いのはわかりますが、運用上どうしてもアクティブにする必要があります。
必ずではなく、起動のタイミングによるので回避方法が見つかりません。何か良い案はありませんか?
よろしくお願い申し上げます。

投稿時間:2005/08/02(Tue) 11:52
投稿者名:エデン
URL :
タイトル:
Re: スタートアップからExeを起動で非アクティブ VB6
> 順調にWindowsが起動すれば問題ないのですが、無線LANなどで時間が掛かったりすると、メインメ

ュー画面
> が非アクティブになってしまいます。
> Load時にタイマーを起動し、30秒後にmenu.showとしてもタイミングによっては非アクティブにな
りま
す。

「無線LANなどで時間がかかったり」というのは、メニュー表示前にいろいろ処理をやっているという意
味合いだと思いますが、表示前の準備処理が全て整ったことを判定する条件文をつけて、その条件を満
たした時に menu.show すればいいのではないかと思いますが、どうでしょうか?

投稿時間:2005/08/02(Tue) 20:30
投稿者名:mainomama
URL :
タイトル:
Re^2: スタートアップからExeを起動で非アクティブ VB6
エデンさま、回答をありがとうございました。
しかしながら、判定する条件文はどのように考えれば良いのでしょうか?
処理をしているのは、無線LAN接続などの常駐プログラム(システム)です。
システムが完全に立ち上がったという判断はどのようにするのか、具体的に教えていただけませんか?
よろしくお願い申し上げます。

投稿時間:2005/08/03(Wed) 09:23
投稿者名:エデン
URL :
タイトル:
Re^3: スタートアップからExeを起動で非アクティブ VB6
> システムが完全に立ち上がったという判断はどのようにするのか、具体的に教えていただけません
か?
mainomamaさんが作成しているアプリケーションは、本当に「システムが完全に立ち上がった」という判
断が必要なのですか?

例えば「無線LAN接続」で考えてみると、アプリケーションは「無線LANが接続した」という判断ではな
くても、「無線LAN接続したネットワークドライブ上の○○フォルダ(またはファイル)にアクセスできる
か」という判断でもよいのではないですか?
だとすれば、FileSystemObjectなどを使った処理で、判断文を書くことはそれほど難しいことではあり
ません。

「システムが完全に立ち上がった」という漠然とした条件を、「アプリケーションが動作するのに必要
な条件は具体的に何か?」というところまでブレークダウンしていけば、用意すべき条件が見えてくる
ように思います。

投稿時間:2005/08/05(Fri) 14:11
投稿者名:mainomama
URL :
タイトル:
Re^4: スタートアップからExeを起動で非アクティブ VB6
エデンさま。回答をありがとうございます。
完全に立ち上がったという記述があいまいすぎたようです。すみません。
現在問題になっているのは、スタートアップからVBで作成したEXEを起動すると、システム処理により起
動画面が非アクティブになってしまうことがあるという1点です。
画面をクリックできればなんの問題も無いのですが、マウスを接続できない環境なのです。
また、LANが接続できなくてもプログラムは動作可能でなければなりません。
ですから、接続PCにファイルが作れたら・・・・というトリガもできません。

なぜシステムの処理で非アクティブになってしまうかですが、無線LANの接続が影響しているように思え
ます。無線LANを無効にすれば、問題は発生しません。

投稿時間:2005/08/11(Thu) 19:44
投稿者名:mainomama
URL :
タイトル:
一応解決?
こんにちは。
エデンさん、色々と情報をありがとうございました。
1秒タイマー監視で、キーが押されて次の処理に行くまでに画面をアクティブに毎回するということで、
現象は回避されました。
ひとつ気になるのが、マウスで裏画面を(常駐プログラムの画面)非表示にすると、タイミングによっ
て、自分のプログラムも非アクティブになってしまうことがありました。
タイマーでアクティブにしているのは何か問題があるのでしょうか?
今回は、マウスは使わないので、この現象はないと思うのでまあいいかと思うことにしました。
本当に色々とありがとうございました。

投稿時間:2005/08/03(Wed) 10:35
投稿者名:GOD
Eメール:
URL :
タイトル:
Re: スタートアップからExeを起動で非アクティブ VB6
> 順調にWindowsが起動すれば問題ないのですが、無線LANなどで時間が掛かったりすると、メインメ
ニュー画面
> が非アクティブになってしまいます。
>     :
> 運用上どうしてもアクティブにする必要があります。
> 必ずではなく、起動のタイミングによるので回避方法が見つかりません。何か良い案はありません
か?
>
GetActiveWindow APIを使えば現在のアクティブウィンドウが取得できます。必要な時に自分をアクティ
ブに
するとか。
他には常に最前面で表示するようにしてしまうとか。

#なぜ非アクティブではまずいんでしょうか。(これが分かれば違う解決方法もあるかも。)
#例えばSendKeysでキー操作をしてるからとか。

投稿時間:2005/08/05(Fri) 14:40
投稿者名:mainomama
URL :
タイトル:
Re^2: スタートアップからExeを起動で非アクティブ VB6
GODさま。
回答をありがとうございます。
早速、GetActiveWindowを試してみました。
とりあえず、うまく行っているように思えます。
発生頻度が低いので、少し様子をみたいと思っております。

なぜ、非アクティブではまずいかというと、
マウスを接続できない環境なので、非アクティブからアクティブにする術がないのです。
(キーを押しても、画面が非アクティブなので受け付けられない)
操作は全てキーボードのみです。

しばらく様子を見て、良ければまたこのフォームからご報告させていただきます。
本当にありがとうございました。

投稿時間:2005/08/09(Tue) 11:55
投稿者名:GOD
Eメール:
URL :
タイトル:
Re^3: Alt+TABで幸せになれるとか?
> なぜ、非アクティブではまずいかというと、
> マウスを接続できない環境なので、非アクティブからアクティブにする術がないのです。
> (キーを押しても、画面が非アクティブなので受け付けられない)
> 操作は全てキーボードのみです。
>
一応、問題は起きてないのかな。
キーボードだけならALT+TABでウィンドウ切り替えできますが、それじゃだめなのかな?
日数ずいぶん経っているので見てなさそうだけど(笑

投稿時間:2005/08/11(Thu) 19:42
投稿者名:mainomama
URL :
タイトル:
Re^4: Alt+TABで幸せになれるとか?
こんにちは。
GODさん、色々と情報をありがとうございました。
GetActiveWindowではうまく行かないことがあったので、
1秒タイマー監視で、キーが押されて次の処理に行くまでに画面をアクティブに毎回するということで、
現象は回避されました。
ひとつ気になるのが、マウスで裏画面を(常駐プログラムの画面)非表示にすると、タイミングによっ
て、自分のプログラムも非アクティブになってしまうことがありました。
タイマーでアクティブにしているのは何か問題があるのでしょうか?
今回は、マウスは使わないので、この現象はないと思うのでまあいいかと思うことにしました。
本当に色々とありがとうございました。

Alt+TABキーの件ですが、
はっきり構成について言わなかったので済みません。
フルキーボードは接続していないので、Alt+TABで幸せにはなれないのです。(^^;
ボタンで作成した10キーをキーエンコーダというものを使って、USB接続しています。
数字0-9しか入りません。
以上、余談でした。