在网上看到一个c# dll自动注册的文章,我测试了一下,可用。
下面是具体代码
[DllImport("Ry4SCom.dll")] public static extern int DllRegisterServer(); /// <summary> /// dll注册 /// </summary> public static void Regist() { try { RegistryKey rkTest = Registry.ClassesRoot.OpenSubKey( "CLSID\{E6B59B74-A0DC-4DE9-9E34-365F3B63F0C7}\"); if (rkTest == null) { //Dll没有注册,在这里调用DllRegisterServer() int i = DllRegisterServer(); } } catch { } }
其中的{E6B59B74-A0DC-4DE9-9E34-365F3B63F0C7}是这个dll在注册表中的唯一ID,如果不知道这个ID怎么办呢,其实很简单,那就是“逆向思维”。我们可先注册这个Dll文件,然后到注册表的“HKEY_CLASSES_ROOTCLSID”分支下“查找”Dll的名称或路径,就可以看到这个ID了。