CreateProcessで非表示にならない?


m  2005-08-19 18:49:03  No: 91592

CreateProcessを使いアプリケーションを実行させていますが、
非表示の状態で起動することができません。
どうしてでしょうか?
ちゃんと、非表示の状態で起動するように引数を与えていますが...


Blue  2005-08-19 18:57:08  No: 91593

> ちゃんと、非表示の状態で起動するように引数を与えていますが...
アドバイスをもらいたいならば、あなたが正しいと思ってコーディングした
ソースをのせるべきなのでは?


m  2005-08-19 19:28:15  No: 91594

すいません。コードです。

strCommandline = vbNullString
udtProcessAttributes.nLength = Len(udtProcessAttributes)
udtThreadAttributes.nLength = Len(udtThreadAttributes)
strCurrentDriectory = vbNullString
udtStartupInfo.cb = Len(udtStartupInfo)
udtStartupInfo.dwFlags = STARTF_USESHOWWINDOW
udtStartupInfo.wShowWindow = SW_HIDE

lngResult = CreateProcess(strEXEPath, _
                          strCommandline, _
                          udtProcessAttributes, _
                          udtThreadAttributes, _
                          False, _
                          0, _
                          ByVal vbNullString, _
                          strCurrentDriectory, _
                          udtStartupInfo, _
                          udtProcessInformation)


K.J.K.  2005-08-19 21:46:18  No: 91595

プログラムによっては、非表示で起動しないものもありますよね。
例えば、VB6でも、
Private Sub Form_Load()
    Call Me.Show()
End Sub
としたフォームをメインフォームにしている場合は、非表示には
なりませんし。

まずCreateProcessを使う前に、VB標準のShell関数で、
Call Shell(strEXEPath, vbHide)
で起動させてみて試してみては。


m  2005-08-19 23:14:38  No: 91596

>プログラムによっては、非表示で起動しないものもありますよね。
CreateProcessでは不可能なのでしょうか?


横スマソ  2005-08-20 02:48:25  No: 91597

まず、使っているものがフォームか何かは知らないけれど、それがちゃんと非表示になるものかどうかをまず試してくれと、そんな話だと思うのですー。

コントロールがちゃんと消えて、CreateProcess自体が正しいものであれば、
例えば、CreateProcessが動かないような場所に差し込んであるとか、
CreateProcessが動いていても、他のところに表示するようなコードがあるとか、
他に考えられる原因が、色々あるから、順番に調べて見ましょー。
というだけですー。とおもう。


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

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






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