添加“打开...”功能c#

时间:2010-09-27 14:11:54

标签: c#

我正在开发一个可以读取,写入和导出文件的程序,这些功能都可以正常工作并且几乎已经完善。我现在要做的是能够选择一个文件并告诉它“打开方式”(在Windows XP上的右键单击上下文菜单中)并让我的应用程序能够处理给定的文件。我不知道从哪里开始或在哪里看,所以我想我会在这里问。谢谢。

4 个答案:

答案 0 :(得分:1)

您可以查看此Windows知识库文章:

“如何将文件扩展名与应用程序关联(Win32)” http://support.microsoft.com/kb/185453

看起来它提供了如何在VBScript(?)中执行此操作的示例代码,但看起来它需要通过您需要查看的注册表路径。

答案 1 :(得分:0)

嘿,我相信这是在注册表中定义的。例如。 MSAccess定义为:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Access.Application.11\shell\Edit]
@="&Edit"

[HKEY_CLASSES_ROOT\Access.Application.11\shell\Edit\command]
@="\"C:\\Programmer\\Microsoft Office\\OFFICE11\\MSACCESS.EXE\" /NOSTARTUP \"%1\""

[HKEY_CLASSES_ROOT\Access.Application.11\shell\Edit\ddeexec]
@="[SetForeground][ShellOpenDatabase \"%1\"]"

[HKEY_CLASSES_ROOT\Access.Application.11\shell\Edit\ddeexec\Application]
@="Msaccess"

[HKEY_CLASSES_ROOT\Access.Application.11\shell\Edit\ddeexec\IfExec]
@="[SHELLNOOP]"

[HKEY_CLASSES_ROOT\Access.Application.11\shell\Edit\ddeexec\Topic]
@="ShellSystem"

文件夹设置中也存在GUI - >文件类型。

溴。的Morten

答案 2 :(得分:0)

打开运行对话框,然后输入:regedit(注册表编辑器)

转到:HKEY_CLASSES_ROOT\*\shell并创建一个名为“Open With YourApp”的子项,在新创建的名为“command”的子项下创建另一个子项。在默认值上,输入exe的路径,然后在参数的末尾添加“%1”。

答案 3 :(得分:-1)

在program.cs中,添加以下指示的行:

static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        var mainForm = new MainForm();

        // Add these lines:
        // ----------------------------------------------
        string[] args = Environment.GetCommandLineArgs();
        if (args.Count() >= 2)
            mainForm.LoadFile(args[1]);
        // ----------------------------------------------

        Application.Run(mainForm);
    }
}

其中LoadFile(string filePath)是处理从外部传入的文件的方法。