分享
 
 
 

vc入门宝典十二(调用其它程序)

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

调用其它程序

何志丹

WinExec

原型:

UINT WinExec(

LPCSTR lpCmdLine, // address of command line

UINT uCmdShow // window style for new application

);

用于十六位操作系统及兼容系统.

例如:

WinExec("notepad.exe f:\\调用程序.txt",SW_SHOW);

WinExec("notepad.exe ",SW_SHOW);

不同的参数用空格分开,故路径中不能有空格,而大部分程序默认是安装在"...\Program Files\...",如word,这极大的限制了WinExec的应用范围.

以上可不带路径:

1,程序所在目录.

2,当前路径.

3,系统目录,可以用GetSystemDirectory得到.

4,Windows 目录. 可以用TheGetWindowsDirectory得到.

5,在环境变量中设置的目录.

ShellExecute

原型:

HINSTANCE ShellExecute(

HWND hwnd, //父窗口句柄

LPCTSTR lpOperation, //操作,"open","print","explore"

LPCTSTR lpFile, //文件名,前面可加路径

LPCTSTR lpParameters, //参数

LPCTSTR lpDirectory, //默认文件夹

INT nShowCmd //显示方式

);

打开一个应用程序

ShellExecute(this->m_hWnd,"open","calc.exe","","", SW_SHOW );

ShellExecute(this->m_hWnd,"open","notepad.exe","c:\MyLog.log","",SW_SHOW );

打开一个同系统程序相关连的文档

ShellExecute(this->m_hWnd,"open","c:\abc.txt","","",SW_SHOW );

激活相关程序,发送EMAIL

ShellExecute(this->m_hWnd,"open","mailto:nishinapp@yahoo.com","","", SW_SHOW );

用系统打印机打印文档

ShellExecute(this->m_hWnd,"print","c:\abc.txt","","", SW_HIDE);

lpParameters的用法示例:

一,建立一个可以接受参数的程序call.exe,添加如下代码:

BOOL CCallApp::InitInstance()

{

int n = __argc;

for(int i = 1 ; i < n ; i++)

AfxMessageBox(__targv[i]);

//__targv[0]存储的是程序的文件名

...

}

二,Alt + F7的进行Project setting, Debug -> program argurments ->"1 2 3 4 5".

如果有多个参数,用空格分开.

三,运行.

四,执行ShellExecute(NULL,NULL,"f:\\call.exe","1 2 3 4 5",NULL,SW_SHOW);

BOOL CreateProcess(

LPCTSTR lpApplicationName,

LPTSTR lpCommandLine,

LPSECURITY_ATTRIBUTES lpProcessAttributes,

LPSECURITY_ATTRIBUTES lpThreadAttributes,

BOOL bInheritHandles,

DWORD dwCreationFlags,

LPVOID lpEnvironment,

LPCTSTR lpCurrentDirectory,

LPSTARTUPINFO lpStartupInfo,

LPPROCESS_INFORMATION lpProcessInformation

);

STARTUPINFO startupInfo;

memset(&startupInfo,0,sizeof(STARTUPINFO));

startupInfo.cb = sizeof(STARTUPINFO);

示例:

//程序最启动时最大化

startupInfo.dwFlags |= STARTF_USESHOWWINDOW;

startupInfo.wShowWindow = SW_SHOWMAXIMIZED;

//运行....exe

PROCESS_INFORMATION ProcessInfo;

BOOL bCreate = ::CreateProcess

(

"f:\\call.exe",// 1 2 3 4",

NULL,

NULL,

NULL,

FALSE,

0,

NULL,

NULL,

&startupInfo,

&ProcessInfo);

//等到call.exe执行完毕

WaitForSingleObject(ProcessInfo.hProcess,1000000);

MessageBox("调用程序结束!");

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有