1

我使用 Microsoft.VisualBasic dll 方法创建了我的 WPF 单实例应用程序。但是,我在获取与我的应用程序关联的第二次点击文件的文件路径时遇到了一些困难。

例如,我有两个文件“First.my”和“Second.my”。当我单击文件“First.my”时,它将启动我的应用程序并弹出消息框以显示“First.my”文件路径。由于我的应用程序是单实例应用程序,当我单击文件“Second.my”时,它应该显示“Second.my”的文件路径,但仍显示“First.my”的文件路径..

有谁知道如何在单实例应用程序中传递关联文件路径?

下面是我的代码:

class WindowsFormsApp : Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase
{
    private App _wpfApp;

    public WindowsFormsApp()
    {
        IsSingleInstance = true;
    }

    protected override bool OnStartup(Microsoft.VisualBasic.ApplicationServices.StartupEventArgs e)
    {
        MessageBox.Show("First File");
        //Get 1st click file path
        GetFilePath();
        _wpfApp = new App();
        _wpfApp.Run();

        return false;
    }

    protected override void OnStartupNextInstance(Microsoft.VisualBasic.ApplicationServices.StartupNextInstanceEventArgs e)
    {
        MessageBox.Show("Second File");
        //Get 2nd click file path
        GetFilePath(); 
    }

    protected void GetFilePath()
    {
        if (AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData != null &&
           AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData.Length > 0)
        {
            var filePath = AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData[0];
            var uri = new Uri(filePath);
            MessageBox.Show(uri.LocalPath);
        }
    }
}
4

0 回答 0