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
Batch file sendkey与批处理文件不一致_Batch File_Arduino - Fatal编程技术网

Batch file sendkey与批处理文件不一致

Batch file sendkey与批处理文件不一致,batch-file,arduino,Batch File,Arduino,我正在尝试创建一个批处理文件,该文件将被另一个程序调用,但无法使sendkey正常工作。它调用Zune并打开它,但不发送ctrl+p来开始播放。如果我打开Zune并重复运行批处理文件,它最终将开始播放,但我可能必须连续运行批处理10次。不知道为什么。想法 @echo off setlocal start zune.exe call :SendCtrlP "Name in Windowtitle" :SendCtrlP <app> setlocal set vbs=%Temp%

我正在尝试创建一个批处理文件,该文件将被另一个程序调用,但无法使sendkey正常工作。它调用Zune并打开它,但不发送ctrl+p来开始播放。如果我打开Zune并重复运行批处理文件,它最终将开始播放,但我可能必须连续运行批处理10次。不知道为什么。想法

@echo off
setlocal

start zune.exe 
call :SendCtrlP "Name in Windowtitle"


:SendCtrlP <app>
setlocal
set vbs=%Temp%\_.vbs
>%vbs% echo set s = CreateObject("Wscript.Shell")
>>%vbs% echo s.appactivate "%~1"
>>%vbs% echo s.sendkeys "^p"
cscript //nologo %vbs%
if exist %vbs% del /f /q %vbs%
exit /b
@echo关闭
setlocal
启动zune.exe
调用:SendCtrlP“窗口标题中的名称”
:SendCtrlP
setlocal
设置vbs=%Temp%\\.vbs
>%vbs%echo set s=CreateObject(“Wscript.Shell”)
>>%vbs%echo s.appactivate“%~1”
>>%vbs%echo s.sendkeys“^p”
cscript//nologo%vbs%
如果存在%vbs%del/f/q%vbs%
退出/b

如图所示,
Ctrl+P
可能在Zune实例化播放控制消息堆栈之前就被发送到Zune,因此按键被丢弃。尝试在启动Zune和发送密钥之间添加延迟<代码>ping 192.0.2.2-n1-w2000>nul(2秒延迟示例)这似乎已经完成了!非常感谢。我也尝试过使用睡眠功能,但没有成功。你知道为什么睡眠不能得到同样的结果吗。
sleep
很可能不起作用,因为没有用于睡眠的本机Windows命令或实用程序(除了)。从Windows 7(或手动添加到XP)起就有一个实用程序。否则,如果你有一个睡眠工具,它必须是第三方。由于与大多数Windows版本向后兼容,
ping
方法被用作常见的批处理延迟。太棒了,非常感谢