如何限制應用程式只執行一次?
問:請問如何限制應用程式只執行一次呢?
答:利用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...