zoukankan      html  css  js  c++  java
  • 使用createprocess()创建进程打开其他文件方法

    #include "stdafx.h"
    #include "windows.h"
    #include <iostream>
    #include "shellapi.h"
    #include <stdlib.h>
    using namespace std;

    int _tmain(int argc, _TCHAR* argv[])
    {
    //system("dir");
    //system("pause");

    //打开声音设备
    //::ShellExecute(NULL,_T("OPEN"),_T("rundll32.exe"),_T("shell32.dll Control_RunDLL mmsys.cpl,,1"),NULL,SW_SHOW);

    //打开鼠标设备
    //::ShellExecute(NULL,_T("OPEN"),_T("rundll32.exe"),_T("shell32.dll Control_RunDLL main.cpl,,4"),NULL,SW_SHOW);

    打开系统设备
    //::ShellExecute(NULL,_T("OPEN"),_T("rundll32.exe"),_T("shell32.dll Control_RunDLL sysdm.cpl,,1"),NULL,SW_SHOW);


    WCHAR tstr[MAX_PATH] = TEXT("c:\windows\system32\notepad.exe e:\11.txt");//打开指定的11.txt文件(这里不能把字符串直接拷贝到函数中执行,会崩溃,参数是指向地址)

    STARTUPINFO si;
    memset(&si,0,sizeof(STARTUPINFO));//初始化si在内存块中的值(详见memset函数)
    si.cb=sizeof(STARTUPINFO);
    si.dwFlags=STARTF_USESHOWWINDOW;
    si.wShowWindow=SW_SHOW;
    PROCESS_INFORMATION pi;//必备参数设置结束
    if(!CreateProcess(NULL,tstr,
    NULL,
    NULL,
    FALSE,
    0,
    NULL,
    NULL,
    &si,
    &pi
    )
    //创建一个新的txt文件
    // CreateProcess(TEXT("c:\windows\system32\notepad.exe"),
    // NULL,
    // NULL,
    // NULL,
    // FALSE,
    // 0,
    // NULL,
    // NULL,
    // &si,
    // &pi
    // )


    ){
    cout<<"CreateFail!"<<endl;
    exit(1);
    }else{
    cout<<"Success!"<<endl;
    }
    //不使用的句柄最好关掉
    CloseHandle(pi.hThread);
    CloseHandle(pi.hProcess);
    return 0;

    DWORD dwErr = GetLastError();
    return 0;
    }

  • 相关阅读:
    JSP简单访问数据库
    解析数据存储MySQL
    学习SSH框架
    JavaWEB中读取配置信息
    Eclipse中将Java项目转换成Web项目的方法
    JavaWEB入门
    万能数据库连接类-Oracle、DB2 、Access 、Sql Server
    小米3 打开开发者选项
    coolpad 5879logcat不能输入日志解决办法
    实用开发之-oracle表回滚到一个指定时间的操作语句
  • 原文地址:https://www.cnblogs.com/lisuyun/p/4893438.html
Copyright © 2011-2022 走看看