c#程序结束问题 解决后继续加分@!

来源:百度知道 编辑:UC知道 时间:2024/07/04 07:19:21
c#做的程序 想在退出的时候有个密码认证 输入密码正确后才能退出 不正确的话 程序不会退出 不管用任务管理器强制结束进程还是用右键关闭都 要有密码认证后才会退出 这样的程序如何实现?具体思想是什么?

第一个问题比较容易解决,在响应的事件中写入验证信息就可以了
第二个问题我没弄过,可以参考下资料和思路
任务管理器的“结束任务”实际上就是强制终止进程,它调用一个叫做TerminateProcess()的Win32 API函数
BOOL TerminateProcess(
HANDLE hProcess, // 将被结束进程的句柄
UINT uExitCode // 指定进程的退出码
);
可见TerminateProcess在判断结束进程前会先判断当前进程hProcess是不是我要结束的那个,而获得hprocess的方法需要调用OpenProcess所以我们只要在结束进程前给
OpenProcess这个函数并传入要访问的进程ID来获得进程的句柄
HANDLE OpenProcess(
DWORD dwDesiredAccess, // 希望获得的访问权限
BOOL bInheritHandle, // 指明是否希望所获得的句柄可以继承
DWORD dwProcessId // 要访问的进程ID
);

中的dwProcessId赋一个错误的ID,管理器得不到正确的ID自然就不能结束这个进程,随后再弹出对话框利用自己的关闭方法我想就可以实现了

1.在窗体关闭事件中处理就可以了。
2。比较麻烦了。
(1)屏蔽所有的关闭快捷键。
(2)在任务管理器隐藏进程(这个比较难,我反正没实现)

响应关闭事件的时候,弹出对话框,输入密码正确后发送关闭应用程序消息就可以了。

你可以试试取消显示关闭栏,然后在退出事件中加入密码认证

做这样的程序要有以下四个要点: