三、防止多次载入应用程序实例
某些应用程序需要禁止用户载入多次实例。比如,控制面板中的应用程序,不管用户打开多少次,同一应用程序只有一个实例,而且每一次试图重复打开都会自动激活已经存在的实例。
Windows API 提供了函数FindWindow,可以是应用程序在启动时检查自己是否已经存在。
该函数在Delphi中的语法是:
function FindWindow(lpClassName: PChar, lpWindowName: PChar): HWND;
其中,参数lpCalssName 是要查找的窗口的类的名称,参数lpWindowName是要查找的窗口的标题(Caption)。 如果找到了相应的窗口实例,将返回一个非0 的该窗口句柄的整型值,否则返回0 。因此,只要判断应用程序的主窗口(或者伴随着应用程序存在而存在的窗口)是否存在就可以判断是否已经有实例存在了。
例如:
H := FindWindow('TForm1', nil);
if H = 0 then begin
ShowMessage('没有发现相同的应用程序实例。');
//加入加载应用程序的语句
//...
end else begin
ShowMessage('应用程序已经加载。');
SetActiveWindow(H);
end;
其中,参数lpWindowName的位置以Delphi保留字nil 代替,是因为窗口的标题可能在应用程序中是变化的。Windows API 函数SetActiveWindow 用于指定活动窗口。转自bbs.sendsms.cn
分享到:
相关推荐
Delphi__调用API函数实现数据发送.rarDelphi__调用API函数实现数据发送.rarDelphi__调用API函数实现数据发送.rar
关于delphi动态调用API函数的视频
delphi 通过调用系统api来直接读写串口。
用javascript代码调用delphi写的函数
delphi调用Java函数示例 delphi调用Java函数示例 delphi调用Java函数示例 delphi调用Java函数示例
Delphi动态调用BPL函数 DelphiXE7 BPL
delphi API函数使用技巧
Delphi 常用API 函数.Delphi 常用API 函数Delphi 常用API 函数Delphi 常用API 函数
VB之精彩编程参阅资料-怎样在DELPHI中使用API函数
DELPHI 7 调用 JAVA 接口 ,传入 JAVA接口地址,和参数 返回结果
delphi调用GOOGLE API,引用GOOGLE API查看地图!
这是一个 Delphi 动态调用API辅助工具,很好用
Delphi动态调用BPL函数,增加程序灵活性,注意主程序的Build with runtime packages要带上vcl包。
在开发中遇到了几个问题,现写出来供需要的朋友参考。 1. SSL问题,用的是indyhttp控件,使用SSL时需要添加 IdSSLIOHandlerSocketOpenSSL1 组件 然后 idhttp的iohandler 属性指向 IdSSLIOHandlerSocketOpenSSL1。 ...
DELPHI调用百度API开发的地图.使用DELPHI2010开发。可进行显示轨迹
洪恩在线API教程.zip --API函数快速入门--...而其他的头文件在DELPHI中也都有相应的.PAS单元一一对应,所以在DELPHI中调用API函数时,只须将相应的API函数单元加入到USES语句的单元之中,便可直接调用相应的函数了。
delphi中调用 xmldelphi中调用 xml
Delphi用API函数进行文件的复制,使用API函数实现文件复制, AssignFile(FromFile, SourceName);//指定源文件名 AssignFile(ToFile, DestName);//指定目标文件名 Reset(FromFile);//读文件 ...
Delphi常用API函数 AdjustWindows给定一种窗口样式,计算获得目标客户区举行所需的窗口大小
对于学习delphi的人很有用,希望能对大家有所帮助