delphi程序只能打开一个的方法

delphi程序只能打开一个的方法

ID:19969469

大小:27.50 KB

页数:3页

时间:2018-10-08

delphi程序只能打开一个的方法_第1页
delphi程序只能打开一个的方法_第2页
delphi程序只能打开一个的方法_第3页
资源描述:

《delphi程序只能打开一个的方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、工作上,避免我的Upload在一个电脑上被打开多个。1、新建一个unit名字是保存为'once.pas',内容如下:unitonce;interfaceusesWindows,Messages,SysUtils,Classes,Forms;implementationconstSTR_UNIQUE='{2BE6D96E-827F-4BF9-B33E-8740412CDE96}';MI_ACTIVEAPP=1;{激活应用程序}MI_GETHANDLE=2;{取得句柄}variMessageID:Integer;OldWProc:TFNWndProc;MutHandle

2、:THandle;BSMRecipients:DWORD;functionNewWndProc(Handle:HWND;Msg:Integer;wParam,lParam:Longint):Longint;stdcall;beginResult:=0;ifMsg=iMessageIDthenbegincasewParamofMI_ACTIVEAPP:{激活应用程序}iflParam<>0thenbegin{收到消息的激活前一个实例}{为什么要在另一个程序中激活?}{因为在同一个进程中SetForegroundWindow并不能把窗体提到最前}ifIsIconic(l

3、Param)thenOpenIcon(lParam)elseSetForegroundWindow(lParam);Application.Terminate;{终止本实例}end;MI_GETHANDLE:{取得程序句柄}beginPostMessage(HWND(lParam),iMessageID,MI_ACTIVEAPP,Application.Handle);end;end;endelseResult:=CallWindowProc(OldWProc,Handle,Msg,wParam,lParam);end;procedureInitInstance;b

4、egin{取代应用程序的消息处理}OldWProc:=TFNWndProc(SetWindowLong(Application.Handle,GWL_WNDPROC,Longint(@NewWndProc)));{打开互斥对象}MutHandle:=OpenMutex(MUTEX_ALL_ACCESS,False,STR_UNIQUE);ifMutHandle=0thenbegin{建立互斥对象}MutHandle:=CreateMutex(nil,False,STR_UNIQUE);endelsebeginApplication.ShowMainForm:=Fal

5、se;{已经有程序实例,广播消息取得实例句柄}BSMRecipients:=BSM_APPLICATIONS;BroadCastSystemMessage(BSF_IGNORECURRENTTASKorBSF_POSTMESSAGE,@BSMRecipients,iMessageID,MI_GETHANDLE,Application.Handle);end;end;initialization{注册消息}iMessageID:=RegisterWindowMessage(STR_UNIQUE);InitInstance;finalization{还原消息处理过程}i

6、fOldWProc<>NilthenSetWindowLong(Application.Handle,GWL_WNDPROC,LongInt(OldWProc));{关闭互斥对象}ifMutHandle<>0thenCloseHandle(MutHandle);end.2、把这个once.pas考到upload(我的工作程序里),然后打开UpLoad程序(也可以是你自己的程序),点击Project---->AddtoProject然后选中once.pas点确定,编译执行你的程序就可以了。3、这样你的程序,就在一个电脑上只能打开一个,防止重复打开。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。