草庐IT

while循环

全部标签

C++循环在按下键时模拟按键

我正在尝试获得一个小应用程序,它将在按下另一个键时连续模拟UP(↑箭头键),在我的例子中是RightCTRL。然而,我编写的代码每次按下只会发送一个UP-当我按住RightCTRL时,它只会发送一个UP并停止。我想说的是,这段代码完全是根据我在网上找到的文档构建的,我以前从未用C++或任何其他语言编写过任何东西,因此任何建议都会对我有很大帮助。我最初尝试在CAPSLOCK处于事件状态时执行此操作,但我发现无论我尝试什么,获取键状态(开/关)对我来说根本不起作用。intmain(){//Thisstructurewillbeusedtocreatethekeyboard//inputev

windows - 为什么我必须在批处理文件的 for 循环中转义我已经转义的搜索字符串?

通过S.O.拖网后我设法拼凑了我的功能,因此它可以正常工作,但我对此一无所知。我基本上是在尝试确保我要使用的文件中没有双引号。我将findstr与返回文件名的/m选项一起使用。当我从cmd行运行命令时,它使用以下命令:findstr/V/L/m"\""filename.txt当文件名没有双引号时,它返回文件名,如果它有双引号,它返回空白/空/不管。正是我想要的。所以我想使用这个网站上的解决方案将这个结果捕获到一个变量中。我发现这个有效:setlocalenabledelayedexpansionsettest=for/F%%ain('findstr/V/L/m^"^\^"^"filen

c++ - 调试线程时无限循环

我正在尝试将硬件断点附加到游戏进程,我成功了。然后我试图遍历异常并等待我放在那里的异常,它也工作正常。问题是,在它发生之后,它进入了我无法刹车的无限循环。你能建议吗?我这样做的原因是我想在此时停止线程,使用Context读取EAX值,然后继续该过程。Header.h包括在这里调用的函数,它们都工作正常,因此我现在不包括它。#include"Header.h"#包括intmain(){SetDebugPrivilege(TRUE);DWORDdwProcessID=0;DWORDdwGame=0;printf("Lookingforgameprocess...\n");while(dwP

windows - 为什么递归 (/R) for 循环在 Windows 批处理文件中有奇怪的行为

似乎!DRIVE!考虑到延迟扩展已启用,应该可以工作。为什么不呢?为什么下面的代码不适用于第一种情况?@echooffsetlocalEnableDelayedExpansionSET"DRIVE=H:\"REMDOESN'TWORKFOR/R"!DRIVE!"%%Sin(*)do(echo(%%S)pauseREMWORKSFOR/R"%DRIVE%"%%Sin(*)do(echo(%%S)pauseREMWORKSFOR/R"H:\"%%Sin(*)do(echo(%%S)pause 最佳答案 因为...that'showitw

windows - 将环境变量设置为 for 循环 %%i 变量(批处理脚本)

这实际上是我编写的第一个批处理脚本。我正在尝试遍历当前文件夹,找到所有.mp3文件,然后为每个mp3文件创建一个文件夹,其标题与文件相同但没有文件扩展名(然后将文件移动到其各自的文件夹中添加名为ffmpeg将它们分成更短的block,但我还没有做到这一点)。我找到了一个方法here基本上正是我需要做的。我也发现了问题here和here其中展示了如何将环境变量赋值给for循环变量,但它对我不起作用。这是我的代码。@ECHOOFFcdC:\testfor%%iin(*.mp3)do(echo%%isetepisodeName=%%isetepisodeName=!episodeName:~

c++ - 当应用程序菜单具有焦点时,消息循环被阻塞

我正在开发一个主要如下所示的应用程序:while(true){while(PeekMessage(&Msg,NULL,0,0,PM_REMOVE)){TranslateMessage(&Msg);DispatchMessage(&Msg);}DoSomething();Sleep(1);}我注意到,当我单击菜单栏(显示菜单选项)时,不会调用DoSomething()。我观察到DispatchMessage调用会阻塞消息循环,直到我离开菜单栏!我怎样才能避免这种行为??谢谢! 最佳答案 原因是因为当显示应用程序菜单或消息框之类的内容时

c++ - 当消息循环在另一个线程上时,等到窗口关闭

在一个C++应用程序中,我有一个窗口,其消息循环在单独的线程中运行,因为主线程正忙于计算和渲染模拟。该窗口充当模拟的日志窗口。当模拟抛出异常时,模拟关闭,日志窗口显示详细信息。现在主线程应该等到日志窗口关闭。由于消息循环在单独的线程上运行,因此我尝试WaitForSingleObject(logwindow->thread,INFINITE);来自主线程。但是,这似乎会阻塞消息泵并且日志窗口会卡住。那么我该如何正确地等到窗口关闭或线程结束呢?ED:窗口在主线程上创建,但在不同的线程上运行。我将继续更改它,以便它也在消息循环线程上创建。 最佳答案

windows - 如果windows应用程序消息队列中没有消息,那么消息循环还会继续运行吗?

我对windows消息队列和消息循环有疑问。任何人都可以帮助我理解,或者请提供一些引用链接。如果windows应用程序消息队列中没有消息,那么消息循环还会继续运行吗?如果然后运行,应用程序会挂起吗?因为循环不断发生?它是如何工作的?谢谢,原 最佳答案 GetMessage()将阻塞,直到消息到达队列。这句话:如果队列为空,函数将阻塞,直到另一条消息进入队列。来自WindowMessages. 关于windows-如果windows应用程序消息队列中没有消息,那么消息循环还会继续运行吗?,

Windows批处理,在嵌套循环中设置变量

我有以下从文本文件读取数据的批处理,问题出在内部循环中;它应该在目标文件夹中获取lat创建的文件,但它什么也没得到!这是我的代码:::DeleteFilesfromfolder@echooff::DeleteFilesfromfolderechoy|del"E:\HIS_Data_Consolidation\HIS_Backups\*.bak"echoDeletingpreviousbakfiles...setdestdir=E:\HIS_Data_Consolidation\HIS_BackupssetlocalFOR/F"tokens=1,2,3delims=,"%%GIN(cli

windows - 对于循环开关处理

我很好奇为什么直接跟在没有空格的set命令后面切换,和有空格一样工作;set/ai+=1,和set/ai+=1,甚至是set/ai+=1/p>然而-相同的逻辑不适用于for命令-以下将不起作用:for/L%ain(1,1,2)doecho%a但是它会产生错误:'for'isnotrecognizedasaninternalorexternalcommand,operableprogramorbatchfile.而不是我期望的'for/L'isnotrecognized...我的问题是,当它清楚地区分命令与命令时,为什么它不接受语法,并且随后不起作用-此外,为什么它会产生上面看到的错误?