睡眠(x) 会导致计算机进入睡眠状态
Sleep(x) causes computer to sleep instead
这可能是
我迄今为止在C++遇到的最奇怪的事情之一:
while(counter != stop_value)
{
//Part A starting
ip.ki.wVk = VK_RETURN;
ip.ki.dwFlags = 0;
SendInput(1, &ip, sizeof(INPUT));
ip.ki.wVk = VK_RETURN;
ip.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(1, &ip, sizeof(INPUT));
//Part A ending
if (s == 2) counter++;
else counter--;
cout << counter; //for debugging
Sleep(i);
}
每当我评论"A部分"时,它都可以正常工作;程序休眠i
秒,具体取决于用户输入。但是,一旦我添加了再次触发返回键的简单方法,它就会使我的整个计算机进入睡眠状态(又名,屏幕完全黑屏 i
秒)。我尝试过谷歌搜索,但我找不到任何关于这个的信息。
而且,这只是代码的一小部分。我已经添加了 INPUT 类和所有内容。 s
也是一个用户定义的变量,(在这种情况下)可以在 2 到 3 之间变化。如果等于 2,计数器的值将设置为 0,并且它将增加,直到达到其最大值(用户定义,设置为 stop-value
)。使用此方法时,sleep
函数工作正常,只有程序"暂停"i
秒。但是,一旦用户将s
设置为 3,它将从最大值(用户定义)开始减少,直到达到其停止值(始终等于零)。发生这种情况时,屏幕会停电。
我已经尝试调试很长时间了,但我似乎找不到解决方案......由于代码比这复杂得多,并且我需要使用更多的空间(我不想这样做),因此我将为您提供一些可以使用的变量的输入:
- 工作输入:
counter = 0; stop_value = 21; s = 2; i = 1000;
- 导致屏幕停电的输入:
counter = 20; stop_value = 0; s = 3; i = 1000;
http://msdn.microsoft.com/en-us/library/windows/desktop/ms646310(v=vs.85).aspxhttp://msdn.microsoft.com/en-us/library/windows/desktop/ms686298(v=vs.85).aspx
不妨把它作为答案:)
您是否将ip
类型设置为INPUT_KEYBOARD
?您是否在使用前在结构上使用ZeroMemory
?
相关文章:
- 为什么使用 P/Invoke 调用 dll 时,某些计算机中的 LoadLibrary 失败?
- EvtExportLogneneneba API正在将远程计算机的事件日志保存到远程PC本身.如何将其保存到主机
- Constexpr替代了新的放置方式,可以让内存中的对象保持未初始化状态
- 我不断收到 [错误] ID 返回 1 退出状态错误,但看不到问题所在
- OSX MetalKit CVMetalTextureCacheCreateTextureFromImage失败,状态:
- std::future_error:无关联状态
- 如何避免LED在循环状态变化中闪烁?
- boost 是否有按特殊类型值编码状态"compact optional"?
- 为什么系统函数总是在C++中返回已转移的退出状态?
- 为什么我能够为阵列分配比计算机实际拥有的内存更多的内存
- C++ 中的编译错误:未定义对"主"的引用 collect2:错误:ld 返回 1 个退出状态
- 当可输入框在窗口中处于活动状态时获得通知的任何方法
- 我可以使用任何好的逻辑来阻止计算机将 O 放在井字游戏中的现有 X 上
- 检查两个节点在子节点上是否具有相同状态的更优雅的方法
- 将有状态的 lambda 传递到 C 样式函数中,而无需上下文参数
- 在 nullptr 上调用无状态类的非静态成员函数是否合法?
- 编译问题:在函数"_start"中:未定义对"主"的引用 collect2:错误:ld 返回 1 个退出状态
- C++ 计算机猜测用户数量在 7 次猜测以内
- C++部分概念 id:显式模板规范顺序/第一个参数的特殊状态的原因是什么?
- 睡眠(x) 会导致计算机进入睡眠状态