#include <stdio.h>
#include <stdlib.h>
#include<windows.h>

char GetSystemDisk(){
    char str[255];
    GetSystemDirectory(str, 255);
    return str[0];
}
char* merge(char *s1,char *s2,char* des){
    int length1=strlen(s1);
    int length2=strlen(s2);
    int sumLength=length1+length2;
    des=(char *)malloc(sizeof(char)*sumLength+1);
    int i=0;
    for(;i<sumLength;i++){
        if(i<=length1-1)
            des[i]=s1[i];
        else
            des[i]=s2[i-length1];
    }
    des[i]='\0';
    return des;
}
void strrpl(char* pDstOut, char* pSrcIn, const char* pSrcRpl, const char* pDstRpl)
{
char* pi = pSrcIn;
char* po = pDstOut;

int nSrcRplLen = strlen(pSrcRpl);
int nDstRplLen = strlen(pDstRpl);

char *p = NULL;
int nLen = 0;

do
{
// 找到下一个替换点
p = strstr(pi, pSrcRpl);

if(p != NULL)
{
// 拷贝上一个替换点和下一个替换点中间的字符串
nLen = p - pi;
memcpy(po, pi, nLen);

// 拷贝需要替换的字符串
memcpy(po + nLen, pDstRpl, nDstRplLen);
}
else
{
strcpy(po, pi);

// 如果没有需要拷贝的字符串,说明循环应该结束
break;
}

pi = p + nSrcRplLen;
po = po + nLen + nDstRplLen;

} while (p != NULL);
}
void contact(char str1[],char str2[])
{
 char *p1,*p2;
 int length1 = 0,length2 = 0;
 int i;
 p1 = str1;
 p2 = str2;
 while(*p1)
 {
  p1++;
  length1++;
 }
 while(*p2)
 {
  p2++;
  length2++;
 }
 for(i = 0;i < length1;i++)
  str2[length2+i] = str1[i];
 str2[length1+length2] = '\0';
}
int file_exists(char *filename)
{
    return (access(filename, 0) == 0);
}
int main()
{
    char c=GetSystemDisk();
    char order[255]="C:\\WINDOWS\\Microsoft.NET\\Framework\\v2.0.50727\\regasm.exe /codebase /tlb";
    char path[255]="C:\\WINDOWS\\Microsoft.NET\\Framework\\v2.0.50727\\regasm.exe";
    order[0]=c;
    int existFile=file_exists(path);
    char result[400];
    char szFull[400];
    GetModuleFileName(NULL,szFull,400);
    if(existFile!=1){
        printf("安装.NET运行时,请等待....\n");
        char result2[400];
        strrpl(result2,szFull,"patentstart.exe","2.0.exe");
        system(result2);
    }
    //启动路径

strrpl(result,szFull,"patentstart.exe","PatentActiveX.dll");
    printf("%s\n",result);
    int resultLength=strlen(result);
    //
    char dllPath[500];
    dllPath[0]='"';
    int j=1;
    for(;j<=resultLength;j++){
        dllPath[j]=result[j-1];
    }
    dllPath[j]='"';
    dllPath[j+1]='\0';
    printf("%s\n",dllPath);
    //

char fullOrder[900];
    int orderLength=strlen(order);
    int dllPathLength=strlen(dllPath);
    int i=0;
    for(;i<orderLength;i++){
        fullOrder[i]=order[i];
    }
    fullOrder[orderLength]=' ';
    for(i=orderLength+1;i<=orderLength+dllPathLength+1;i++){
        fullOrder[i]=dllPath[i-orderLength-1];
    }
    printf("%s\n",fullOrder);
    system(fullOrder);
    //system("cls");
    printf("注册成功,刷新IE页面有效\n");
    MessageBox(NULL,"注册成功,刷新IE页面有效","提示",MB_OK);
    return 0;
}

.NET 2.0 检测的更多相关文章

  1. 解决:Android 8.0检测不到当前的activity

    前两天从Android 7.0升级到Android 8.0,今天在用 adb shell dumpsys activity | findstr "mFocusedActivity" ...

  2. HTTP 错误 500.23 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置。

    检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(非简单设置为[经典]模式). - CatcherX 2014-03-11 11:03 27628人阅读 评论(2) 收藏 举报  分类 ...

  3. 检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统

    /** * Author: laixiangran. * Created by laixiangran on 2015/12/02. * 检测访问网页的浏览器呈现引擎.平台.Windows操作系统.移 ...

  4. PBOC2.0与PBOC3.0的区别

    2013年2月,中国人民银行发布了<中国金融集成电路(IC)卡规范(V3.0)>(以下简称PBOC3.0),PBOC3.0是在中国人民银行2005年颁布的<中国金融集成电路(IC)卡 ...

  5. javascript关于检测浏览器和操作系统的问题

    1.方法学: 最好是检测浏览器的最小版本,这样才不会当版本升级之后不断添加新的内容进去. 理想的方式: if(isMinIE5){ //code } 直接检查准确的版本的缺点: if(isMinIE5 ...

  6. YUI的UA检测

    YUI.UA是针对javascript的宿主环境检测的一个检测对象,返回的是一系统关于当前宿主的信息 1.对象相关信息列表及userAgent 检测对象o = { ie: 0, //ie Mozill ...

  7. 基于Xcode8插件开发~一键检测处理头文件引用

    Xcode8开放了新的一个Extension:Xcode Source Editor Extension,目的是让开发者可以正规的自主为IDE编写插件,虽然说系统现提供的功能还比较拮据,但是不妨碍我们 ...

  8. 用户代理字符串(navigator.userAgent)检测方法

    最近在看<JavaScript 高级程序设计(第三版)>,发现其中关于用户代理字符串检测技术的一些方法,觉得讲的很详细.用户代理字符串(navigator.userAgent)中包含了大量 ...

  9. vue-cli3.0使用及配置

    1.先全局安装vue-cli3.0 检测安装: vue -V 2.创建项目(这个就跟react创建脚手架项目比较像了)   这里如果你是第一次用3.0版本的话,是没有前两个的,而只有最后两个,这里是 ...

随机推荐

  1. PC远程调试移动设备

    我们在移动端进行前端开发时,会遇到一个让人头痛但不得不面对的问题——调试. 在 PC 机器上,我们有功能强大的 Chrome DevTools.Firebug,即便是老版本的 IE ,我们也可以安装微 ...

  2. Java实现敏感词过滤

    敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有必要的.前段时间我一个朋友(马上毕业,接触编程不久)要我帮他看一个文字过滤的东西,它说检索效率非常慢.我把它程序拿过来 ...

  3. 赴美工作常识(Part 6 - 绿卡排队)

    上一篇<赴美工作常识(Part 5 - 绿卡优先级)>解释完排队的优先级是怎么确定的,以及 PERM 和 I–140 表的意义,接下来就要解释一下队具体是怎么排的以及排到之后的 I–485 ...

  4. 5、CC2541芯片中级教程-OSAL操作系统(PWM+看门狗)

    本文根据一周CC2541笔记汇总得来—— 适合概览和知识快速索引—— 全部链接: 中级教程-OSAL操作系统\OSAL操作系统-实验01 OSAL初探 [插入]SourceInsight-工程建立方法 ...

  5. jQuery实现放大镜效果

    1.1.1 摘要 相信大家都见过或使用过放大镜效果,甚至实现过该效果,它一般应用于放大查看商品图片,一些电商网站(例如:凡客,京东商城,阿里巴巴等)都有类似的图片查看效果. 在接下来的博文中,我们将向 ...

  6. Java框架搭建-Maven、Mybatis、Spring MVC整合搭建

    1. 下载eclipse 到网站下载 http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/marsr 选择 ...

  7. Java连接Oracle数据库开发银行管理系统【三、实现篇】

    说明:里面的主要代码都加的有注释部分,所以代码显得很长,如果有错误的地方,谢谢指出. 注意需要导入数据库jar包 ------------------------------------------- ...

  8. Windows hosts (使用方法 && 不定期更新)

    Windows 系统hosts位于 C:\Windows\System32\drivers\etc\hosts 使用方法:删除原来的hosts文件(不放心可以剪切到其他路径备份),然后将本文链接里的h ...

  9. display的理解

    display可把框内显示的内容改变(自我理解) none 此元素不会被显示. block 此元素将显示为块级元素,此元素前后会带有换行符. inline 默认.此元素会被显示为内联元素,元素前后没有 ...

  10. [全文检索]Lucene基础入门.

    本打算直接来学习Solr, 现在先把Lucene的只是捋一遍. 本文内容: 1. 搜索引擎的发展史 2. Lucene入门 3. Lucene的API详解 4. 索引调优 5. Lucene搜索结果排 ...