gpt4 book ai didi

powershell - 打开 PowerShell 脚本并隐藏命令提示符,但不是 GUI

转载 作者:行者123 更新时间:2023-12-02 22:12:22 32 4
gpt4 key购买 nike

我目前通过 .bat 文件打开我的 PowerShell 脚本。该脚本有一个 GUI。我试图把它放在我的脚本中,但它也隐藏了 GUI,并且还不断循环,因为我希望我的 GUI 不断循环:

powershell.exe -WindowStyle Hidden -file c:\script.ps1

我们如何在没有命令提示符的情况下运行脚本,但也不隐藏 gui?如果我们使用 .bat 文件运行脚本,是否也一样?谢谢!

最佳答案

如果您想将控制台隐藏在 GUI 后面,我已经成功使用以下 native 功能:

# .Net methods for hiding/showing the console in the background
Add-Type -Name Window -Namespace Console -MemberDefinition '
[DllImport("Kernel32.dll")]
public static extern IntPtr GetConsoleWindow();

[DllImport("user32.dll")]
public static extern bool ShowWindow(IntPtr hWnd, Int32 nCmdShow);
'

function Show-Console
{
$consolePtr = [Console.Window]::GetConsoleWindow()

# Hide = 0,
# ShowNormal = 1,
# ShowMinimized = 2,
# ShowMaximized = 3,
# Maximize = 3,
# ShowNormalNoActivate = 4,
# Show = 5,
# Minimize = 6,
# ShowMinNoActivate = 7,
# ShowNoActivate = 8,
# Restore = 9,
# ShowDefault = 10,
# ForceMinimized = 11

[Console.Window]::ShowWindow($consolePtr, 4)
}

function Hide-Console
{
$consolePtr = [Console.Window]::GetConsoleWindow()
#0 hide
[Console.Window]::ShowWindow($consolePtr, 0)
}

将上述功能添加到您的表单后,只需调用 Hide-Console在您的 Form_Load 中使用事件:
$OnFormLoad = 
{
Hide-Console
}

如果您需要显示控制台,也许是为了调试,您可以通过调用 Show-Console 轻松地再次显示控制台。功能:
$OnButtonClick = 
{
Show-Console
}

有关号码的更多信息,您可以传递给 ShowWindow您可以查看 ShowWindow documentation on MSDN here

根据评论更新

Thanks for this code. I tried to use it in my script, but where exactly am I suppose to put Hide-Console? My form load looks like this $objForm.Add_Shown({$objForm.Activate()}) [void] $objForm.ShowDialog()



要使用此代码隐藏控制台,您只需调用 Hide-Console .由于您已经在 Shown 中有代码事件( $objForm.Add_Shown )我们可以简单地添加另一行来调用命令:

改变这个:
$objForm.Add_Shown({$objForm.Activate()})

对此:
$objForm.Add_Shown({
$objForm.Activate()
Hide-Console
})

当您的表格是 Shown控制台将被隐藏(如果您想稍后查看,您仍然可以调用 Show-Console)。

关于powershell - 打开 PowerShell 脚本并隐藏命令提示符,但不是 GUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40617800/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com