Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 是否从批处理文件触发任务栏按钮闪烁?_Windows_Batch File_Taskbar - Fatal编程技术网

Windows 是否从批处理文件触发任务栏按钮闪烁?

Windows 是否从批处理文件触发任务栏按钮闪烁?,windows,batch-file,taskbar,Windows,Batch File,Taskbar,是否可以从批处理文件中触发Windows的“将任务栏按钮闪烁X次或直到窗口到达前台”行为?我试图在完成后让用户注意一个长时间运行的脚本 使用外部程序触发闪烁是可以的,只要它不需要安装(即,可执行文件可以与我的脚本捆绑在一起) 更新 以下是我最终得到的(Andreas的Delphi代码的一个极简端口)。我在MinGW下编译过它,它似乎只依赖于KERNEL32.DLL和USER32.DLL,所以应该具有很高的可移植性 闪烁三次,然后保持高亮显示,直到显示到前景 #定义WINVER 0x501 #定义

是否可以从批处理文件中触发Windows的“将任务栏按钮闪烁X次或直到窗口到达前台”行为?我试图在完成后让用户注意一个长时间运行的脚本

使用外部程序触发闪烁是可以的,只要它不需要安装(即,可执行文件可以与我的脚本捆绑在一起)

更新

以下是我最终得到的(Andreas的Delphi代码的一个极简端口)。我在MinGW下编译过它,它似乎只依赖于KERNEL32.DLL和USER32.DLL,所以应该具有很高的可移植性

闪烁三次,然后保持高亮显示,直到显示到前景

#定义WINVER 0x501
#定义_WIN32_WINNT 0x501
#包括
void main(整型argc,字符**argv){
FLASHWINFO info={sizeof(info),GetConsoleWindow(),FLASHW_TIMERNOFG | FLASHW_托盘,3,0};
FlashWindowEx(和信息);
}

使用一个非常简单的外部*.exe非常容易。它只需调用Windows API的函数

这是一个示例Delphi控制台应用程序:

程序flashwnd;
{$APPTYPE控制台}
使用
系统、窗口;
变量
OldTitle,UniqueTitle:字符串;
h:HWND;
c:红衣主教;
fwi:TFlashWInfo;
开始
尝试
h:=GetConsoleWindow();
c:=10;
如果ParamCount=1,则
c:=stroint(ParamStr(1));
FillChar(fwi,sizeof(fwi),0);
fwi.cbSize:=sizeof(fwi);
fwi.hwnd:=h;
fwi.dwFlags:=FLASHW_ALL;
fwi.uCount:=c;
fwi.dwTimeout:=0;
FlashWindowEx(fwi);
除了
关于E:Exception-do
Writeln(E.ClassName+':'+E.Message);
结束;
结束。
简单地说

flashwnd
将当前控制台窗口闪烁十次。召唤

flashwnd 27

将窗口闪烁27次。

这是一个有趣的问题,45分钟内只有三个视图?!。。。24小时内只有15次观看。我不明白……是的,
GetConsoleWindow
FindWindow
和一个独特的标题要好得多。不知道为什么我没有这么做……我怀疑会是这样,但我对Windows API毫无希望!我会看看我是否能让它工作。终于让它在MinGW中工作了(因为我手边没有Delphi编译器)。谢谢嗨,Ben,你有这个工具的编译版本吗?提前感谢(“发行版”已预编译二进制文件)