WinExec的用法是怎么样的?

WinExec的用法是怎么样的?
我用  
AnsiString gmd,gme;
      gme="start "+gmd; //gmd代表一个绝对路径的全文件名
用        m=system(gme.c_str());打以正常打开
而改用 WinExec(gme.c_str(),SW_SHOWNORMAL); 却怎么总是提示找不到文件呢?WinExec返回的值总是(ERROR_FILE_NOT_FOUND)代表找不到文件呢?



留言回复者:victor, 回复时间:2005-8-23 9:06:20
文件名没写全,路径、文件名等都需要写全了,例如 "C://WINDOWS//NOTEPAD.EXE"
system 命令可以在没有路径或扩展名的情况下,通过 path 环境变量搜索到这个文件运行,WinExec 不搜索,路径和文件名及扩展名都需要完全正确才行

留言回复者:海浪来了, 回复时间:2005-9-6 22:50:11
我不是要执行一个特定的可执行文件,而是要用系统默认的程序打开一个文件!
比如我要双击一个按钮打开"C://MYDRAW//说明.DOC",而系统用于打开这个文件的默认程序可能是Word,也可能是写字板,事先是不特定的,我是想让系统自己去判断,就象在我的电脑中双击了这个“说明.DOC”的效果一样!我查过一些资料,说是写成:
WinExec("start C://MYDRAW//说明.DOC",0)就可以了,但我试了却不行!

留言回复者:海浪来了, 回复时间:2005-9-9 21:44:07
顶一下!

留言回复者:海浪来了, 回复时间:2005-9-13 21:00:11
再顶一下!

留言回复者:victor, 回复时间:2005-9-14 14:49:28
你要的函数是 ShellExecute 而不是 WinExec
你需要的是 ShellExecute 函数。
ShellExecute(Application->Handle, "open", "C://MYDRAW//说明.DOC", NULL, "", SW_SHOWNORMAL); //开启文档
ShellExecute(Application->Handle, "open", "http://www.cppfans.com/", NULL, "", SW_SHOWNORMAL); //打开浏览器浏览网页
ShellExecute(Application->Handle, "open", "mailto:victor@cppfans.com", NULL, "", SW_SHOWNORMAL); //开启默认邮箱发邮件
ShellExecute(Application->Handle, "open", "C://WINDOWS//NOTEPAD.EXE", NULL, "", SW_SHOWNORMAL); //执行可执行文件
ShellExecute(Application->Handle, "open", "C://WINDOWS//", NULL, "", SW_SHOWNORMAL); //开启资源管理器打开文件夹

WinExec 是兼容老版本 Windows 保留的过时的函数,现在用 CreateProcess 函数,作用是开启一个子进程,只能装载可执行文件。
ShellExecute 可以打开可执行文件、关联的文件、URL 等,和双击文件的效果是一样的。
void __fastcall TForm1::Button1Click(TObject *Sender)
{
OpenDialog1->Title = "Select application you'll launch";
OpenDialog1->Filter = "EXE File (*.exe)|*.exe";
if (OpenDialog1->Execute())
{
Caption = OpenDialog1->FileName;
ShellExecute(Application->Handle,"open",OpenDialog1->FileName.c_str(),NULL,NULL,SW_SHOW);
}
}
AnsiString Path=ExtractFilePath(Application->ExeName)+"系统测试程序.exe";
WinExec(Path.c_str(),SW_SHOW);
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值