我想显示一个程序(只是一个经典窗口,占据整个屏幕)用于在登录屏幕或锁定屏幕上询问问题。
我的弹出窗口已经看起来像 Windows BSOD 屏幕。
它用于在夜间执行一些扫描,但我们不知道是否有用户在场,所以我们想强制锁定屏幕并显示一个窗口,说明我们目前正在执行一些维护任务。如果有人在电脑前,他可以确认或放弃该任务。如果他现在可以做,我们就开始扫描,如果他不可以,我们就把控制权还给他。如果在一段时间内没有得到回应,我们就开始我们的任务。
我已经获得了一些信息和代码(使用 C#),但我并不是真正的程序员(只是做一些脚本之类的事情,并不是真正编写程序)。我更多地在系统下工作,我不知道如何调整我在 PowerShell 中找到的代码。
欢迎任何帮助。
答案1
我们在这里帮助您解决您编写的 PowerShell 代码以及您未显示的问题。
您可以编写在计算机启动、登录、注销、关机等时执行的脚本。这是一种非常常见的做法,与 PowerShell 没有太大关系,但可以设置计划任务或系统策略或注册表设置来运行任何内容。
http://superuser.com/questions/187158/how-can-i-add-the-program-that-starts-with-my-pc
http://superuser.com/questions/125942/run-program-on-startup
即使您指向的链接也使用计划任务来执行此操作,有关内容请参阅“高级概念”部分。
然而,您所做的任何事情都必须在该代码之后开始,或者您需要调整该代码以添加运行所需的内容。
原则上,永远不要运行任何你不完全理解的代码。你可能会对你的环境造成无法挽回的严重损害。你说你不是程序员,但你试图使用的代码麦吉娜(WinLogon 级别)并强制另一次作为该进程的子进程启动。
这是非常深层次的东西,非程序员或了解核心操作系统层面的东西的人最好远离它。我明白你想要什么,但恕我直言,聘请顾问来提供帮助,以保证你已经完全考虑并评估了这个用例。
当然,没有什么能阻止你走自己的路。但是,只是说说而已。
OP 更新
至于……
我不明白的是如何将 DLL 导入 powershell 中。
...阅读这些。
https://www.leeholmes.com/blog/2006/10/27/load-a-custom-dll-from-powershell https://serverfault.com/questions/455163/how-to-properly-add-net-assemblies-to-powershell-session
至于……
编组——它是什么以及我们为什么需要它?
…这不是 PowerShell 构造,而是 C/C+/C++/C# 等语言构造。请阅读此内容。
https://stackoverflow.com/questions/2240804/marshalling-what-is-it-and-why-do-we-need-it