我尝试使用powercfg使用lpCommandLine
使用以下命令作为"powercfg -waketimers"
参数从我的32位应用程序运行在我的32位应用程序上调用CreateProcess工具:
Command Line
它工作得很好,除了纯粹偶然的机会我发现它返回了一个不同的报告,而不是从Timer set by [PROCESS] Legacy Kernel Caller expires at 4:00:02 AM on 1/20/2016.
Reason:
Timer set by [PROCESS] Legacy Kernel Caller expires at 3:59:00 AM on 1/20/2016.
Reason:
窗口运行相同的报告。
以下是我在32位进程中获得的内容:
Command Line
这就是我在Timer set by [SERVICE] \Device\HarddiskVolume4\Windows\System32\svchost.exe (SystemEventsBroker) expires at 4:00:02 AM on 1/20/2016.
Reason: Windows will execute 'NT TASK\Microsoft\Windows\TaskScheduler\Regular Maintenance' scheduled task that requested waking the computer.
Timer set by [SERVICE] \Device\HarddiskVolume4\Program Files (x86)\Common Files\Acronis\Schedule2\schedul2.exe (AcrSch2Svc) expires at 3:59:00 AM on 1/20/2016.
窗口中看到的内容:
"C:\\Windows\\SysWow64\\powercfg.exe -waketimers"
所以我很好奇,该工具的32位和64位版本应该返回不同的结果吗?因为我可以解决这个问题并从我的32位进程获得完整报告(上面的第二个版本)的唯一方法是检测它作为WOW64运行,然后使用以下路径进行强制64位重定向:
com.google.appengine.api.urlfetch.RequestPayloadTooLargeException: The request to https://www.googleapis.com/upload/storage/v1/b/XXXXXXXX exceeded the 10 MiB limit.