DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ユーザ切り替え時のプロセス起動について

環境/言語:[VB.NET .NET Framework 3.5 SP1]
分類:[.NET]

OS:Windows Vista Business
言語:VB.NET


いつもお世話になっております。

今回は「ユーザ切り替え」を使用したバックグラウンドユーザのプロセス起動について
皆さんの意見を聞きたいと思い、投稿させて頂きます。

まず、バックグラウンドユーザについてですが、
ここでは現在デスクトップが表示されているユーザをフォアグラウンドユーザ(FU)とし
ログオン中でありながら、デスクトップが表示されていないユーザをバックグラウンドユーザ(BU)とします。

FU操作中にBUのあるプロセスAが起動する(タイマーイベントによる)のですが、
このAプロセスに表示されているラベルコントロールの色が、どうも反転表示されているようなのです。

AプロセスのラベルをBuleに設定するとRedに
CyanならYellowになります。
また、(0,128,255)なら(255,128,0)の色で表示されているように見えます。

詳しい再現手順は以下の通りです。

@BUでログインし、タイマーイベントでAプロセスが起動するように仕込む
ABUをログアウトせず「ユーザ切り替え」しFUでログインする。
BFUのままタイマーイベント発生まで待つ。
C再び「ユーザ切り替え」を利用し、BUへログインする。

すると、「ラベルコントロールの色が設定と違う」という現象になります。
(もちろん、通常起動するときちんと設定色になります。)
この時ログに出力すると、ラベルコントロールのプロパティは正しく設定されているのですが、
明らかに表示している色が違うのです。

この現象は現在手元にあるVistaPC全てで再現するため、
OSもしくは.NET Frameworkの障害(もしくは仕様)と思うのですが、
ちょっと調べた限りでは情報が得られませんでした。

そもそも、BUでプロセス起動することが駄目なのでしょうか?

何卒、ご教授お願い致します。
以上、よろしくお願い致します。
自己レスです。

VB6.0の話ですが、以下のサイトが参考になるかもしれません…
http://www.mb.ccnw.ne.jp/garger-studio/gameprog/vb0173.html

引き続き、よろしくお願い致します。

DOBON.NET | プログラミング道 | プログラミング掲示板