使用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;
}
使用createprocess()创建进程打开其他文件方法的更多相关文章
- Unix  线程共享创建进程打开的文件资源(1)
		执行环境:Linux ubuntu 4.4.0-31-generic #50-Ubuntu SMP Wed Jul 13 00:07:12 UTC 2016 x86_64 x86_64 x86_64 ... 
- Linux 利用进程打开的文件描述符(/proc)恢复被误删文件
		Linux 利用进程打开的文件描述符(/proc)恢复被误删文件 在 windows 上删除文件时,如果文件还在使用中,会提示一个错误:但是在 linux 上删除文件时,无论文件是否在使用中,甚至是还 ... 
- s11.1 lsof:查看进程打开的文件
		功能说明 lsof 全名为list open files,也就是列举系统中已经被打开的文件,通过lsof命令,就可以根据文件找到对应的进程信息,也可以根据进程信息找到进程打开的文件. [语法格式] l ... 
- lsof恢复进程打开的文件
		工作原理:进程每打开文件都会生成一个文件句柄FD来标识一个文件,进程打开的文件如果没有被释放,可以通过文件句柄FD来恢复删除的文件 注意:适合恢复进程一直在打开一个文件,例如日志文件,如果配置文件进程 ... 
- Linux 系统管理命令 - lsof - 查看进程打开的文件
		命令详解 重要星级: ★★★★★ 功能说明: 全名为 list open files,也就是列举系统中已经被打开的文件,通过 lsof 命令,就可以根据文件找到对应的进程信息,也可以根据进程信息找到进 ... 
- lsof 查看打开了一个文件的有哪些进程  统计那个进程打开的文件最多
		lsof | grep /lib64/libc-2.12.so | wc == 查看打开了一个文件的有哪些进程 lsof | awk '{print $2,$1}' | sort | uniq - ... 
- Delphi 使用CreateProcess创建进程并弹出进程PID值  (转)
		var ExeName:PChar; StartupInfo:TStartupInfo; ProcessInfo:TProcessInformation;begin FillChar(Proc ... 
- linux命令 — lsof 查看进程打开那些文件 或者 查看文件给那个进程使用
		lsof命令是什么? 可以列出被进程所打开的文件的信息.被打开的文件可以是 1.普通的文件,2.目录 3.网络文件系统的文件,4.字符设备文件 5.(函数)共享库 6.管道,命名管道 7.符号链 ... 
- linux  lsof 查看进程打开那些文件 或者 查看文件给那个进程使用
		lsof命令是什么? 可以列出被进程所打开的文件的信息.被打开的文件可以是 1.普通的文件,2.目录 3.网络文件系统的文件,4.字符设备文件 5.(函数)共享库 6.管道,命名管道 7.符号链 ... 
随机推荐
- (笔记)Mysql命令update set:修改表中的数据
			update set命令用来修改表中的数据. update set命令格式:update 表名 set 字段=新值,… where 条件; 举例如下:mysql> update MyClass ... 
- Unity如何内置Visual Studio
			一.问题的起源 软件环境:Unity 2017.3.0f3,Visual Studio 2013 问题描述:在Unity中创建C#脚本后,准备双击打开进行编辑时,出现了Fatal Error. 二.问 ... 
- Wireshark 捕获过滤器的语法
			转自:http://blog.csdn.net/qq_29277155/article/details/52077239 前言 我们都知道,wireshark可以实现本地抓包,同时Wireshark也 ... 
- LintCode #2 尾部的零
			计算阶乘尾部的0的个数,初一看很简单. 先上代码 public static long GetFactorial(long n) { || n == ) ; ); } //Main方法中调用 ); ; ... 
- 嵌入式开发之zynq——赛灵思的一款两a9加一fpga芯片的开发板
			没办法,回家入职新公司,做通信的,用到这款zynq加ad9163射频架构的开发版,要我做驱动,这可是初次接触zynq,带fpga的集成芯片,心里还是有点惊喜和忧愁,忧愁怎么最快啃下这个硬骨头,好吧上网 ... 
- WAS6.1连接SQL Server2008数据库连接池配置
			原文链接:http://www.cnblogs.com/lyr2012/archive/2012/06/13/2547804.html 说明:该步骤只适用与websphere 6.1.0.15之前的版 ... 
- Hadoop分布式集群部署(单namenode节点)
			Hadoop分布式集群部署 系统系统环境: OS: CentOS 6.8 内存:2G CPU:1核 Software:jdk-8u151-linux-x64.rpm hadoop-2.7.4.tar. ... 
- Spring集成线程池
			自己在程序中手动New很容易造成线程滥用,创建线程也是比较消耗资源的操作,所以建议如果有此需求,将线程池统一交给Spring框架进行管理. 如下: <!--Spring 集成线程池,不允许自己开 ... 
- jmm 和线程安全
			Java的内存模型JMM Java的内存模型JMM(Java Memory Model)JMM主要是为了规定了线程和内存之间的一些关系.根据JMM的设计,系统存在一个主内存(Main Memory), ... 
- IE中自定义标签使用自封闭格式引发错误!
			最近学习IONIC,其中用到了ion-menu-nav-button,由于标签开始和结尾之间没有内容,所以图省事儿使用自封闭标签的写法: <ion-menu-nav-button class=& ... 
