如何限制應用程式只執行一次

2022-09-02 03:03:13 字數 1838 閱讀 8901

如何限制應用程式只執行一次?

問:請問如何限制應用程式只執行一次呢?

答:利用windows的api函式findwindow()、bringwindowtotop()、showwindow()可實現上述功能。

①定義api:

funtion ulong

findwindowa( ulong winhandle, string wintitle ) library "user32" 

funtion

ulong bringwindowtotop( ulong hwnd ) library "user32" 

funtion ulong

showwindow( ulong winhandle, int wincommand ) library "user32" 

②建立主視窗"w_test",將title設定為"test

window"

ulong

ulng_winhandle

ulng_winhandle = findwindowa( 0,"test window" ) 

if ulng_winhandle > 0 then 

bringwindowtotop( ulng_winhandle

) showwindow( ulng_winhandle, 5 ) 

return 

end

if open( w_test ) 

[注]findwindow()函式

說明:尋找視窗列表中第乙個符合指定條件的頂級視窗。

返回值:

ulong,找到視窗的控制代碼,如未找到相符視窗,則返回零。

引數型別及說明

winhandle

string,指向包含了視窗類名的空中止(c語言)字串的指標;或設為零,表示接收任何類。

wintitle

string,指向包含了視窗文字(或標籤)的空中止(c語言)字串的指標;或設為零,表示接收任何視窗標題。

bringwindowtotop()函式

說明:將指定的視窗帶至視窗列表頂部。倘若它部分或全部隱藏於其他視窗下面,則將隱藏的部分完全顯示出來。該函式也對彈出式視窗、頂級視窗以及mdi子視窗產生作用。

返回值:

ulong,非零表示成功,零表示失敗。

引數型別及說明

hwnd

ulong,欲帶至頂部的那個視窗的控制代碼。

showwindow()函式

說明:控制視窗的可見性。

返回值:

ulong,如視窗之前是可見的,則返回true(非零),否則返回false(零)。

引數型別及說明

winhandle

ulong,視窗控制代碼,要向這個視窗應用由wincommand指定的命令。

wincommand

integer,為視窗指定可視性方面的乙個命令。請用下述任何乙個常數

0隱藏視窗,活動狀態給另乙個視窗。

1用原來的大小和位置顯示乙個視窗,同時令其進入活動狀態。與9同。

2最小化視窗,並將其啟用

3最大化視窗,並將其啟用。

4用最近的大小和位置顯示乙個視窗,同時不改變活動視窗。

5用當前的大小和位置顯示乙個視窗,同時令其進入活動狀態。

6最小化視窗,活動狀態給令乙個視窗。

7最小化乙個視窗,同時不改變活動視窗。

8用當前的大小和位置顯示乙個視窗,不改變活動視窗。

9用原來的大小和位置顯示乙個視窗,同時令其進入活動狀態。

→我是小木魚(lag)

如何讓程式只執行一次例項

最近在做乙個系統的客戶端時,遇到乙個問題 客戶端執行在伺服器上時,如果同乙個使用者或其他使用者執行了這個客戶端,可能會導致錯誤。這就要求該程式的例項只能執行一次。using system using system.collections.generic using system.windows.fo...

如何讓程式只執行一次例項

using system using system.runtime.interopservices using system.windows.forms using system.diagnostics using system.reflection loop through the running...

如何使自己的程式只執行一次

我介紹兩個主流的方法。方法一 使用mutex來進行 1 首先要新增如下的namespace using system.threading 2 修改系統main函式,大致如下 bool bcreatednew create a new mutex using specific mutex name m...