程式的唯一性

2021-07-02 23:36:31 字數 1760 閱讀 5499

試過各種方法,下面這個相對比較好

在program.cs中,新增如下,紅色字部分要改掉

usingsystem.diagnostics;  //新增

namespace programunique

static class program

///

/// 應用程式的主入口點。

///

[stathread]

static void main()

process p = form1.getrunninginstance();

if (p != null) //已經有應用程式副本執行

// messagebox.show("程式已經執行!");

form1.handlerunninginstance();

else //啟動第乙個應用程式

在form1.cs中新增這個region即可

#region 程式唯一性

private const int ws_shownormal = 1;

[dllimport("user32.dll")]

private static extern bool showwindowasync(intptr hwnd,int cmdshow);

[dllimport("user32.dll")]

private static extern bool setforegroundwindow(intptrhwnd);

public static process getrunninginstance()

process currentprocess =process.getcurrentprocess();//獲取當前程序

//獲取當前執行程式完全限定名

stringcurrentfilename = currentprocess.mainmodule.filename;

//獲取程序名為processname的process陣列。

process processes =process.getprocessesbyname(currentprocess.processname);

//遍歷有相同程序名稱正在執行的程序

foreach(process process in processes)

if(process.mainmodule.filename == currentfilename)

if (process.id!= currentprocess.id)//根據程序id排除當前程序

return process;//返回已執行的程序例項

return null;

public static bool handlerunninginstance(process instance)

//確保視窗沒有被最小化或最大化

showwindowasync(instance.mainwindowhandle,ws_shownormal);

//設定真實例程為foreground window

returnsetforegroundwindow(instance.mainwindowhandle);

public static bool handlerunninginstance()

process p = getrunninginstance();

if (p != null)

handlerunninginstance(p);

return true;

return false;

#endregion

Oracle唯一性約束和唯一性索引的關係

唯一性約束通過唯一性索引來實現?我覺得這說法不對。對於唯一性約束,索引是必須存在的,唯一性約束本質上是通過索引來保證的,但不一定是唯一性索引。唯一性約束允許有null值,唯一性約束的列可允許有多個null值。唯一性約束通過btree索引實現,而btree索引是不會包含null值,但使用null值過濾...

資訊唯一性原則

本人偶然間想到,google了半天也沒有找到相似的東西。在此拋磚引玉,望各位不吝賜教。資訊唯一性原則是解耦合與促進一致性的資料結構設計方法。乙個資訊只出現一次,其他地方只是引用。比如客戶買書 這一業務,需要進行兩次相關操作,即書店將 這種書的數量減1,客戶賬戶中 這種書的數量加1。需要注意,這裡是 ...

實現UniqueAttribute唯一性約束

using system using system.componentmodel.dataannotations using system.data.entity namespace zwj.tems.base public override boolean isvalid object value...