3

WinForms GUI を使用して非常に単純な Powershell スクリプトを作成しました。すべてが意図したとおりに機能しますが、PowerShell で .ps1 スクリプトを実行すると、最初に黒い空のコンソール ウィンドウが表示され、次に GUI が表示されます。

とにかく、コンソール ウィンドウを非表示にするには?

よろしくお願いします

4

5 に答える 5

2

私は一年前にこの件について小さな記事を書きました (フランス語で申し訳ありません)。

これは、小さな VBS スクリプトを使用して PowerShell を開始し、ウィンドウを非表示にする一般的なソリューションです (トリックは最後の,0 にあります)。

Set Args = Wscript.Arguments
'MsgBox  "Chemin LDAP: " & Args(0)
'MsgBox  "Classe: " & Args(1)

Set objShell = CreateObject("Wscript.Shell")
objShell.Run "c:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -nologo -Noninteractive -file c:\SlxRH\RhModif.ps1 " & chr(34) & Args(0) & chr(34) , 0

また、 slxPShell2.EXEというコンソールのない実行可能ファイルに PowerShell を埋め込みました。

于 2012-05-19T19:47:17.410 に答える
1

このソリューションは、起動後に Powershell ウィンドウを最小化します。Powershell ウィンドウが開き、外部コードを使用せずに消えます。スクリプトの先頭に置きます。

$t = '[DllImport("user32.dll")] public static extern bool ShowWindow(int handle, int state);'
add-type -name win -member $t -namespace native
[native.win]::ShowWindow(([System.Diagnostics.Process]::GetCurrentProcess() | Get-Process).MainWindowHandle, 0)
于 2020-06-08T21:54:25.017 に答える
1

上記の方法ではうまくいかないことがわかりました。私はこれを使用しました:

Set objShell = CreateObject("WScript.Shell")

objShell.Run "CMD /C START /B " & objShell.ExpandEnvironmentStrings("%SystemRoot%") & "\System32\WindowsPowerShell\v1.0\powershell.exe -file " & "YourScript.ps1", 0, False

Set objShell = Nothing

それが役立つことを願っています。

于 2013-05-17T10:38:13.747 に答える