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

外部アプリケーション起動でProcessWindowStyle.Hiddenがきかない

環境/言語:[Win7 VB.NET Framework2.0]
分類:[.NET]

皆様、お世話になります。

外部アプリケーションをサイレントで実行したく、下記の方法を用いていますが、
ユーザーを指定するとProcessWindowStyle.Normalのような設定で実行されてしまいます。
何かお気づきの点がありましたら、教えてください。
よろしくお願いします。

Dim ProcessStartInfo As ProcessStartInfo
    Dim p As Process
Dim Pass As New Security.SecureString
Dim sPass$ = "PASSWORD"
    Dim C As Char
Dim i%

ProcessStartInfo = New ProcessStartInfo("AAA.exe", " / A /B")
ProcessStartInfo.WindowStyle = ProcessWindowStyle.Hidden
ProcessStartInfo.CreateNoWindow = True

    'ユーザー指定開始(これが無ければHiddenは有効になる)
For i = 0 To sPass.Length - 1
C = CType(Microsoft.VisualBasic.Mid(sPass, i + 1, 1), Char)
Pass.AppendChar(C)
Next
ProcessStartInfo.UserName = "Yamada"
ProcessStartInfo.Password = Pass
ProcessStartInfo.UseShellExecute = False
    'ユーザー指定終了

p = Process.Start(ProcessStartInfo)

p.WaitForExit()
Process.Start メソッド (ProcessStartInfo) (System.Diagnostics)
http://msdn.microsoft.com/ja-jp/library/0w4h05yb.aspx

に次のような記述があります。

「StartInfo インスタンスの UserName プロパティと Password プロパティが設定されている場合、アンマネージ関数 CreateProcessWithLogonW が呼び出されます。これにより、CreateNoWindow プロパティの値が true の場合や、WindowStyle プロパティの値が Hidden の場合でも、新しいウィンドウでプロセスが開始されます。」

まさにこのことではないでしょうか。
管理人さま
ご回答ありがとうございます。

おっしゃる通り、「まさにこのこと」のようです。
しっかりとライブラリを読むべきでした。
この質問は解決済みとして、別の方法で「ユーザー指定の外部アプリケーション実行」を実現したいと思います。
その際は、また質問させていただくかも知れませんのでよろしくお願いします。

ありがとうございました。
解決済み!

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