我写的一个记录关机时间的程序。
只想在关机前运行一下,把时间记录下来就可以了。不想常驻内存。
我的程序塞进到哪儿可以实现啊?
最好是类似于注册表里的RUN项一样。 自动在开机是启动。
当然可以塞在某个后台exe里就最好了。跟病毒一样。 呵呵 有点异想天开了。
只想在关机前运行一下,把时间记录下来就可以了。不想常驻内存。
我的程序塞进到哪儿可以实现啊?
最好是类似于注册表里的RUN项一样。 自动在开机是启动。
当然可以塞在某个后台exe里就最好了。跟病毒一样。 呵呵 有点异想天开了。
void __fastcall TForm1::WndProc(Messages::TMessage & Message)
{
TForm::WndProc(Message);
if(Message.Msg==WM_QUERYENDSESSION)
{
Message.Result=0;//好像返回0才是禁止关机吧。
}
}
1. 用WM_QUERTENDSESSION 消息来实现是很简单的事。
但前提是你要有一个窗口程序要一直在机子上运行。
而我现在的要求是程序或进程在开机时记录时间,然后就退出了。2. 前面有人说到了用hook 。 但是在我的程序没有运行的时候,由谁来加载我的钩子啊?
(我想一般是全局DLL 才能截取所有消息。由谁加载是个问题。)3. 写API钩子,接管系统的ExitWindowsEx这个函数,把入口改成自己的。
这个有点不明白:
我该如何去接管系统的ExitWindowEx这个函数呢?这方面的资料好像很少啊。
希望大家讨论讨论。
用windows这么多年,还从来不知道还有一个"组策略"这个东东。