我有一个PowerShell脚本需要很长时间才能运行,除非我检查,否则我经常不知道它什么时候完成。
是否有一个命令,我可以坚持我的powershell脚本的末尾,可以在脚本运行时通知我,有点像Communicator聊天窗口在菜单栏上变黄,当有人给我发消息通知我去检查?
答案 0 :(得分:1)
您可以从user32.dll导入FlashWindowEx,如本文http://learn-powershell.net/2013/08/26/make-a-window-flash-in-taskbar-using-powershell-and-pinvoke/
所示Add-Type -TypeDefinition @"
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
public class Window
{
[StructLayout(LayoutKind.Sequential)]
public struct FLASHWINFO
{
public UInt32 cbSize;
public IntPtr hwnd;
public UInt32 dwFlags;
public UInt32 uCount;
public UInt32 dwTimeout;
}
//Stop flashing. The system restores the window to its original state.
const UInt32 FLASHW_STOP = 0;
//Flash the window caption.
const UInt32 FLASHW_CAPTION = 1;
//Flash the taskbar button.
const UInt32 FLASHW_TRAY = 2;
//Flash both the window caption and taskbar button.
//This is equivalent to setting the FLASHW_CAPTION | FLASHW_TRAY flags.
const UInt32 FLASHW_ALL = 3;
//Flash continuously, until the FLASHW_STOP flag is set.
const UInt32 FLASHW_TIMER = 4;
//Flash continuously until the window comes to the foreground.
const UInt32 FLASHW_TIMERNOFG = 12;
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool FlashWindowEx(ref FLASHWINFO pwfi);
public static bool FlashWindow(IntPtr handle, UInt32 timeout, UInt32 count)
{
IntPtr hWnd = handle;
FLASHWINFO fInfo = new FLASHWINFO();
fInfo.cbSize = Convert.ToUInt32(Marshal.SizeOf(fInfo));
fInfo.hwnd = hWnd;
fInfo.dwFlags = FLASHW_ALL | FLASHW_TIMERNOFG;
fInfo.uCount = count;
fInfo.dwTimeout = timeout;
return FlashWindowEx(ref fInfo);
}
}
"@