在dpr中加入
var
p:hwnd;
begin
p:=CreateMutex(nil,true,'dqmisApplication');
if GetLastError<>Error_Already_exists then
begin
//你自己的程序,比如创建显示窗体什么的了
end
else
ReleaseMutex(p);
end;
var
p:hwnd;
begin
p:=CreateMutex(nil,true,'dqmisApplication');
if GetLastError<>Error_Already_exists then
begin
//你自己的程序,比如创建显示窗体什么的了
end
else
ReleaseMutex(p);
end;
Mutex:THandle;begin Mutex := CreateMutex (nil,True,'SingleApp');
if GetLastError <> ERROR_ALREADY_EXISTS then
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end
else
MessageBox( 0,'已经运行!','Info',mb_ok);
end.
加入ReleaseMutex (Mutex );语句释放;
1、只运行一个范例,方法很多,楼上有,不赘述;
2、通知系统屏保已经启动,用SENDMESSAGE(),同时禁止系统所有热键(可惜只在WIN9X下有效,NT/2000下……,所以我现在已经不做屏保了。);
3、在KEYPRESS和MOUSEMOVE中解除屏保状态,包括:SENDMESSAGE()通知系统,恢复热键;在MOUSEMOVE中判断是否发生移动(注意加判断);判断密码是否正确(读注册表,否则不通用),以决定是否退出程序;……
4、程序应全屏并ALWAYS ONTOP!
5、程序应有两个参数(启动时),以决定是设置还是运行!!
……
我劝你,别费劲做了!98连微软都抛弃了!!