C# 4.0 Windows外壳扩展dll和Winform进程

C# 4.0 Windows外壳扩展dll和Winform进程,c#-4.0,windows-shell,C# 4.0,Windows Shell,根据本教程[^],我为Windows外壳扩展集成制作了一个dll 现在,我在该dll中添加了一个Windows窗体,我正在执行以下操作: void OnVerbDisplayFileName(IntPtr hWnd) { ShowSelectedFiles form = new ShowSelectedFiles(); form.Show(selectedFiles); } 一切正常,只是表单图标没有显示在任务栏中,我找不到运行表单的进程 关于如何解决这个问题有什么建议吗?也许

根据本教程[^],我为Windows外壳扩展集成制作了一个dll

现在,我在该dll中添加了一个Windows窗体,我正在执行以下操作:

void OnVerbDisplayFileName(IntPtr hWnd)
{
    ShowSelectedFiles form = new ShowSelectedFiles();
    form.Show(selectedFiles);
}
一切正常,只是表单图标没有显示在任务栏中,我找不到运行表单的进程

关于如何解决这个问题有什么建议吗?也许开始一个新的流程,然后展示表单

谢谢

请尝试使用该方法,以便您可以指定所有者窗口

有关如何从hWnd指定所有者窗口的信息,请参见


还要确保表单的ShowInTaskBar属性为true。

解决此问题的唯一方法是创建另一个进程

    void OnVerbDisplayFileName(IntPtr hWnd)
    {
        string file = (new System.Uri(Assembly.GetExecutingAssembly().CodeBase)).AbsolutePath;
        string executableName = file.Substring(0, file.LastIndexOf("/"));
        executableName += "/MyApp.exe";

        Process gui = new Process();

        gui.StartInfo.FileName = executableName;
        gui.StartInfo.Arguments = selectedFiles.JoinFileNames(" ");

        gui.Start();
    }

干杯

我试过了,但在这种情况下不起作用。请参阅我提出的解决方案。不过,谢谢!