但是其实很多时候,我们设置在某一个用户电脑上只能打开一次本程序
就需要做一些限制
其实只要程序判断有没有打开,可以用如下代码实现:
var
aHandle: THandle
begin
aHandle := CreateMutex(nil, TRUE, '')
if (aHandle <>0) and (GetLastError = ERROR_ALREADY_EXISTS) then
begin
Application.MessageBox('程序已经运行!', '提示!', MB_OK)
CloseHandle(aHandle)
end;
Application.Run
end.
你可以在程序运行时自动写入注册表uses中包含 Registry
var
MyFilePath:String
begin
MyFilePath:=Application.ExeName
MyReg:=TRegistry.Create
MyReg.RootKey:= HKEY_CURRENT_USER
MyReg.OpenKey('SoftWare\Microsoft\Windows\CurrentVersion\Run',True)
MyReg.WriteString ('myfile',MyFilePath )
MyReg.Free
这样做,一般会有杀毒软件进行拦截,需要同意才行。
你还可以直接把程序放到开始菜单中的启动下。
procedure TfrmDown.btnRegClick(Sender: TObject)var
s: TRegistry
sFile: String
begin
s := TRegistry.Create
try
s.RootKey := HKEY_LOCAL_MACHINE
s.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',False)
sFile := ParamStr(0)
s.WriteString(ExtractFileName(sFile),sFile)
finally
s.CloseKey
s.Free
end
end
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)