如果让程序只运行一次?

江南愚子 2003-08-20 02:16:08
看到有资料上是如下方法:

procedure TForm1.FormCreate(Sender: TObject);
begin
{搜索数据库看程序是否运行}
if GlobalFindAtom('PROGRAM_RUNNING') = 0 then
{ 假如没有找到,就添加到数据库}
atom := GlobalAddAtom('PROGRAM_RUNNING')
else begin
{ 如果程序已经运行,显示信息并退出程序 }
MessageDlg('程序已经运行!', mtWarning, [mbOK], 0);
Halt;
end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
{ 退出程序时,从数据表中删除添加的条目 }
GlobalDeleteAtom(atom);
end;

但我搬过来用时,编译出错,说atom后面需要'(',找帮助也没有对atom的说明。
哪位大虾帮帮忙!
...全文
180 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
江南愚子 2003-08-20
  • 打赏
  • 举报
回复
不得不承认adoquery8(ado)的方法比我看到的那种方法要好,不过有点高深的说
IORILI 2003-08-20
  • 打赏
  • 举报
回复
const mypro='tmainapp';\\主窗体名
var handle:integer;
begin
handle:=findwindow(mypro,nil);
if handle<>0 then
begin
messagebox(0,'程序正在运行,请退出!','警告!',0);
// halt;
end;
fengjn 2003-08-20
  • 打赏
  • 举报
回复
在你的程序中,定义一个
atom: integer;的私有变量
adoquery8 2003-08-20
  • 打赏
  • 举报
回复
这样:在dpr文件中写入
{$R *.RES}
var
hmutex:hwnd;
ret:integer;
begin
Application.Initialize;
hmutex:=createmutex(nil,false,dpr文件名);
ret:=getlasterror;
if ret<>error_already_exists then
begin
Application.CreateForm(TfrmReceive, frmReceive);
Application.Run;
end
else
begin
Application.MessageBox('该程序已经有一个在运行中!','系统提示',MB_ICONINFORMATION+MB_OK);
releasemutex(hmutex);
end;
end.

当然不要忘了在前面的uses中加上:
Forms,
windows

good luck,hoho...
源码直接下载地址: https://pan.quark.cn/s/a4b39357ea24 平台简介 License Spring Boot JDK-17 本项目基于ruoyi-vue-fast实现 项目代码、文档 均开源免费可商用 遵循开源协议在项目中保留开源协议文件即可 活到老写到老 为兴趣而开源 为学习而开源 为让大家真正可以学到技术而开源 若依wms是一套基于若依的wms仓库管理系统,支持lodop和网页打印入库单、出库单。 毫无保留给个人及企业免费使用。 前端采用Vue、Element UI。 后端采用Spring Boot、Spring Security、Redis & Jwt。 权限认证使用Jwt,支持多终端认证系统。 支持加载动态权限菜单,多方式轻松权限控制。 高效率开发,使用代码生成器可以一键生成前后端代码。 前端项目地址 gitee https://gitee.com/zccbbg/ruo-yi-wms-vue https://.com/zccbbg/RuoYi-WMS-VUE 若依实战技术专栏 关注文末公众号回复:星球 在线体验 https://wms.ichengle.top/ 不同分支介绍 jdk17+vue3,支持多仓库,没有库区概念,操作简单,覆盖大部分库存应用场景。 jdk17+vue3,支持多仓库、多库区,记录生产日期、过期日期、sn,可适配一物一码,操作相对复杂。 jdk8+vue2 同步lite分支 若依wms功能 首页:库存预警与到期提醒、基础数据报表展示 仓库/库区:管理维护仓库基础数据 物料:管理维护物料基础数据 客户/供应商:管理维护联系人基础数据 入库:创建入库单后包括如下几个状态:暂存、作废、完成入库,入库类型包括:采购...

5,943

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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