我正在运行一个用于测试学生的应用程序,这会阻止他们执行除测试之外的任何操作。
当然,应用程序会阻止他们关闭它,并阻止他们运行任务管理器(除其他外):
[DllImport("WinLockDLL.dll")]
private static extern int CtrlAltDel_Enable_Disable(bool bEnableDisable);
private void Restrict(bool enabled)
{
CtrlAltDel_Enable_Disable(enabled);
}
该dll包含我使用的其他功能,例如隐藏任务栏和桌面。
直到最近,学生们都使用了 WindowsXP,而且它很有效。 最近同学们都升级到Windows7了,就不能用了。
在调试过程中,我发现Windows7根本没有WinLockDLL.dll,因此我将dll复制到一台W7计算机上并尝试了该应用程序。
这次它找到了 dll 并且没有引发任何错误,但该函数根本没有任何效果。
那么,有人知道 Windows7 中有替代方案吗?
我发现的最接近的是 this ,其中有人发布了这样的内容:
All the functions you used in the example crash on Windows 7 unless you change the call to DLL_CALL_STDCALL
“调用 STDCALL”没有帮助,因为这正是 DllImport
默认情况下所做的。
我读过阻止 ctrl-alt-delete 的替代方案,例如取消 ctrl 键或通过注册表或 GPO 阻止任务管理器,但我更喜欢 WinLockDLL.dll 的简单替代方案,其中包含我使用的几个函数.
提前致谢!
最佳答案
对于将来发现此内容的任何人。我正在创建一个库来替换 Windows 7 的 WinLock.dll。可以在此处找到源代码。
关于winapi - WinLockDLL.dll在Windows7中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8137164/