CreateProcess ShellExecute

1、用CreateProcess调用regsvr32注册dll

    PROCESS_INFORMATION ProcessInfo;
    STARTUPINFO StartupInfo;
    ZeroMemory(&StartupInfo,sizeof(StartupInfo));
    StartupInfo.cb = sizeof StartupInfo;

    _tcscat(path, _T("//Test.dll/" /s"));//path:Test.dll的目录,目录有空格要加引号“C:/Program Files/Test.dll”
    TCHAR szPath[MAX_PATH]={0};
    _tcscpy(szPath,_T("regsvr32.exe /""));
    _tcscat(szPath,path);
    if(CreateProcess(NULL,szPath,NULL,NULL,FALSE,0,NULL,NULL,&StartupInfo,&ProcessInfo) )
    {

        //注册成功的话,等待注册完成
        WaitForSingleObject(ProcessInfo.hProcess,INFINITE);
        CloseHandle(ProcessInfo.hThread);
        CloseHandle(ProcessInfo.hProcess);
    }

2、用ShellExecute调用regsvr32注册dll

TCHAR path[30]=_T("/"C:/Program Files/Test.dll/" /s");// /s:取消弹出提示框

HINSTANCE hInstance = ShellExecute(NULL,_T("open"),_T("regsvr32.exe"),_T("navigator.dll /s"),path,SW_HIDE);

 

3、调用 ShellExecute 打开浏览器

  a.打开IE浏览器,会打开一个新的IE窗口:

HINSTANCE  hInstance = ShellExecute(NULL,NULL,_T("IEXPLORE"),_T("http://www.baidu.com"),NULL,SW_NORMAL);//

  b.打开默认浏览器,不是在新的默认浏览器中打开,如果默认浏览器没启动的话,可能会有问题

ShellExecute(NULL, "open", "http://www.csdn.net", NULL,NULL,SW_SHOWMAXIMIZED);

  c.打开默认浏览器,无论默认浏览器是否打开,都可实现

CString args;

args.Format(_T("url.dll,FileProtocolHandler http://www.csdn.net"));//

HINSTANCE result = ShellExecute(NULL, _T("open"), _T("rundll32.exe"), args, NULL, SW_SHOWNORMAL);

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值