我有一个用Java编写的服务器软件,可以在Windows和OS X上运行.(它不是在服务器上运行,而只是普通用户的PC - 类似于torrent客户端.)我希望软件发出信号在操作系统处于活动状态时保持机器处于唤醒状态(防止其进入睡眠模式).
当然我不希望有一个跨平台的解决方案,但我希望有一些非常小的C程序/脚本,我的应用程序可以产生,以通知操作系统保持清醒.
有任何想法吗?
对于特定的应用程序,我需要在屏幕保护程序运行时禁用它.操作员可以手动将其关闭,然后再打开,但最简单的方法是在应用程序运行时保持屏幕保护程序不受影响.
我该怎么做呢?我找到了用SPI_SETSCREENSAVEACTIVE实际关闭屏幕保护程序的代码,但我不认为这就是我想要的.
是否有推荐的方法来阻止Windows屏幕保护程序启动?我发现的最接近的是这篇文章,但我真正想做的就是告诉Windows计算机不是空闲而不是愚弄当前设置的屏幕保护程序值.
我用Qt和visual studio 2015开发了一个c ++应用程序.
我想知道如何在我的应用程序运行时阻止应用程序表单进入休眠状态.我的应用程序应该始终在后台运行并响应用户通过语音命令它.
我的应用程序运行时有没有阻止窗口进入睡眠状态?
我的应用程序需要阻止睡眠/休眠模式.我已经有了代码,但在成功捕获WM_POWERBROADCAST消息后,PBT_APMQUERYSUSPEND和PBT_APMQUERYSTANDBY都未成功捕获.有趣的是,PBT_APMRESUMECRITICAL和PBT_APMRESUMEAUTOMATIC消息都被我的应用程序捕获.
底线问题:我的应用程序无法捕获备用/暂停消息,但成功捕获恢复消息是否有任何原因?
这个Q&A [stackoverflow.com]有帮助,顺便说一下,但是这些消息似乎没有进入我的应用程序.
我的代码(为了简洁起见删除了事件日志代码):
protected override void WndProc(ref System.Windows.Forms.Message m)
{
// Power status event triggered
if (m.Msg == (int)NativeMethods.WindowMessage.WM_POWERBROADCAST)
{
// Machine is trying to enter suspended state
if (m.WParam.ToInt32() == (int)NativeMethods.WindowMessage.PBT_APMQUERYSUSPEND ||
m.WParam.ToInt32() == (int)NativeMethods.WindowMessage.PBT_APMQUERYSTANDBY)
{
// Have perms to deny this message?
if((m.LParam.ToInt32() & 0x1) != 0)
{
// If so, deny broadcast message
m.Result = new IntPtr((int)NativeMethods.WindowMessage.BROADCAST_QUERY_DENY);
}
}
return; // ?! …Run Code Online (Sandbox Code Playgroud) 我有一个 powershell 进程,它从远程服务器读取记录并将其复制到本地数据库中。运行时,可能会运行 8-12 小时。
如何防止计算机在此期间关闭(或进入睡眠/休眠模式)?我知道我可以调整“电源和睡眠设置”以将计算机设置为从不睡眠,但这不是我想要的 - 我确实希望它在进程不睡眠时进入睡眠状态。
我知道如果 netflix 或 youtube 视频正在运行,睡眠/休眠会被暂停,我希望计算机在 powershell 进程运行时执行相同的操作。
powershell 进程在桌面上的命令窗口中运行 - 我很高兴屏幕保护程序能够激活,但我不希望发生的是我在 8 小时后唤醒机器并发现该进程只运行了电脑进入睡眠状态前10分钟!
c# ×2
screensaver ×2
windows ×2
c++ ×1
java ×1
macos ×1
powershell ×1
qt ×1
sleep ×1
sleep-mode ×1
winapi ×1
windows-10 ×1
windows-xp ×1