如何获得外部文件路径? 需求:编一个程序,在双击某个指定格式文件时,自动打开程序并获得文件的路径,怎么做? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先写注册表创建关联 /// <summary> /// 设置文件关联 在程序中获得参数关联参数 /// </summary> /// <param name="p_Filename">程序的名称</param> /// <param name="p_FileTypeName">扩展名 .VRD </param> public static void RelatingFileAdd(string p_Filename, string p_FileTypeName) { RegistryKey _RegKey = Registry.ClassesRoot.OpenSubKey("", true); //打开注册表 RegistryKey _VRPkey = _RegKey.OpenSubKey(p_FileTypeName); if (_VRPkey != null) _RegKey.DeleteSubKey(p_FileTypeName, true); _RegKey.CreateSubKey(p_FileTypeName); _VRPkey = _RegKey.OpenSubKey(p_FileTypeName, true); _VRPkey.SetValue("", "Exec"); _VRPkey = _RegKey.OpenSubKey("Exec", true); if (_VRPkey != null) _RegKey.DeleteSubKeyTree("Exec"); //如果等于空 就删除注册表DSKJIVR _RegKey.CreateSubKey("Exec"); _VRPkey = _RegKey.OpenSubKey("Exec", true); _VRPkey.CreateSubKey("shell"); _VRPkey = _VRPkey.OpenSubKey("shell", true); //写入必须路径 _VRPkey.CreateSubKey("open"); _VRPkey = _VRPkey.OpenSubKey("open", true); _VRPkey.CreateSubKey("command"); _VRPkey = _VRPkey.OpenSubKey("command", true); string _PathString = "\"" + p_Filename + "\" \"%1\""; _VRPkey.SetValue("", _PathString); //写入数据 } /// <summary> /// 删除文件关联 /// </summary> /// <param name="p_FileTypeName">扩展名 .VRD </param> public static void RelatingFileDel(string p_FileTypeName) { RegistryKey _Regkey = Registry.ClassesRoot.OpenSubKey("", true); RegistryKey _VRPkey = _Regkey.OpenSubKey(p_FileTypeName); if (_VRPkey != null) _Regkey.DeleteSubKey(p_FileTypeName, true); if (_VRPkey != null) _Regkey.DeleteSubKeyTree("Exec"); }使用的时候 RelatingFileAdd("你程序的路径和程序名",".扩展名");程序里使用 Environment.CommandLine 获取文件名就可以了 winform 根据鼠标移动画线,这一个问题想了3年了还不太会 请教一个关于用C#实现3ds文件操作的问题 初学c#关于virtual的问题 请教线程类间如何调用委托? 请问如何比较2个字符串的大小? 急求:我做一个登录界面.用户登录三次不成功就自动退出.这个操作怎么实现 申明一个类型的时候, CLR做了些什么? 在水晶报表中设置当前表的连接信息 treeview中节点,我想双击之后弹出另一个窗体 值类型和引用类型的问题? 小弟急求一个能在webservice中的跳转方法!!!谢谢 代码设置水晶报表不区分大小写
/// 设置文件关联 在程序中获得参数关联参数
/// </summary>
/// <param name="p_Filename">程序的名称</param>
/// <param name="p_FileTypeName">扩展名 .VRD </param>
public static void RelatingFileAdd(string p_Filename, string p_FileTypeName)
{
RegistryKey _RegKey = Registry.ClassesRoot.OpenSubKey("", true); //打开注册表 RegistryKey _VRPkey = _RegKey.OpenSubKey(p_FileTypeName);
if (_VRPkey != null) _RegKey.DeleteSubKey(p_FileTypeName, true);
_RegKey.CreateSubKey(p_FileTypeName);
_VRPkey = _RegKey.OpenSubKey(p_FileTypeName, true);
_VRPkey.SetValue("", "Exec"); _VRPkey = _RegKey.OpenSubKey("Exec", true);
if (_VRPkey != null) _RegKey.DeleteSubKeyTree("Exec"); //如果等于空 就删除注册表DSKJIVR _RegKey.CreateSubKey("Exec");
_VRPkey = _RegKey.OpenSubKey("Exec", true);
_VRPkey.CreateSubKey("shell");
_VRPkey = _VRPkey.OpenSubKey("shell", true); //写入必须路径
_VRPkey.CreateSubKey("open");
_VRPkey = _VRPkey.OpenSubKey("open", true);
_VRPkey.CreateSubKey("command");
_VRPkey = _VRPkey.OpenSubKey("command", true);
string _PathString = "\"" + p_Filename + "\" \"%1\"";
_VRPkey.SetValue("", _PathString); //写入数据
}
/// <summary>
/// 删除文件关联
/// </summary>
/// <param name="p_FileTypeName">扩展名 .VRD </param>
public static void RelatingFileDel(string p_FileTypeName)
{
RegistryKey _Regkey = Registry.ClassesRoot.OpenSubKey("", true); RegistryKey _VRPkey = _Regkey.OpenSubKey(p_FileTypeName);
if (_VRPkey != null) _Regkey.DeleteSubKey(p_FileTypeName, true);
if (_VRPkey != null) _Regkey.DeleteSubKeyTree("Exec"); }
使用的时候 RelatingFileAdd("你程序的路径和程序名",".扩展名");
程序里使用 Environment.CommandLine 获取文件名就可以了