procedure TForm1.WMEndSession(var Message: TWMEndSession);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\RunOnce',
True)
then Reg.WriteString('MyApp','"' + ParamStr(0) + '"');
finally
Reg.CloseKey;
Reg.Free;
inherited;
end;
end;
procedure TForm3.CheckBox1Click(Sender: TObject); begin
TForm3.WMEndSession(); //这里实参该是什么?
end;
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\RunOnce',
True)
then Reg.WriteString('MyApp','"' + ParamStr(0) + '"');
finally
Reg.CloseKey;
Reg.Free;
inherited;
end;
end;
procedure TForm3.CheckBox1Click(Sender: TObject); begin
TForm3.WMEndSession(); //这里实参该是什么?
end;
var
WMEndSession: TWMEndSession;
这样使用
with WMEndSession do
begin
Msg := WM_ENDSESSION;
EndSession := true;
end;
WMEndSession(WMEndSession);
其实WMEndSession的成员也可以不赋值,因为你代码里面没有使用。
procedrue WMENDSession(var Msg:TWMEndSession);message WM_ENDSESSION;
begin
....//你的实现代码..如果要取消默认的操作的话..不要加inherited
end;调用的话只要真接调就可以了..