You can resolve an assembly with the same name (but not the same assembly) to run only once, and the data on the web is only to detect if the program has the same name and cannot really guarantee the same assembly.
Private bool PrevInstance ()
{
process[] myprocesses= process.getprocessesbyname (process.getcurrentprocess (). ProcessName);
if (Myprocesses.length > 1)
{
GuidAttribute curguid = (GuidAttribute) (assembly.getexecutingassembly (). GetCustomAttributes (typeof (GuidAttribute), false) [0]);
foreach (Process process in myprocesses)
{
if (process.getcurrentprocess (). Id! = process. Id)
{
Assembly-assembly.loadfrom (process. Mainmodule.filename);
Guidattribute[] GUIDs = (guidattribute[]). GetCustomAttributes (typeof (GuidAttribute), false);
if (GUIDs. Length > 0)
{
if (curGuid.Value.ToString (). Equals (Guids[0]. Value.tostring ()))
return true;
}
}
}
}
return false;
}