別プロセスの実行を SW_SHOWMINNOACTIVE で行うには?


ぴこ  2009-04-21 20:20:12  No: 145860

VB2008 で別プロセスを実行する場合に SW_SHOWMINNOACTIVE で実行したいのですが、可能でしょうか?

Process.Start では WindowStyle に Normal、Hidden、Minimized、Maximized しか指定できません。

よろしくお願いします。


魔界の仮面弁士  2009-04-21 21:30:15  No: 145861

Win32_ProcessStartup クラスの ShowWindow プロパティに SW_SHOWMINNOACTIVE (=7) を設定し、それを Win32_Process クラスの Create メソッドに引数として渡してみてはどうでしょうか。


魔界の仮面弁士  2009-04-21 21:53:39  No: 145862

http://msdn.microsoft.com/en-us/library/aa389388.aspx
http://msdn.microsoft.com/en-us/library/aa394375.aspx

Using ps As New System.Management.ManagementClass("Win32_ProcessStartup"), _
      p As New System.Management.ManagementClass("Win32_Process")

    Const SW_SHOWMINNOACTIVE As Integer = 7
    ps("ShowWindow") = SW_SHOWMINNOACTIVE

    Dim args As System.Management.ManagementBaseObject = p.GetMethodParameters("Create")
    args("CommandLine") = "notepad.exe C:\file.txt"
    args("CurrentDirectory") = "C:\"
    args("ProcessStartupInformation") = ps

    Dim result As System.Management.ManagementBaseObject = p.InvokeMethod("Create", args, Nothing)

    Dim retValue As Integer = CInt(result("ReturnValue"))
    Dim pid As Integer = CInt(result("ProcessId"))
    System.Console.WriteLine("結果={0}, プロセスID={1}", retValue, pid)
End Using


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加