从屏幕保护程序中创建进程
CreateProcess from within Screen Saver
我需要从我的屏幕保护程序中启动“explorer.exe”,但无论我尝试什么,它都不会在我的屏幕保护程序关闭时保持打开状态。
CreateProcess(nil, 'explorer.exe /select,"' + fileName + '"', nil, nil, false, 0, nil, '', StartupInfo, ProcessInfo)
我尝试了多种标志和参数的组合,但没有成功:)
Explorer 短暂启动并随我的屏保应用程序关闭...
here 中有一个解决方案,但它需要 windows 服务,这对于简单的屏幕保护程序来说太多了...
有人知道吗?
谢谢!
回答我自己,
我用当前登录的用户创建了一个 Windows 任务,在 ss 关闭后 2 秒内启动。而且效果很好。
创建任务的命令如下:
powershell -command "& {Register-ScheduledTask -Action $(New-ScheduledTaskAction -Execute "explorer.exe" -Argument '/select,"d:/test/txt" ') -Trigger $(New-ScheduledTaskTrigger -Once -At (Get-Date).AddSeconds(2)) -TaskName "MyTask" -TaskPath "MyTasks" -Principal $(New-ScheduledTaskPrincipal -UserId $(Get-CimInstance –ClassName Win32_ComputerSystem | Select-Object -expand UserName))}"
并且不要忘记在创建新任务之前删除任务 - 否则创建会失败
powershell -command "& {Unregister-ScheduledTask -TaskName "MyTask" -Confirm:$false}"
我需要从我的屏幕保护程序中启动“explorer.exe”,但无论我尝试什么,它都不会在我的屏幕保护程序关闭时保持打开状态。
CreateProcess(nil, 'explorer.exe /select,"' + fileName + '"', nil, nil, false, 0, nil, '', StartupInfo, ProcessInfo)
我尝试了多种标志和参数的组合,但没有成功:) Explorer 短暂启动并随我的屏保应用程序关闭...
here 中有一个解决方案,但它需要 windows 服务,这对于简单的屏幕保护程序来说太多了...
有人知道吗?
谢谢!
回答我自己, 我用当前登录的用户创建了一个 Windows 任务,在 ss 关闭后 2 秒内启动。而且效果很好。
创建任务的命令如下:
powershell -command "& {Register-ScheduledTask -Action $(New-ScheduledTaskAction -Execute "explorer.exe" -Argument '/select,"d:/test/txt" ') -Trigger $(New-ScheduledTaskTrigger -Once -At (Get-Date).AddSeconds(2)) -TaskName "MyTask" -TaskPath "MyTasks" -Principal $(New-ScheduledTaskPrincipal -UserId $(Get-CimInstance –ClassName Win32_ComputerSystem | Select-Object -expand UserName))}"
并且不要忘记在创建新任务之前删除任务 - 否则创建会失败
powershell -command "& {Unregister-ScheduledTask -TaskName "MyTask" -Confirm:$false}"