判断程序是否已经运行,然后kill旧的或者新的.
2007-02-02 10:36
253 查看
1.利用 CreateMutex
CreateMutex(nil, false, 'project');
result := true;
if GetLastError = ERROR_ALREADY_EXISTS then
begin
// SendMessage(MSG_CLOSE_WIN, RegisterWindowMessage('project'), 0, 0); // HWND_BROADCAST
close;
ShowMessage('You have the program running allready!!');
Halt(0);
result := false; // true false
end;
2.利用SendMessage和FindWindow(FindWindow(类名,caption),)
SendMessage(FindWindow('TfrmSimulator',nil), WM_CLOSE, 0 ,0); // Simulator
3.GlobalFindAtom (用此函数一定得销毁)
{搜寻表看是否程序已运行}
if GlobalFindAtom('PROGRAM_RUNNING') = 0 then
{ 如果没运行,则在表中增加信息 }
atom := GlobalAddAtom('PROGRAM_RUNNING')
else begin
{ 如果程序已运行,则显示信息然后退出 }
MessageDlg('You have the program running
all ready!!', mtWarning,[mbOK], 0);
Halt;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
{从表中移走信息以便程序能再运行}
GlobalDeleteAtom(atom);
end;
如果是想关闭以前的然后再打开新的建议用2.建议3最好不要用
CreateMutex(nil, false, 'project');
result := true;
if GetLastError = ERROR_ALREADY_EXISTS then
begin
// SendMessage(MSG_CLOSE_WIN, RegisterWindowMessage('project'), 0, 0); // HWND_BROADCAST
close;
ShowMessage('You have the program running allready!!');
Halt(0);
result := false; // true false
end;
2.利用SendMessage和FindWindow(FindWindow(类名,caption),)
SendMessage(FindWindow('TfrmSimulator',nil), WM_CLOSE, 0 ,0); // Simulator
3.GlobalFindAtom (用此函数一定得销毁)
{搜寻表看是否程序已运行}
if GlobalFindAtom('PROGRAM_RUNNING') = 0 then
{ 如果没运行,则在表中增加信息 }
atom := GlobalAddAtom('PROGRAM_RUNNING')
else begin
{ 如果程序已运行,则显示信息然后退出 }
MessageDlg('You have the program running
all ready!!', mtWarning,[mbOK], 0);
Halt;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
{从表中移走信息以便程序能再运行}
GlobalDeleteAtom(atom);
end;
如果是想关闭以前的然后再打开新的建议用2.建议3最好不要用
相关文章推荐
- 判断程序是否已经运行,然后kill旧的或者新的.
- 判断程序实例是否已经运行的N种方法
- WinForm判断程序是否已经在运行,且只允许运行一个实例
- C# WinForm 判断程序是否已经在运行,且只允许运行一个实例,附源码
- 通过文件锁实现,程序开始运行时,先判断文件是否存在,若存在则表明该程序已经在运行了,如果不存在就用open函数创建该文件,程序退出时关闭文件并删除文件
- c++ 或者 vc++中判断程序实例是否运行
- C# WinForm 判断程序是否已经在运行,且只允许运行一个实例,附源码
- 通过文件锁实现,程序开始运行时,先判断文件是否存在,若存在则表明该程序已经在运行了,如果不存在就用open函数创建该文件,程序退出时关闭文件并删除文件。
- C#.NET Form设置/取消开机自动运行,判断程序是否已经设置成开机自动启动(转载)
- C# winform 判断程序是否已经在运行 判断程序是否已经打开
- 判断程序实例是否已经运行的N种方法
- Linux 判断进程是否已经运行的程序
- C#.NET Form设置/取消开机自动运行,判断程序是否已经设置成开机自动启动
- 判断程序实例是否已经运行的N种方法
- Installshield 在安装或者卸载过程中,判断某一程序是否正在运行
- C# 判断程序是否已经在运行
- C#.NET Form设置/取消开机自动运行,判断程序是否已经设置成开机自动启动
- winform 判断程序是否已经运行,提示“只允许运行一个程序”
- java判断一个程序是否已经运行
- Android 判断程序在手机中是否是活动状态或者正在运行状态