delphi 怎么设置可以同时启动多本程序?

delphi 怎么设置可以同时启动多本程序?,第1张

默认情况下,你是可以多次打开本程序的。

但是其实很多时候,我们设置在某一个用户电脑上只能打开一次本程序

就需要做一些限制

其实只要程序判断有没有打开,可以用如下代码实现:

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


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12138446.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存