您的位置:程序门 -> delphi -> windows sdk/api



在console application 里面检测程序只能运行一个~~~~


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


在console application 里面检测程序只能运行一个~~~~
发表于:2007-05-29 21:46:20 楼主
怎样在console   application   实现程序只能运行一个.

例如:

我双击一个叫notepad.exe已经运行了,我再双击notepad.exe在任务管理器里面
也只有一个notepad.exe

-------------------
我在application里面就可以,
但是在console   application   就不行了
发表于:2007-05-29 21:57:471楼 得分:0
难道在控制台里面真的没有办法吗?
发表于:2007-05-29 22:19:372楼 得分:0
我在application里面就可以,
但是在console   application   就不行了
-----------------------------------

请把“在application里面就可以”的代码贴出来看一下。对症下药嘛
发表于:2007-05-29 22:32:233楼 得分:0
program   project1;

{$apptype   console}

uses
    sysutils,   windows;
                      //~~~~~~

begin
    createmutex(nil,   false,   pchar( '你的互斥标识字符串 '));
    if   getlasterror   =   error_already_exists   then   exit;
    //加上面两句就行了
    readln;
end.
发表于:2007-05-30 12:39:274楼 得分:0
用独占方式createfile
失败就说明已经有instance运行了
发表于:2007-06-08 22:54:565楼 得分:0
function   checkmutex(mutexname:   string):   boolean;
begin
    result   :=   openmutex(mutex_all_access,   false,   pchar(mutexname))   =   0;
end;


    //   检查互斥,保证仅有一个实例存在。
    if   checkmutex(res_mutexname)   then
    begin
        //   建立互斥标识。
        hmutex   :=   createmutex(nil,   true,   pchar(res_mutexname));
        application.initialize;
        application.createform(tfmain,   fmain);
        application.run;
        //   销毁互斥标识
        releasemutex(hmutex);  
    end;


快速检索

最新资讯
热门点击