一个应用程序多次点击时,如何只让它只运行一个
来源:互联网 发布:七天网络答题卡制作 编辑:程序博客网 时间:2024/05/02 08:48
///////////////////// (一)项目文件 test.dpr //////////////////////
program SerialGet;
uses
Forms,
UMain in 'UMain.pas' {frmMain},
ULogin in 'UForm2.pas' {Form2},
UDataModule in 'UDataModule.pas' {DataModule1: TDataModule},
{$R *.res}
begin
Application.Initialize;
if CreateMutex then //创建句柄,判断此应用程序是否在运行
begin
Application.CreateForm(TfrmMain, frmMain);
Application.CreateForm(Tform2, form2);
Application.CreateForm(TDataModule1, DataModule1);
Application.Run;
end else
begin
DestroyMutex; //释放句柄
end;
end.
//////////////// (二)登陆窗体 UMain.pas UMain.dfm //////////////////
unit UMain;
interface
uses ......
type
... ... ...
private
public
end;
var
frmMain: TfrmMain;
function CreateMutex: Boolean; // 全项目公用函数
procedure DestroyMutex; // 全项目公用函数
implementation
uses UDataModule; //引用数据模块
var Mutex: hWnd;
{$R *.dfm}
procedure DestroyMutex;
begin
if Mutex <> 0 then CloseHandle(Mutex);
end;
function CreateMutex: Boolean;
var
PrevInstHandle: THandle;
AppTitle: PChar;
begin
AppTitle := StrAlloc(100);
StrPCopy(AppTitle, Application.Title);
Result := True;
Mutex := Windows.CreateMutex(nil, False, AppTitle);
if (GetLastError = ERROR_ALREADY_EXISTS) or (Mutex = 0) then begin
Result := False;
SetWindowText(Application.Handle, '');
PrevInstHandle := FindWindow(nil, AppTitle);
if PrevInstHandle <> 0 then begin
if IsIconic(PrevInstHandle) then
ShowWindow(PrevInstHandle, SW_RESTORE)
else
BringWindowToTop(PrevInstHandle);
SetForegroundWindow(PrevInstHandle);
end;
if Mutex <> 0 then Mutex := 0;
end;
StrDispose(AppTitle);
end;
- 一个应用程序多次点击时,如何只让它只运行一个
- 一个应用程序多次点击时,如何只让它只运行一个
- 让一个应用程序只运行一个实例
- 一个PHP程序,同一时刻被请求多次,怎么让它只运行一次?
- 让Qt应用程序只运行一个实例
- 如何让应用程序只启动一个实例
- 如何使应用程序只运行一个实例
- 如何使应用程序只运行一个实例
- 如何使应用程序只运行一个实例
- 如何使应用程序只运行一个实例
- 如何使应用程序只运行一个实例
- 如何使应用程序只运行一个实例
- 如何让程序只运行一个实例
- 如何让mfc程序只运行一个
- window.open 如何做到多次点击只弹出一个窗口
- 应用程序只运行一个实例
- 多次点击一个按钮时只响应一次
- 让应用程序只运行一个实例,避免重复启动
- 合理应用用户登录界面,用户登录时不必创建其他窗体
- UnicodeTOGB,能够将Unicode串转换成GB码,方便开发。
- 一个函数
- 屏幕区域截取图片的实现
- 测试!
- 一个应用程序多次点击时,如何只让它只运行一个
- D3DXMatrixDecompose 函数
- 冒泡排序的算法分析与改进(转载)
- C++中的常用数学函数
- donets感伤~
- ADO带密码的数据连接、查询一个记录集、执行一SQL语句
- Ant全攻略
- Web会话状态的维持
- 应用程序中当前路径的两中写法、COM中当前路径取得