避免程式重複執行的方法[delphi]
来源:互联网 发布:黑米软件官方吧 编辑:程序博客网 时间:2024/05/16 23:12
出處 : http://jck11.pixnet.net/blog/post/8541840-%E9%81%BF%E5%85%8D%E7%A8%8B%E5%BC%8F%E9%87%8D%E8%A4%87%E5%9F%B7%E8%A1%8C%E7%9A%84%E6%96%B9%E6%B3%95%5Bdelphi%5D
用CreateMutex函數
var Mutexhandle: THandle;begin Mutexhandle := CreateMutex(nil, true, 'jck11'); //建立Mutex if Mutexhandle <> 0 then //如果Mutex建立失敗 begin if GetLastError = ERROR_ALREADY_EXISTS then //程式已在執行 begin MessageBox(0, '程式執行中', '警告', mb_iconhand); CloseHandle(Mutexhandle); Halt; //結束程式 end; end;end;用FindWindow函數
var hWnd: THandle;begin hWnd:= FindWindow(nil, 'jck11'); //尋找程式的caption為jck11的視窗 if(hWnd <> 0)then begin //找到了該視窗 if IsIconic(hWnd)then begin //最小化的話就將它恢復 ShowWindow(hWnd, SW_RESTORE); end else begin SetForegroundWindow(hWnd); //將視窗帶到最上層 end; Halt; //結束程式 end;end;
用EnumWindows函數
function EnumApps(Wnd: HWnd; lParam: LPARAM): boolean; stdcall;var WndCaption: array[0..254] of char;begin Result:= true; GetWindowText(Wnd, @WndCaption, 254); //取得視窗的caption if(Pos('jck11', WndCaption) >= 1)then begin //比對caption if(IsIconic(Wnd)then begin //最小化的話就將它恢復 ShowWindow(Wnd, SW_RESTORE); end else begin SetForegroundWindow(Wnd); //將視窗帶到最上層 end; Result:= false; Halt; //結束程式 end;end;
EnumWindows(@EnumApps, 0); //列舉所有的視窗
- 避免程式重複執行的方法[delphi]
- Delphi中避免程序重复运行的方法
- delphi开发的系统执行程式过大
- Delphi BCB 開發出xp風格的程式(转载)
- delphi中SQL避免非法字符,单引号(')出错的三种方法
- delphi中SQL避免非法字符,单引号(')出错的三种方法
- linux程式段错误的调试方法
- 避免zombie的方法
- ActivityNotFoundException的避免方法
- 教你怎么避免重启你的应用程式 web ReLoadConfig ReLoadInterval contextConfigLocation
- 避免重复提交的方法
- 避免闪烁的方法:OnEraseBkgnd
- 避免奇数地址的方法
- 避免内存泄露的方法
- 避免dead lock的方法
- 避免内存泄露的方法
- 避免内存泄露的方法
- 避免缓冲区溢出的方法
- C#防止WebBrowser在新窗口中打开链接页面
- ORACLE数据库、表空间、表的容量相关查询--1
- A fast lock-free queue for C++
- 开始体验Kali Linux
- Struts2使用Interceptor实现权限控制的应用实例详解
- 避免程式重複執行的方法[delphi]
- Qt学习之路(2):初探信号槽
- 【Android基础入门〖5〗】四大组件之BroadcastReceiver
- Sandcastle安装向导
- 计算器(CalculatorBean.java)
- Samba实现Windows与Linux文件共享设置
- 操作 /data/data/pkg/ 下文件需要权限
- UNIX环境高级编程--高级I/O(三)
- 写出float x 与“零值”比较的if语句