using
system;
using
system.collections.generic;
using
system.windows.forms;
namespace
singleprocessstart
//else//
//方法二,使用
api實現 /*
* 關於方法二的除錯
,需要注意的是要將專案
--屬性
--除錯
,選擇啟用外部程式
,選擇到你的
exe檔案
,然後先開啟你的
exe檔案 *
否則在除錯時
.net
缺省會使用
vshost.exe
的宿主程序
(宿主程序隨
.net
啟動而啟動
),而此宿主程序在外部無法啟用
,因此永遠是唯一的 */
system.diagnostics.process
p = getrunninginstance();
if (p != null) //
已經有應用程式副本執行
else
//啟動第乙個應用程式
} //
以下為方法二呼叫
api**
private
const
intws_hide = 0;//
視窗隱藏
private
const
intws_shownormal = 1;//
視窗處於正常狀態
private
const
intws_showmin = 2;//
視窗處於最小化狀態
private
const
intws_showmax = 3;//
視窗處於最大化狀態
//////
顯示視窗
//////
控制代碼///
顯示模式
///
[system.runtime.interopservices.dllimport("user32.dll")]
private
static
extern
bool
showwindowasync(intptr
hwnd, int
cmdshow);
[system.runtime.interopservices.dllimport("user32.dll")]
private
static
extern
bool
setforegroundwindow(intptr
hwnd);
//////
查詢視窗的控制代碼
//////
指向包含了視窗類名的空中止(
c語言)字串的指標;或設為零,表示接收任何類
///指向包含了視窗文字(或標籤)的空中止(
c語言)字串的指標;或設為零,表示接收任何視窗標題
///控制代碼
[system.runtime.interopservices.dllimport("user32.dll", entrypoint = "findwindow")]
public
static
extern
intfindwindow(string
classname, string
titlename);
//////
獲取應用程式程序例項
,如果沒有匹配程序,返回
null
//////
返回當前
process
例項public
static
system.diagnostics.process
getrunninginstance()
} return
null; }
//////
獲取應用程式控制代碼,設定應用程式前台執行,並返回
bool值
///
public
static
bool
handlerunninginstance(system.diagnostics.process
instance)
//////獲取視窗控制代碼,設定應用程式前台執行,並返回
bool
值,過載方法
//////
public
static
bool
handlerunninginstance()
return
false; }
} }
C 禁止應用程式多次啟動
經常我們會有這樣的需求,只讓應用程式執行乙個實體。通常我們的情況是,雙擊乙個exe檔案,就執行乙個程式的實體,再雙擊一次這個exe檔案,又執行這個應用程式的另乙個實體。就拿qq遊戲來說吧,一台電腦上一般只能執行乙個qq遊戲大廳 不過以前聽說過有雙開的外掛程式 那我們的程式也能像qq遊戲那裡禁止多次啟...
c 呼叫執行 exe應用程式
有的.exe可以直接呼叫 例如下面 中的wifi.exe 有時候不可以,我就想了個辦法,先生成.exe的快捷方式,然後呼叫快捷方式就可以了 例如下面 中的registration 整體 如下 include include include include include include includ...
Delphi XE讓應用程式同時只執行乙個的方法
如果想讓delphi應用程式在一台電腦上只執行一次,最便捷的方法就是建立互斥變數。在工程檔案中加入一下 進行改造就可以。varbegin endelse begin tstylemanager.trysetstyle slate classico frmsplash.show frmsplash.u...