@@@ 220 分@@@ 请教一个问题!!

heart007 2004-11-22 11:03:31
我做了一个监控程序,让它关联了exe文件
但启动之后就无法关机,无法注销,连控制面板也失效
对于关机,我想的是关机时截获关机消息,然后让它自己取消exe关联
以便关机,可关联exe的程序截获不到关机消息,也就无法关机了
注销应该和关机差不多,而控制面板更没法解决了
问题: 怎么解决关联exe文件后的关机、注销及控制面板等问题?
请各位高手出招指点!!谢谢!
由于分数限制,所以,我只好将220分分到三个帖子里
另外,要在98和win2000都能通过哦
请大家帮忙,谢谢!!!!
...全文
184 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
heart007 2004-12-07
  • 打赏
  • 举报
回复
To:Shikari(很久不来)
呵呵,真的很感谢你这么久以来对我的帮助,
我知道分对你不怎么重要,可这是对你的感激之意哦
呵呵,好的,以后有问题一定向你请教,先谢谢你了!
祝你好人有好报!事事顺心!
psp2003 2004-12-07
  • 打赏
  • 举报
回复
关注
Shikari 2004-12-07
  • 打赏
  • 举报
回复
呵呵,分数对我真的不太重要。不过盛情之下呀!
有什么问题需要帮助的话,可以在CSDN上发短消息!
也祝你技术上能够突飞猛进,有所成就!
heart007 2004-12-07
  • 打赏
  • 举报
回复
等一下
heart007 2004-12-01
  • 打赏
  • 举报
回复
再没人来就只好结帖了,本来早想结了
但为此三帖我花光了所有的分,只到现在也没什么分可再发帖了
结帖之后就没法继续想大家请教、学习了
不过,还是得准备结帖,不想开那么久,没人继续帮忙,留者也没什么意思
在此谢谢所有帮忙以及帮顶的朋友,谢谢你们!!!!
heart007 2004-11-30
  • 打赏
  • 举报
回复
确实难啊,不知道何时才可完全解决
nisazhixin 2004-11-29
  • 打赏
  • 举报
回复
此问难解啊
up
heart007 2004-11-25
  • 打赏
  • 举报
回复
急切等待ing
heart007 2004-11-24
  • 打赏
  • 举报
回复
TO:cnhgj(戏子) (一个人睡)
刚试了几次,一样没反应,请继续帮忙想想,谢谢!
heart007 2004-11-24
  • 打赏
  • 举报
回复
继续请高手出招,谢过!
cnhgj 2004-11-23
  • 打赏
  • 举报
回复
可能你的程序有处理了什么消息了。。
试试这个

type
.....
public
procedure WMQUERYENDSESSION(Var msg:Tmessage); Message WM_QUERYENDSESSION;
end;
........

procedure Tform1.WMQUERYENDSESSION(Var msg:Tmessage);
begin
msg.Result:=1;
end;
heart007 2004-11-23
  • 打赏
  • 举报
回复
各为高手请帮忙!谢谢!
heart007 2004-11-23
  • 打赏
  • 举报
回复
to:gyf(无根草) ( )
sFileName:= sFileName + ParamStr(i) +' ',对吗
我试了,可还关机时什么反映都没,请帮忙解决,谢谢 了!
gyf 2004-11-23
  • 打赏
  • 举报
回复
if ParamCount>0 then
for i:=1 to ParamCount - 1 do
sFileName:=sFileName+ParamStr(i);
winexec(pchar(sFileName),sw_show);
刚才忘了加上sFileName:=sFileName+' ';




pressman 2004-11-22
  • 打赏
  • 举报
回复
就算是有程序在运行,一样可以关闭计算机的,
你分析的关不了机的原因是以为关联了EXE应该是错误的,
你需要具体描叙你的问题,最好是帖出代码。
ly_liuyang 2004-11-22
  • 打赏
  • 举报
回复
就是你代码有问题的
关联程序那会导致这个多问题呀?
检查程序看看问题

http://lysoft.7u7.net
heart007 2004-11-22
  • 打赏
  • 举报
回复
我拿个最简单的来吧:
unit unit1;

interface

uses
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.
zwb666 2004-11-22
  • 打赏
  • 举报
回复
学习

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧