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