gpt4 book ai didi

windows-7 - 用于显示通知气球并采取行动的 PowerShell 脚本仅适用于 ISE gui,而不适用于命令行

转载 作者:行者123 更新时间:2023-12-03 08:20:41 26 4
gpt4 key购买 nike

我看过一堆密切相关的帖子,所以我知道我并不孤单,但没有人给我我正在寻找的答案。如果有人问过并回答过这个问题而我找不到它,我深表歉意。

此脚本创建一个自定义通知区域气球,如果单击该气球,将打开一个指向某个 URL 的新 IE 窗口。在我一直在使用它的 PowerShell ISE GUI 中效果很好。无法使用我在其他帖子中看到的任何选项从命令行运行。具体来说,无法打开 IE 窗口 .通知出现没有问题,但是没有IE窗口...??尝试过:

  • 电源 shell 。脚本.ps1
  • powershell -file script.ps1
  • 命令
  • &

  • 等等。

    想法?

    我的脚本:
    #Load the required assemblies
    [void] [System.Reflection.Assembly]::LoadWithPartialName(“System.Windows.Forms”)
    #Remove any registered events related to notifications
    Remove-Event BalloonClicked_event -ea SilentlyContinue
    Unregister-Event -SourceIdentifier BalloonClicked_event -ea silentlycontinue
    Remove-Event BalloonClosed_event -ea SilentlyContinue
    Unregister-Event -SourceIdentifier BalloonClosed_event -ea silentlycontinue
    Remove-Event Disposed -ea SilentlyContinue
    Unregister-Event -SourceIdentifier Disposed -ea silentlycontinue

    #Create the notification object
    $notification = New-Object System.Windows.Forms.NotifyIcon
    #Define various parts of the notification
    $notification.Icon = [System.Drawing.SystemIcons]::Information
    $notification.BalloonTipTitle = “**Reminder**”
    $notification.BalloonTipIcon = “Warning”
    $title = “message to user”
    $notification.BalloonTipText = $title

    #Make balloon tip visible when called
    $notification.Visible = $True

    ## Register a click event with action to take based on event
    #Balloon message clicked
    register-objectevent $notification BalloonTipClicked BalloonClicked_event -Action {
    Start-Process 'c:\Program Files\Internet Explorer\iexplore.exe' -ArgumentList 'http://someURL.com' -WindowStyle Maximized -Verb Open
    #Get rid of the icon after action is taken
    $notification.Dispose()
    } | Out-Null

    #Balloon message closed
    register-objectevent $notification BalloonTipClosed BalloonClosed_event -Action {$notification.Dispose()} | Out-Null

    #Call the balloon notification
    $notification.ShowBalloonTip(1000)

    最佳答案

    在非交互式提示中不起作用的原因是,当用户单击气球时,powershell 已经完成处理。

    您可以通过以下两种方式之一解决该问题:

  • 在脚本末尾添加 sleep(1) ,因此它不会在用户单击气球之前结束; (如果需要,增加值,虽然我测试了 1 秒就好了)
  • 使用 -noexit 命令行参数,然后在用户单击通知或延迟一段时间后以编程方式关闭 powershell(我测试过它会在不更改代码的情况下启动 IE,也没有打扰对退出部分进行编码。)
  • 关于windows-7 - 用于显示通知气球并采取行动的 PowerShell 脚本仅适用于 ISE gui,而不适用于命令行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5384167/

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