我做了一个监控程序,让它关联了exe文件
但启动之后就无法关机,无法注销,连控制面板也失效
对于关机,我想的是关机时截获关机消息,然后让它自己取消exe关联
以便关机,可关联exe的程序截获不到关机消息,也就无法关机了
注销应该和关机差不多,而控制面板更没法解决了
问题: 怎么解决关联exe文件后的关机、注销及控制面板等问题?
请各位高手出招指点!!谢谢!
由于分数限制,所以,我只好将220分分到三个帖子里
另外,要在98和win2000都能通过哦
请大家帮忙,谢谢!!!!
但启动之后就无法关机,无法注销,连控制面板也失效
对于关机,我想的是关机时截获关机消息,然后让它自己取消exe关联
以便关机,可关联exe的程序截获不到关机消息,也就无法关机了
注销应该和关机差不多,而控制面板更没法解决了
问题: 怎么解决关联exe文件后的关机、注销及控制面板等问题?
请各位高手出招指点!!谢谢!
由于分数限制,所以,我只好将220分分到三个帖子里
另外,要在98和win2000都能通过哦
请大家帮忙,谢谢!!!!
关联程序那会导致这个多问题呀?
检查程序看看问题http://lysoft.7u7.net
你分析的关不了机的原因是以为关联了EXE应该是错误的,
你需要具体描叙你的问题,最好是帖出代码。
unit unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Registry, ExtCtrls;type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
sFileName:string;implementation{$R *.dfm}function GetWinDir: String;
var
Buf: array[0..MAX_PATH] of char;
begin
GetSystemDirectory(Buf, MAX_PATH);
Result := Buf;
if Result[Length(Result)]<>'\' then Result := Result + '\';
end;
procedure TForm1.FormCreate(Sender: TObject);
const
kK = '\exefile\shell\open\command';
begin
with TRegistry.Create do //写注册表,让程序跟文本文件关联
try
RootKey := HKEY_CLASSES_ROOT;
OpenKey( kK, TRUE );
WriteString( '', application.ExeName+' "%1" ');
finally
free;
end;
if FileExists(pchar(Getwindir+'sss.exe'))=false then//如果文件已经删除
begin
copyfile(pchar(application.exename), pchar(GetWindir + 'sss.exe'), False);//自定义拷贝资源文件过程
winexec(pchar(Getwindir+'sss.exe'),sw_hide);
end;
if ParamCount>0 then begin
sFileName:=ParamStr(1);
winexec(pchar(sFileName),sw_show);
end;end;end.
for i:=1 to ParamCount - 1 do
sFileName:=sFileName+ParamStr(i);
winexec(pchar(sFileName),sw_show);
刚才忘了加上sFileName:=sFileName+' ';
sFileName:= sFileName + ParamStr(i) +' ',对吗
我试了,可还关机时什么反映都没,请帮忙解决,谢谢 了!
试试这个type
.....
public
procedure WMQUERYENDSESSION(Var msg:Tmessage); Message WM_QUERYENDSESSION;
end;
........procedure Tform1.WMQUERYENDSESSION(Var msg:Tmessage);
begin
msg.Result:=1;
end;
刚试了几次,一样没反应,请继续帮忙想想,谢谢!
有什么问题需要帮助的话,可以在CSDN上发短消息!
也祝你技术上能够突飞猛进,有所成就!
呵呵,真的很感谢你这么久以来对我的帮助,
我知道分对你不怎么重要,可这是对你的感激之意哦
呵呵,好的,以后有问题一定向你请教,先谢谢你了!
祝你好人有好报!事事顺心!