问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

我想设计一个能调用电脑中已有软件的程序,最好是c++语言的,求高手指点,万分感谢!!!

发布网友 发布时间:2022-05-07 04:53

我来回答

4个回答

热心网友 时间:2023-10-16 01:46

给你介绍三个函数,代码很简单,可以直接打开电脑内的软件
启动另一个exe程序有三个方法:
WinExec();ShellExecute();和CreateProcess();
其中WinExec()最简单,ShellExecute()较灵活,CreateProcess()最复杂。
1.
WinExec()有两个参数,第一个是要打开的exe文件的路径,第二个是显示方式,如下:
UINT
WinExec(
LPCSTR lpCmdLine, // 命令路径
UINT uCmdShow //
显示方式)
使用方法如下:
WinExec("Notepad.exe",
SW_SHOW); // 打开记事本
WinExec("D:\\Program
Files\\Test\\Test.exe",SW_SHOWMAXIMIZED);//
以最大化的方式打开Test.exe
需要注意的是若用 SW_SHOWMAXMIZED 方式去加载一个无最大化按钮的程序,譬如Neterm,Calc
等等,就不会出现正常的 窗体,但是已经被加到任务列表里了。
缺点:不灵活,只能用于打开可执行文件(exe文件)。
2.
ShellExecute
可以打开不同种类的文件,可以指定工作目录,并且还可以寻找文件的关联直接打开不用加载与文件关联的应用程序,ShellExecute还可以打开网页,启动相应的邮件关联发送邮件等等。
原型如下:
HINSTANCE ShellExecute(
HWND hwnd, //父窗口句柄
LPCTSTR lpOperation, //操作, 打开方式
"edit","explore","open","find","print","NULL"
LPCTSTR lpFile, //文件名,前面可加路径
LPCTSTR lpParameters, //参数
LPCTSTR lpDirectory, //默认文件夹
INT nShowCmd //显示方式
);
使用方法如下:
ShellExecute(NULL,"open","C:\\Test.txt",NULL,NULL,SW_SHOWNORMAL);
// 打开C:\Test.txt 文件
ShellExecute(NULL, "open", "http://www.google.com",/NULL, NULL, SW_SHOWNORMAL); // 打开网页www.google.com
ShellExecute(NULL,"explore",
"D:\\C++",NULL,NULL,SW_SHOWNORMAL); // 打开目录D:\C++
ShellExecute(NULL,"print","C:\\Test.txt",NULL,NULL,
SW_HIDE); // 打印文件C:\Test.txt
ShellExecute不支持定向输出。
3.
CreateProcess 一
共有十个参数,不过大部分都可以用NULL代替,它可以指定进程的安全属性,继承信息,类的优先级等等。如果我们要得到足够多的关于新的进程的信息,控制
新的进程的细节属性,若要达到这些目的,我们就需要使用CreateProcess函数了。
原型如下:

BOOL CreateProcess(

LPCTSTR lpApplicationName,//执行程序名

LPTSTR lpCommandLine, // 参数行

//下面两个参数描述了所创建的进程和线程的安全属性,如果为NULL则使用默认的安全属性

LPSECURITY_ATTRIBUTES lpProcessAttributes, // process
security attributes

LPSECURITY_ATTRIBUTES
lpThreadAttributes, // thread security
attributes

BOOL bInheritHandles, //
继承标志

DWORD dwCreationFlags,//
创建标志

LPVOID lpEnvironment, //
环境变量

LPCTSTR lpCurrentDirectory, //
运行该进程的初始目录

LPSTARTUPINFO lpStartupInfo, // 用于在创建子进程时设置各种属性

LPPROCESS_INFORMATION
lpProcessInformation//用于在进程创建后接受相关信息

)
;

使用方法如下:
PROCESS_INFORMATION pi;
STARTUPINFO
si;

memset(&si,0,sizeof(si)); //清零

si.cb=sizeof(si);

si.wShowWindow=SW_SHOW;

si.dwFlags=STARTF_USESHOWWINDOW;
bool
fRet=CreateProcess("D:\\putty.exe",NULL,NULL,FALSE,NULL,NULL,NULL,NULL,&si,&pi);

如果要执行的exe文件需要加载配置文件,则将倒数第三个参数NULL设置成当前目录(暂时理解为exe文件所在目录)。否则不识别配置文件,加载错误。
关于三个SDK函数: WinExec, ShellExecute,CreateProcess
的其他注意事项:

1、定义头文件

在头文件stdafx.h中必须定义以下两个头文件:

#include <shlobj.h>// 可替换为 windows.h
#include <shellapi.h>
如 果定义了头文件#include <windows.h>的话就不必定义 #include <shlobj.h>
了,"windows.h"
不光是包含了"shellapi.h",它还定义了许多数据类型,如果没有这些数据类型,shellapi.h本身会出错。

2、定义路径

C++中所表示的路径要用
" \\ "而不是平常所用的" \ ",所以以上三个函数表示路径都为:

Disk:\\Directory\\...\\File
name

WinExec("D:\\Program
Files\\Test\\Test.exe",SW_SHOWMAXIMIZED);

ShellExecute(NULL,"open","C:\\Test.txt",NULL,NULL,SW_SHOWNORMAL);
bool
fRet=CreateProcess("D:\\putty.exe",NULL,NULL,FALSE,NULL,NULL,NULL,NULL,&si,&pi);

热心网友 时间:2023-10-16 01:47

exec函数族,如execle
spwan函数族,如spwanle

热心网友 时间:2023-10-16 01:47

CreateProcess就可以,今天刚好用到

热心网友 时间:2023-10-16 01:48

进程间通信方法很多,一般常用共享内存、管道、端口通信。

热心网友 时间:2023-10-16 01:46

给你介绍三个函数,代码很简单,可以直接打开电脑内的软件
启动另一个exe程序有三个方法:
WinExec();ShellExecute();和CreateProcess();
其中WinExec()最简单,ShellExecute()较灵活,CreateProcess()最复杂。
1.
WinExec()有两个参数,第一个是要打开的exe文件的路径,第二个是显示方式,如下:
UINT
WinExec(
LPCSTR lpCmdLine, // 命令路径
UINT uCmdShow //
显示方式)
使用方法如下:
WinExec("Notepad.exe",
SW_SHOW); // 打开记事本
WinExec("D:\\Program
Files\\Test\\Test.exe",SW_SHOWMAXIMIZED);//
以最大化的方式打开Test.exe
需要注意的是若用 SW_SHOWMAXMIZED 方式去加载一个无最大化按钮的程序,譬如Neterm,Calc
等等,就不会出现正常的 窗体,但是已经被加到任务列表里了。
缺点:不灵活,只能用于打开可执行文件(exe文件)。
2.
ShellExecute
可以打开不同种类的文件,可以指定工作目录,并且还可以寻找文件的关联直接打开不用加载与文件关联的应用程序,ShellExecute还可以打开网页,启动相应的邮件关联发送邮件等等。
原型如下:
HINSTANCE ShellExecute(
HWND hwnd, //父窗口句柄
LPCTSTR lpOperation, //操作, 打开方式
"edit","explore","open","find","print","NULL"
LPCTSTR lpFile, //文件名,前面可加路径
LPCTSTR lpParameters, //参数
LPCTSTR lpDirectory, //默认文件夹
INT nShowCmd //显示方式
);
使用方法如下:
ShellExecute(NULL,"open","C:\\Test.txt",NULL,NULL,SW_SHOWNORMAL);
// 打开C:\Test.txt 文件
ShellExecute(NULL, "open", "http://www.google.com",/NULL, NULL, SW_SHOWNORMAL); // 打开网页www.google.com
ShellExecute(NULL,"explore",
"D:\\C++",NULL,NULL,SW_SHOWNORMAL); // 打开目录D:\C++
ShellExecute(NULL,"print","C:\\Test.txt",NULL,NULL,
SW_HIDE); // 打印文件C:\Test.txt
ShellExecute不支持定向输出。
3.
CreateProcess 一
共有十个参数,不过大部分都可以用NULL代替,它可以指定进程的安全属性,继承信息,类的优先级等等。如果我们要得到足够多的关于新的进程的信息,控制
新的进程的细节属性,若要达到这些目的,我们就需要使用CreateProcess函数了。
原型如下:

BOOL CreateProcess(

LPCTSTR lpApplicationName,//执行程序名

LPTSTR lpCommandLine, // 参数行

//下面两个参数描述了所创建的进程和线程的安全属性,如果为NULL则使用默认的安全属性

LPSECURITY_ATTRIBUTES lpProcessAttributes, // process
security attributes

LPSECURITY_ATTRIBUTES
lpThreadAttributes, // thread security
attributes

BOOL bInheritHandles, //
继承标志

DWORD dwCreationFlags,//
创建标志

LPVOID lpEnvironment, //
环境变量

LPCTSTR lpCurrentDirectory, //
运行该进程的初始目录

LPSTARTUPINFO lpStartupInfo, // 用于在创建子进程时设置各种属性

LPPROCESS_INFORMATION
lpProcessInformation//用于在进程创建后接受相关信息

)
;

使用方法如下:
PROCESS_INFORMATION pi;
STARTUPINFO
si;

memset(&si,0,sizeof(si)); //清零

si.cb=sizeof(si);

si.wShowWindow=SW_SHOW;

si.dwFlags=STARTF_USESHOWWINDOW;
bool
fRet=CreateProcess("D:\\putty.exe",NULL,NULL,FALSE,NULL,NULL,NULL,NULL,&si,&pi);

如果要执行的exe文件需要加载配置文件,则将倒数第三个参数NULL设置成当前目录(暂时理解为exe文件所在目录)。否则不识别配置文件,加载错误。
关于三个SDK函数: WinExec, ShellExecute,CreateProcess
的其他注意事项:

1、定义头文件

在头文件stdafx.h中必须定义以下两个头文件:

#include <shlobj.h>// 可替换为 windows.h
#include <shellapi.h>
如 果定义了头文件#include <windows.h>的话就不必定义 #include <shlobj.h>
了,"windows.h"
不光是包含了"shellapi.h",它还定义了许多数据类型,如果没有这些数据类型,shellapi.h本身会出错。

2、定义路径

C++中所表示的路径要用
" \\ "而不是平常所用的" \ ",所以以上三个函数表示路径都为:

Disk:\\Directory\\...\\File
name

WinExec("D:\\Program
Files\\Test\\Test.exe",SW_SHOWMAXIMIZED);

ShellExecute(NULL,"open","C:\\Test.txt",NULL,NULL,SW_SHOWNORMAL);
bool
fRet=CreateProcess("D:\\putty.exe",NULL,NULL,FALSE,NULL,NULL,NULL,NULL,&si,&pi);

热心网友 时间:2023-10-16 01:47

exec函数族,如execle
spwan函数族,如spwanle

热心网友 时间:2023-10-16 01:47

CreateProcess就可以,今天刚好用到

热心网友 时间:2023-10-16 01:48

进程间通信方法很多,一般常用共享内存、管道、端口通信。

热心网友 时间:2023-10-16 01:46

给你介绍三个函数,代码很简单,可以直接打开电脑内的软件
启动另一个exe程序有三个方法:
WinExec();ShellExecute();和CreateProcess();
其中WinExec()最简单,ShellExecute()较灵活,CreateProcess()最复杂。
1.
WinExec()有两个参数,第一个是要打开的exe文件的路径,第二个是显示方式,如下:
UINT
WinExec(
LPCSTR lpCmdLine, // 命令路径
UINT uCmdShow //
显示方式)
使用方法如下:
WinExec("Notepad.exe",
SW_SHOW); // 打开记事本
WinExec("D:\\Program
Files\\Test\\Test.exe",SW_SHOWMAXIMIZED);//
以最大化的方式打开Test.exe
需要注意的是若用 SW_SHOWMAXMIZED 方式去加载一个无最大化按钮的程序,譬如Neterm,Calc
等等,就不会出现正常的 窗体,但是已经被加到任务列表里了。
缺点:不灵活,只能用于打开可执行文件(exe文件)。
2.
ShellExecute
可以打开不同种类的文件,可以指定工作目录,并且还可以寻找文件的关联直接打开不用加载与文件关联的应用程序,ShellExecute还可以打开网页,启动相应的邮件关联发送邮件等等。
原型如下:
HINSTANCE ShellExecute(
HWND hwnd, //父窗口句柄
LPCTSTR lpOperation, //操作, 打开方式
"edit","explore","open","find","print","NULL"
LPCTSTR lpFile, //文件名,前面可加路径
LPCTSTR lpParameters, //参数
LPCTSTR lpDirectory, //默认文件夹
INT nShowCmd //显示方式
);
使用方法如下:
ShellExecute(NULL,"open","C:\\Test.txt",NULL,NULL,SW_SHOWNORMAL);
// 打开C:\Test.txt 文件
ShellExecute(NULL, "open", "http://www.google.com",/NULL, NULL, SW_SHOWNORMAL); // 打开网页www.google.com
ShellExecute(NULL,"explore",
"D:\\C++",NULL,NULL,SW_SHOWNORMAL); // 打开目录D:\C++
ShellExecute(NULL,"print","C:\\Test.txt",NULL,NULL,
SW_HIDE); // 打印文件C:\Test.txt
ShellExecute不支持定向输出。
3.
CreateProcess 一
共有十个参数,不过大部分都可以用NULL代替,它可以指定进程的安全属性,继承信息,类的优先级等等。如果我们要得到足够多的关于新的进程的信息,控制
新的进程的细节属性,若要达到这些目的,我们就需要使用CreateProcess函数了。
原型如下:

BOOL CreateProcess(

LPCTSTR lpApplicationName,//执行程序名

LPTSTR lpCommandLine, // 参数行

//下面两个参数描述了所创建的进程和线程的安全属性,如果为NULL则使用默认的安全属性

LPSECURITY_ATTRIBUTES lpProcessAttributes, // process
security attributes

LPSECURITY_ATTRIBUTES
lpThreadAttributes, // thread security
attributes

BOOL bInheritHandles, //
继承标志

DWORD dwCreationFlags,//
创建标志

LPVOID lpEnvironment, //
环境变量

LPCTSTR lpCurrentDirectory, //
运行该进程的初始目录

LPSTARTUPINFO lpStartupInfo, // 用于在创建子进程时设置各种属性

LPPROCESS_INFORMATION
lpProcessInformation//用于在进程创建后接受相关信息

)
;

使用方法如下:
PROCESS_INFORMATION pi;
STARTUPINFO
si;

memset(&si,0,sizeof(si)); //清零

si.cb=sizeof(si);

si.wShowWindow=SW_SHOW;

si.dwFlags=STARTF_USESHOWWINDOW;
bool
fRet=CreateProcess("D:\\putty.exe",NULL,NULL,FALSE,NULL,NULL,NULL,NULL,&si,&pi);

如果要执行的exe文件需要加载配置文件,则将倒数第三个参数NULL设置成当前目录(暂时理解为exe文件所在目录)。否则不识别配置文件,加载错误。
关于三个SDK函数: WinExec, ShellExecute,CreateProcess
的其他注意事项:

1、定义头文件

在头文件stdafx.h中必须定义以下两个头文件:

#include <shlobj.h>// 可替换为 windows.h
#include <shellapi.h>
如 果定义了头文件#include <windows.h>的话就不必定义 #include <shlobj.h>
了,"windows.h"
不光是包含了"shellapi.h",它还定义了许多数据类型,如果没有这些数据类型,shellapi.h本身会出错。

2、定义路径

C++中所表示的路径要用
" \\ "而不是平常所用的" \ ",所以以上三个函数表示路径都为:

Disk:\\Directory\\...\\File
name

WinExec("D:\\Program
Files\\Test\\Test.exe",SW_SHOWMAXIMIZED);

ShellExecute(NULL,"open","C:\\Test.txt",NULL,NULL,SW_SHOWNORMAL);
bool
fRet=CreateProcess("D:\\putty.exe",NULL,NULL,FALSE,NULL,NULL,NULL,NULL,&si,&pi);

热心网友 时间:2023-10-16 01:47

exec函数族,如execle
spwan函数族,如spwanle

热心网友 时间:2023-10-16 01:47

CreateProcess就可以,今天刚好用到

热心网友 时间:2023-10-16 01:48

进程间通信方法很多,一般常用共享内存、管道、端口通信。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
现在波兰的签证率高不高 去波兰如何办签证 去波兰办签证好办理吗 波兰签证好签吗 win7 多重网络 教师资格证普通话要多少级 想考教师资格证普通话必须过几级 qq影视会员SVIP和超级影视VIP的区别在哪里? 一小撮怎么造句 盛行一时怎么造句 fork后调用exec 函数族,命令行参数中能否使用重定向符号“&gt;&gt;&quot;? 手机搜狗浏览器如何复制下载好的文件,急!如果下载好的文件不能复制,下载的意义何在?急! 函数的头部主要三部分 有谁知道 搜狗浏览器 这个软件的全部功能?我用的是华为手机。 搜狗浏览器没有手机版的吗? C++所有头文件所包含的函数 exec是什么意思 软键exec的功能是什么 exec函数族具体干什么的,参数又是什么意思 (C语言)如何使用exec函数族? 守护甜心,亚梦的第五甜心 哪儿5甜馨为什么不来 甜馨会参加爸爸去哪儿第六季 兰兰和甜甜一起折千纸鹤 人文学科 -&gt; 中国文学五甜草 煎中药为什么要用砂锅而不是铁锅 你是如何看待5G的,对它有什么理解? 为什么煎中药都不用铁锅? 我给女朋友发520红包她回我88.88什么意思 发布产品时,以下哪些关键词可以使用?商标。侵权词,蓝海词,品牌词 5G信号和4G信号本质上有不同吗? 方舟什么显卡可以稳定60帧 求大神们给个能开方舟生存进化高特效电脑配置,预算大概6000,不知道可以不可以 方舟手游单机不开网络会降低卡顿吗? 2015人美版一年级美术下册《有趣的布玩具》教案 这个配置可以玩方舟吗? 如何将家乡突出特点转换成美术课程资源 我怎么玩不了,方舟手游,华为荣耀8C不能玩吗?求解答 如何将本地民间文化艺术融入幼儿园的艺术教育中 这个配置玩方舟生存进化可以开最高特效吗? 玩方舟生存进化中高特效用什么显卡 民间美术对生活和艺术创造有何价值 如何辨别bbs话筒真伪 玩全民K歌联想um6麦克风和德胜pg-105哪个好? 谁用过酷高声卡,话筒的音量忽大忽小 合同诈骗罪的概念和特征 合同诈骗罪怎么判 合同诈骗罪是什么意思 合同诈骗罪是什么罪 合同诈骗属于什么罪 合同诈骗罪需要判多少年