Posted on 2007-12-25 15:06
江邊之鳥 閱讀(1001)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
c++
在《C++Builder深度歷險(xiǎn)》這本書中有很詳細(xì)的說明
以下工程.H文件:可以實(shí)現(xiàn)已運(yùn)行的程序在最小化時(shí)再運(yùn)行第二個(gè)時(shí)還原第一個(gè)程序。。。。。
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM("Unit1.cpp", Form1);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
HWND AppWnd=FindWindow("TApplication","Shally Title");
if(AppWnd)
{
if(IsIconic(AppWnd))
{
ShowWindow(AppWnd,SW_RESTORE);
}
else
{
SetForegroundWindow(AppWnd);
}
return 0;
}
try
{
Application->Initialize();
Application->Title="Shally Title";
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
//---------------------------------------------------------------------------Top
4 樓binbin(破壞分子)回復(fù)于 2002-12-27 22:21:40 得分 0
findwindow
互斥量
注冊(cè)熱鍵
...Top
5 樓HUANG_JH(保衛(wèi)釣魚島)回復(fù)于 2002-12-27 22:27:59 得分 10
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
HANDLE hMutexHandle = CreateMutex(NULL,true,"Application Already Run!");
if (GetLastError()!=ERROR_ALREADY_EXISTS)
{
try
{
Application->Initialize();
.......
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
else
{
Application->MessageBox("Application Already Run!","Warnning", MB_OK|MB_ICONWARNING);
}
ReleaseMutex(hMutexHandle);
CloseHandle(hMutexHandle);
return 0;
}
Top
6 樓penu(懶貓·子在川上之再上征程·殺人無心之寓怒于靜)回復(fù)于 2003-01-07 11:35:39 得分 0
有個(gè)最簡(jiǎn)單的方法:
在CB6的Examples中有個(gè)控件:在\Controls\SingleInst目錄下。
打開包編譯并安裝,在組件面板中會(huì)增加一個(gè)控件SingleInst,把它拉到你的Form中,設(shè)為有效就行了。