C#:关联程序和文件

        /// <summary>
        /// 关联程序和类型
        /// </summary>
        private void RegFileExt()
        {
            try
            {
                string boardExe = @"BlackBoardTool\bin\Teacher.UCBook.BlackBord.exe";
                string boardExeFullName = Path.Combine(GlobalInfos.ExePath, boardExe);
                if (File.Exists(boardExeFullName))
                {
                    string MyExtName = ".dbb";
                    string MyType = "dbb_auto_file";
                    string MyContent = "application/dbb";
                    string command = "\"" + boardExeFullName + "\"" + " \"%1\"";
                    RegistryKey key = Registry.ClassesRoot.OpenSubKey(MyType);
                    if (key == null)
                    {
                        RegistryKey MyReg = Registry.ClassesRoot.CreateSubKey(MyExtName);
                        MyReg.SetValue("", MyType);
                        MyReg.SetValue("Content Type", MyContent);
                        MyReg = Registry.ClassesRoot.CreateSubKey(MyType);
                        MyReg.SetValue("", MyType);
                        MyReg = MyReg.CreateSubKey("Shell\\Open\\Command");
                        MyReg.SetValue("", command);
                        MyReg.Close();
                        _logger.Info("设置文件关联操作成功!");
                    }
                    else
                    {
                        var myReg = key.OpenSubKey("Shell\\Open\\Command",true);
                        if (myReg!=null && (myReg.GetValue("")==null || myReg.GetValue("").ToString()!=command))
                        {
                            myReg.SetValue("", command);//解决因目录变化导致 注册表失效的问题
                            myReg.Close();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.ErrorFormat("设置文件关联失败!{0}",ex.Message);
            }
        }
        

时间: 2024-10-15 04:02:12

C#:关联程序和文件的相关文章

如何将应用程序与文件类型(文件扩展名)关联起来?

自定义一个文件格式,如 .jgrass ,如何将这种文件格式与对应的程序关联起来? 或者,自己编写了一个可以打开 txt 格式的应用程序,怎么能够通过双击 txt 文件,直接打开这个自定义程序? 基本思路是向注册表中写入或修改一些值. 具体可以参见: 如何为你的 Windows 应用程序关联一种或多种文件类型 - walterlv 注册表中的文件扩展名 注册表中的关联程序 举个栗子 e.g. 怎么修改 txt 文件的默认打开格式? 理论上讲,有两种实现方式. 1 修改上图 1 中的 .txt 项

将插座变量(IBOutlet)关联到*.xib文件中对象 + 将对*.xib对象的操作关联到动作方法(IBAction)

将插座变量(IBOutlet)关联到*.xib文件中对象 以BNRDetailViewController.m和BNRDetailViewController.xib为例(<iOS编程>第10章例子) 1.打开BNRDetailViewController.xib,添加一个UITextField对象: 2.在辅助编辑器中打开BNRDetailViewController.m,方法是:按住Option键并点击项目导航面板中的BNRDetailViewController.m: 3.按住Contr

apk安装时把程序附带文件拷贝到手机指定目录下

项目已搞定,今天把.apk文件弄到另外一台非调试手机上用,发现一个问题.因为要画图,所以绘图的点的数据保存在一个.txt的文本文件中,上次直接把它用usb传到指定文件夹下的,但是明显不科学,因为用户下载了你的.apk文件,你却告诉他,还要把这个文本文件拷贝到指定的文件夹下,所以,我就要解决这个问题,就是把文本文件打包在apk文件中,安装.apk时就让创建一个程序文件夹,然后把文本文件拷贝到这个目录文件夹里,用户运行程序,就可以绘图,不用再让他拷贝一份绘图的点的坐标的数据.同理,其实我这里还有设计

创建应用程序和Activity之应用程序Manifest文件简介

每个Android项目都包含一个Manifest文件(Android Manifest.xml),它存储在项目层次中的最顶层.Manifest可以定义应用程序及其组件和需求的结构和元数据.它包含了组成应用程序的每一个Activity,Service,Content Provider和Broadcast Receiver的节点,并使用Intent Filter和权限来确定这些组件之间以及这些组件和其他应用程序是如何交互的. Manifest文件还可以指定应用程序的元数据(如它的图标,版本号或者主题

Android应用程序“R文件”消失

其实Android自己维护这一个 public final class R类主要是跟新资源文件,这个R.java无需我们自己去修改,如果你不了解千万不要去修改它,它定义的每个资源值都是唯一的,不会和系统冲突.这个文件由ADT插件自动更新,当你编辑过Res文件后保存,这个类就会自动更新. R.java里面一般有attr.drawable.id.raw.layout.string以及xml等,根据你工程使用的资源而定.当R.java文件丢失时,就需要重建这个,但是可能会存在一些问题,比如资源无法自动

在终端中用默认程序打开文件(转)

在Linux环境下工作,大部分时间都是在与终端打交道,经常会遇到要查看某个文件,比如一个图片或者一个word文档(不能在终端中直接查看的).这时 通常的做法是切换到gui界面,到文件所在的目录,双击想打开的文件.另外一种方法是直接在shell中输入指定的程序打开文件,比如: evince xx.pdf 查看某个pdf文件.当然这样做的前提是你得记得住那些程序的名字,比如你能记得住用LibreOffice打开一个word文件的命令吗?反正我是记不 住. 在图形界面中已经定义了很多默认的文件打开方式

程序读文件的方式--按字符、按行、按单词

程序读文件的方式--一个字符一个字符进行读取 #include <iostream> #include <fstream> using namespace std; int main() { char ch; fstream fp("a.txt"); while(!fp.eof()) { if(fp.get(ch)) cout<<ch; } fp.close(); return 0; } 程序读文件的方式--逐行读取 #include <ios

通过c程序更改文件的ctime和mtime

通过c程序更改文件的ctime和mtime与某个文件相同 源文件words.txt [[email protected] ~]# ll words.txt ;ll words.txt -u -rw-r--r-- 1 root root 740 7月 14 2007 words.txt -rw-r--r-- 1 root root 740 6月 12 09:33 words.txt 新建测试文件text.txt [[email protected] ~]# touch text.txt [[ema

qt程序添加文件版本号

1.需要一个 *.rc 文件,用以保存相关信息.比如添加一个 app.rc 里面内容如下所示: IDI_ICON1 ICON DISCARDABLE "app.ico" -----> 设置应用程序图标 #include "winver.h" VS_VERSION_INFO VERSIONINFO FILEVERSION 2014,8,7,1 PRODUCTVERSION 1,0,0,0 FILEFLAGS 0x0L FILEFLAGSMASK 0x3fL FI