如有一个程序!最小化后藏在任务栏里!
很多时候都会不小心看不见,又打开了一个同样的程序!我想知道,程序打开时如何判断程序本身是否已执行??
很多时候都会不小心看不见,又打开了一个同样的程序!我想知道,程序打开时如何判断程序本身是否已执行??
解决方案 »
- 关于delphi中webbrowers应用问题
- Delphi读取Excel的问题
- DBGRID問題
- 如何隐藏程序,就是任务栏上没有程序,系统右下角的托盘上有显示程序图标
- 有关intraweb的问题,紧急
- 谢“恩师”...”
- 一张销售商品的单据,客户希望根据产地的不同分别打印在不同页上
- 麻烦大家推荐几个delphi的好网站,最好有详细的系统分析示例的!
- 是不是copefile备份出来文件都是只读的,那么SETFILEATTIBUTE()具体怎么用呢?
- 控件装好后用的时候,提示少.dcu为甚么?
- 用NMHTTP如何实现输入一个参数,反回查询结果。
- 关于Delphi的Unit:Printers的问题!
if GetLastError = ERROR_ALREADY_EXISTS then
begin
MessageBox(0, '程序已经在运行', '我的程序', MB_ICONERROR);
end
else
begin
Application.Initialize;
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end;
begin
Application.MessageBox(pchar('系统已经运行!'),pchar('警告'),MB_OK);
exit;
end;
比较好。我正在用。
var
mHandle, fHandle: THandle;{$R *.res}begin
Application.Initialize;
mHandle := Windows.CreateMutex(nil, true, 'PerRecord');
if mHandle <> 0 then
begin
if GetLastError = Windows.ERROR_ALREADY_EXISTS then
begin
fHandle := FindWindow('TfrmLogin', nil);
if fHandle = 0 then
fHandle := FindWindow('TfrmPer', nil);
if fHandle <> 0 then
begin
ShowWindow(fHandle, SW_SHOW);
SetForeGroundWindow(fHandle);
end;
Windows.ReleaseMutex(mHandle);
Halt;
end;
end; Application.CreateForm(TdmPer, dmPer);
Application.CreateForm(TfrmPer, frmPer);
Application.Run;
end.