知识大全 delphi中,让程序只运行一次的方法[2]
Posted 知
篇首语:世上无难事,只要肯登攀本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 delphi中,让程序只运行一次的方法[2]相关的知识,希望对你有一定的参考价值。
program MyThreadTest; uses Windows Forms SysUtils Messages Dialogs Unit in Unit pas Form $R * res var myMutex FindHid: HWND; MoudleName: string; function EnumWndProc(hwnd: Thandle; param: Cardinal): bool; stdcall; //由于用于api回调函数 请使用windows传统的参数传递方式stdcall var ClassName WinMoudleName: string; WinInstance: THandle; begin result := true; SetLength(ClassName ); GetClassName(hwnd pchar(ClassName) length(ClassName)); //获得当前遍历窗口的类名 ClassName := pchar(ClassName); //在字符串后加结束符 确定字符串结束 if UpperCase(ClassName) = UpperCase(TForm ClassName) then //比较类名 begin WinInstance := GetWindowLong(hwnd GWL_HINSTANCE); //获得当前遍历窗口的实例 setlength(WinMoudleName ); //获得当前遍历窗口的程序文件名 GetModuleFileName(WinInstance pchar(WinMoudleName) length(WinMoudleName)); WinMoudleName := pchar(WinMoudleName); WinMoudleName :=ExtractFileName(WinMoudleName); //MoudleName为工程全局变量 自身程序的文件名 if UpperCase(WinMoudleName) = UpperCase(MoudleName) then begin FindHid := hwnd;//FindHid为工程全局变量保存找到的句炳 result := false; //找到以后就结束遍历 end; end; end; begin // CreateMutex建立互斥对象 并且给互斥对象起一个唯一的名字 myMutex := CreateMutex(nil false OneCopy ); if WaitForSingleObject(myMutex ) <> wait_TimeOut then //程序没有被运行过 begin Application Initialize; Application CreateForm(TForm Form ); Application Run; end else begin SetLength(MoudleName ); //获得自己程序文件名 GetModuleFileName(HInstance pchar(MoudleName) length(MoudleName)); MoudleName := pchar(MoudleName); MoudleName := ExtractFileName(MoudleName); EnumWindows(@EnumWndProc ); //调用枚举函数 if FindHid <> then begin ShowWindow(FindHid SW_RESTORE); SetForegroundWindow(FindHid); end; end; end [EnumWindows函数使用] EnumWindows 用来列举屏幕上所有顶层窗口 MSDN The EnumWindows function enumerates all top level windows on the screen by passing the handle to each window
cha138/Article/program/Delphi/201311/24833相关参考
公司开发的软件需要对串口进行操作每次打开软件后程序自动去打开串口寻找连接到串口上的设备但是如果用户不知道打开了两次那么第二次打开的程序是不能正常使用的因为对串口的操作时独占的第一个程序独占了串口的
使用PB限制应用程序只运行一次 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 位操作系统中可以用
让Java程序只运行一个实例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一个程序可以在内存里
C#中让程序只运行一个实例的操作方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 让程序只运行
DELPHI基础教程:Delphi应用程序的应用(一)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看
DELPHI基础教程:Delphi应用程序的应用(二)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看
DELPHI基础教程:Delphi开发数据库应用程序概述(一)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快
DELPHI基础教程:Delphi开发数据库应用程序概述(二)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快
Delphi开发WEB应用程序打印组件[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 四调
如何使用Delphi设计强大的服务器程序[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 大