您的位置:程序门 -> delphi -> 数据库相关



请教;以前代码限制不了程序的执行次数.


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


请教;以前代码限制不了程序的执行次数.[已结贴,结贴人:zzaall2008]
发表于:2007-02-01 16:59:05 楼主
procedure   tmain.create(sender:tobject);
var
      hold:string;
      found:hwnd;
      zappname:array[0..127]of   char;
begin        
//----------------限制程序执行次数----------------------
    hold:=application.title;
      application.title:= '我的系统... '+inttostr(hinstance);
      strpcopy(zappname,hold);
      found:=findwindow(nil,zappname);
      application.title:=hold;
      if   found <> 0   then
      begin
                showwindow(found,sw_restore);
                application.terminate;
      end;  
//-----------------------------------------------------
end;
注:程序运行时只创建datamodule模块.当datamodule里的链接数据库函数链接成功后.创建frm_login登录窗体;并且显示;
当输入密码正确以后创建frm_main并且最小化frm_main窗体到系统任务栏;
请问如果才能限制程序执行次数?????
谢谢大家!!!
发表于:2007-02-01 17:08:251楼 得分:15
跟注册机制有点相同...可在注册表中创建一个子项.每次运行程序时从注册表中读取该项的值..再作判断,如果没有达到限定的次数,则将值加1,比如:如果是大于1而小于10.则表示次数未到达,并且没有注册.....如果值是1则已经注册...具体请看下这个贴子:
http://community.csdn.net/expert/topic/5243/5243555.xml?temp=.2997553
发表于:2007-02-01 17:18:082楼 得分:0
首先谢谢mdejtod(稻草人)的回答;
不好意思我打错了一个字.真的很抱歉;
我的问题是:如何去限制程序运行次数....而不是执行次数;
谢谢...
发表于:2007-02-01 17:29:443楼 得分:35
可以用互斥体解决,
    //程序开始时,定个名字如:yourprojname,创建互斥体
    hmutex   :=   createmutex(nil,   false,   'yourprojname ');
    if   getlasterror   =   error_already_exists   then
        halt;


程序结束时
    releasemutex(hmutex);   //   release   the   mutex   as   a   politeness
    closehandle(hmutex);
发表于:2007-02-02 10:56:384楼 得分:0
解决了.结帖了.


快速检索

最新资讯
热门点击