我有一个可以从 Windows 驱动器的资源管理器上下文菜单启动的应用程序。当您单击菜单项时,驱动器号将传递给新实例。我想确保任何旧实例都已关闭。
我还想确保最后选择的驱动器是持久的,这样当我从开始菜单再次启动应用程序时,它会记住我最初选择的驱动器。
最好是已经运行的应用程序会收到一个事件,以便它可以更新而无需终止并重新启动。
我尝试了以下方法,但这似乎不起作用:
这是我的类库方法(它只是定义变量的一行,所以我有一个 DLL,其中有一个变量,仅此而已)
namespace Dispatch
{
public class cls_get_drive_letter
{
public static string drive_letter;
}
}
这是我的加载表单代码:(这里我将填写 DLL 的变量)
private void Frm_loading_Load(object sender, EventArgs e)
{
Dispatch.cls_get_drive_letter.drive_letter = "XXX";
Process currentProcess = Process.GetCurrentProcess();
if (Process.GetProcessesByName(currentProcess.ProcessName, currentProcess.MachineName).Length >1)
{
currentProcess.Kill();
}
}
因此,当我第一次运行它时,“XXX”将存储在 DLL 中,但是当当前应用程序实例正在运行并且我将运行它的下一个实例时,应用程序将因为以下代码而关闭:
Process currentProcess = Process.GetCurrentProcess();
if (Process.GetProcessesByName(currentProcess.ProcessName, currentProcess.MachineName).Length >1)
{
currentProcess.Kill();
}
因此,当此代码发生关闭代码时,新的“XXX”不会存储在 DLL 中,最后一个字符串将在 dll 中。