C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: Vista透過性のあるフォームの表示について


(過去ログ 80 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■47525 / inTopicNo.1)  Vista透過性のあるフォームの表示について
  
□投稿者/ maruma (12回)-(2010/03/04(Thu) 20:59:03)

分類:[.NET 全般] 

OS:Windows Vista Business SP1
言語:VB.NET(2008)

いつもお世話になっております。
今回はVista OSの起動時の動作について質問させて下さい。

問題が起きた事象は以下の通りです。
1.OS起動
2.ログイン
3.スタートアップによるA.exeの起動

ここでA.exeが表示されるはずなのですが、フォームが表示されません。
A.exeは透過性のあるフォームを持っていますが、
ディスプレイ上にはA.exeの文字列だけが不気味に存在しております。

なお障害が発生してから、再現出来ないままです。

状態としては、「画面の設定」→「色(c) 16ビット」に設定した状態と
酷似しております。
(障害発生時、再度プロセスを起動すると正常に表示したので、設定間違いではないはず…)

アプリケーション側から透過フォームを表示可能かどうか、判断できますでしょうか?
現在、スタートアップ用のVBScript上で判断付かないかと思考錯誤しております。
(ソース凍結間近のため…)
なお、Win32_DisplayConfigurationからのBitsPerPel取得では上手くいきませんでした…
(レジストリ(BitsPerPel)の情報を取得している?)

以上、よろしくお願い致します。

引用返信 編集キー/
■47527 / inTopicNo.2)  Re[1]: Vista透過性のあるフォームの表示について
□投稿者/ Jitta on the way (575回)-(2010/03/04(Thu) 22:32:14)
No47525 (maruma さん) に返信
> OS:Windows Vista Business SP1
> 言語:VB.NET(2008)
>
> いつもお世話になっております。
> 今回はVista OSの起動時の動作について質問させて下さい。
>
> 問題が起きた事象は以下の通りです。
> 1.OS起動
> 2.ログイン
> 3.スタートアップによるA.exeの起動
>
> ここでA.exeが表示されるはずなのですが、フォームが表示されません。
> A.exeは透過性のあるフォームを持っていますが、
> ディスプレイ上にはA.exeの文字列だけが不気味に存在しております。
>
> なお障害が発生してから、再現出来ないままです。
>
> 状態としては、「画面の設定」→「色(c) 16ビット」に設定した状態と
> 酷似しております。
> (障害発生時、再度プロセスを起動すると正常に表示したので、設定間違いではないはず…)
>
> アプリケーション側から透過フォームを表示可能かどうか、判断できますでしょうか?
> 現在、スタートアップ用のVBScript上で判断付かないかと思考錯誤しております。
> (ソース凍結間近のため…)
> なお、Win32_DisplayConfigurationからのBitsPerPel取得では上手くいきませんでした…
> (レジストリ(BitsPerPel)の情報を取得している?)
>
> 以上、よろしくお願い致します。
>


半年後に読んで、理解できるでしょうか?


> A.exeは透過性のあるフォームを持っていますが、
> ディスプレイ上にはA.exeの文字列だけが不気味に存在しております。
まず、この辺がイミフ。「半透過なのに、全透過で表示される」と言ってますか?


> 状態としては、「画面の設定」→「色(c) 16ビット」に設定した状態と
> 酷似しております。
酷似しているって…色数を落とすと、透過は出来なくなったと思うのですが、違ったかな?


> なお障害が発生してから、再現出来ないままです。
同じ環境でも、二度目の発生が無い、と言ってますか?それとも、デバッグが出来ないと言ってますか?
引用返信 編集キー/
■47529 / inTopicNo.3)  Re[2]: Vista透過性のあるフォームの表示について
□投稿者/ maruma (13回)-(2010/03/05(Fri) 00:14:44)
No47527 (Jitta on the way さん) に返信

Jitta on the way さん、返信ありがとうございます。

> 半年後に読んで、理解できるでしょうか?

文章が稚拙で申し訳ございません。
おそらくは私本人でも理解出来ないでしょう…


>>A.exeは透過性のあるフォームを持っていますが、
>>ディスプレイ上にはA.exeの文字列だけが不気味に存在しております。
> まず、この辺がイミフ。「半透過なのに、全透過で表示される」と言ってますか?

その通りです。まるでそのフォームが存在しないような扱いです。
なお、フォームのOpacityプロパティは1%で設定されています。

>>状態としては、「画面の設定」→「色(c) 16ビット」に設定した状態と
>>酷似しております。
> 酷似しているって…色数を落とすと、透過は出来なくなったと思うのですが、違ったかな?

透過出来ないから、フォームが「無い」ものとして扱われた、
ということでしょうか??

>>なお障害が発生してから、再現出来ないままです。
> 同じ環境でも、二度目の発生が無い、と言ってますか?それとも、デバッグが出来ないと言ってますか?

そうです。
同環境で、再発しません。
デバッグは可能ですが、16ビットでも32ビットでも正常に動作しております。


要領を得ない内容で申し訳ございません。
ご教授、よろしくお願い致します。
引用返信 編集キー/
■47533 / inTopicNo.4)  Re[3]: Vista透過性のあるフォームの表示について
□投稿者/ Jitta on the way (576回)-(2010/03/05(Fri) 07:39:54)
No47529 (maruma さん) に返信

>>半年後に読んで、理解できるでしょうか?
>
> 文章が稚拙で申し訳ございません。
> おそらくは私本人でも理解出来ないでしょう…

稚拙なのではありません。状況説明が足りないのです。半年後、つまり状況を忘れた頃 nearly equal 状況を知らない人に、状況を伝えることを第一としてください。


> >>なお障害が発生してから、再現出来ないままです。
>>同じ環境でも、二度目の発生が無い、と言ってますか?それとも、デバッグが出来ないと言ってますか?
>
> そうです。
> 同環境で、再発しません。
> デバッグは可能ですが、16ビットでも32ビットでも正常に動作しております。

まず、どの程度重要な問題だと分類していますか?絶対に直さなければならない?
再発させられないなら、それほど重要なものとしなくて良いのでは?と考えます。
特に、発生原因を突き止められないなら、修正が適切かどうかの判断が出来ません。直したことの妥当性が検証出来ないですよね。その辺は、どの様にお考えですか?

ごめんなさい、ここの「デバッグできない」は、「スタートアップでは発生するが、デバッグするために起動したときは発生しない」の意図でした。


今考えられる状況としては、起動の順番が関係しているかな、と。OS の起動直後、すぐにログオンすると発生するとか。
それと、色数の設定を変えると、必ず発生するのでしょうか。《状態としては、「画面の設定」→「色(c) 16ビット」に設定した状態と酷似しております。》は、そういう意味?
引用返信 編集キー/
■47534 / inTopicNo.5)  Re[4]: Vista透過性のあるフォームの表示について
□投稿者/ maruma (15回)-(2010/03/05(Fri) 09:59:59)
No47533 (Jitta on the way さん) に返信

itta on the way さん、返信ありがとうございます。


> 稚拙なのではありません。状況説明が足りないのです。半年後、つまり状況を忘れた頃 nearly equal 状況を知らない人に、状況を伝えることを第一としてください。

仰る通りだと思います。
読み返しもせずに投稿してしまいました。
本人はおろか、他人が見ても有益な情報かどうか判別が難しいですね。
以後、気を付けます。


> まず、どの程度重要な問題だと分類していますか?絶対に直さなければならない?
> 再発させられないなら、それほど重要なものとしなくて良いのでは?と考えます。

ユーザーインターフェースに係わる問題なので、「回避すべき問題」と考えています。
「再発しない根拠」が得られれば、一番良いのですが、
少なくとも「発生する理由」は突き止めるべきだと考えています。

> 特に、発生原因を突き止められないなら、修正が適切かどうかの判断が出来ません。直したことの妥当性が検証出来ないですよね。その辺は、どの様にお考えですか?

原因を突き止めずに、予測で修正、対処することは基本的に考えていません。
(原因が突き止められず、やむを得ない場合は、他の機能への影響を考慮した上で対処します)
なので、「どうすれば直りますか?」ではなく、「何故発生しますか?」と質問したいのです。
(この時点で投稿内容と違いますね…すみません)


>
> ごめんなさい、ここの「デバッグできない」は、「スタートアップでは発生するが、デバッグするために起動したときは発生しない」の意図でした。

すみません。勘違いしました。
その通りです。

> 今考えられる状況としては、起動の順番が関係しているかな、と。OS の起動直後、すぐにログオンすると発生するとか。

おそらくは私もその関係だと思います。
ディスプレイアダプタのドライバー等が立ち上がっていないのではないか
と思いますが、その状態をアプリケーション側で判断出来るか?と考えています。

> それと、色数の設定を変えると、必ず発生するのでしょうか。《状態としては、「画面の設定」→「色(c) 16ビット」に設定した状態と酷似しております。》は、そういう意味?

これは必ず発生します。

以下に詳しい環境を示します。

CPU:Intel Core2 Quad CPU @2.83GHz
メモリ:4.00GB
種類:32ビットオペレーティングシステム
ディスプレイアダプタ:Intel Q45/Q43 Express Chipset


以上、よろしくお願い致します。
引用返信 編集キー/
■47608 / inTopicNo.6)  Re[5]: Vista透過性のあるフォームの表示について
□投稿者/ maruma (16回)-(2010/03/09(Tue) 14:59:16)
自己レスです。

透過フォームについては、画面起動時にマウスのイベントを取得出来るかどうかで
フォームが存在するかどうかをチェックし、
無い場合はフォームの再描画を行うような案を考えました。
(各種Onメソッドによるイベントの発生は16bitカラー32bitカラー共に発生します)

しかし…とても声を大にして言えるような対応方法でもないため、
「この様な方法はどうか?」や「これは検証しましたか?」等
アドバイスお待ちしております。

以上、よろしくお願い致します。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -