2009-02-03 87 views
1

如何从资源管理器打开文件到不同的选项卡。我可以将打开菜单与文件类型相关联,现在当我已经有程序工作时,如何将新文件打开到另一个选项卡而不是新程序。 如何准确找到已经在运行的进程,而不是名称并将文件名发送给它。如何从资源管理器打开文件到不同的选项卡

我想让自己清楚一点:我希望我的应用程序是单一实例,这样当用户选择10个文本文件并按回车键时,我的应用程序将打开10个文本文件到10个选项卡,而不是创建10个进程。怎么做?如何在同一过程的各种实例之间进行通信。

EDIT SOLVED:实现了C#中的WM_COPYDATA和codeproject中的SingleApplication类的功能。

+0

你的意思是你想要的是一种让你的程序单实例的方法,而不是每次都产生一个新进程,我猜? – 2009-02-03 15:29:38

+0

是的,你猜对了 – 2009-02-03 16:12:19

回答

1

我不太清楚你在这个问题上的含义。你是否试图用标签打开Windows资源管理器窗口到一个窗口?如果是这种情况,那么我建议你看看QT TabBar,它扩展了Windows资源管理器以允许这种行为。

或者您正尝试在Web浏览器中打开一个新选项卡。如果是这种情况,则该行为由Web浏览器自身定义。对于Internet Explorer 7,您可以在工具>Internet选项中设置此行为。

在常规选项卡中,单击“选项卡”部分旁边的设置按钮。您需要设置“打开其他程序的链接:”选项以打开新的选项卡。

请记住,此行为是由每个用户定义的,并且您无法保证他们将具有与您相同的浏览器设置。


看完您的意见后,我想我明白了一点。这听起来像你希望你的应用程序一次只允许一个实例。既然你标记了这篇文章C#,我会假设你正在编写你的程序。

Codeproject.com有一个很棒的tutorial关于如何让你的程序只允许一个实例。

下面是代码从他们的网站的一个片段:

static void Main() 
{ 
    if(SingleInstance.SingleApplication.Run() == false) 
    { 
     return; 
    } 
    //Write your program logic here 
} 

你想只是return语句之前写的代码有现有实例打开该文件在新标签。

如果您能够提供有关您的程序正在执行的详细信息,我们可能能够帮助您了解一些具体细节。

相关问题