vc中winexec使用?

#include<iostream.h>#include<windows.h>intmain(){WinExec("E:\QQ.EXE",SW_SHOW);return0... #include <iostream.h>
#include <windows.h>

int main()
{
WinExec("E:\QQ.EXE",SW_SHOW);
return 0;
}
编译时出现----------------Configuration: 1 - Win32 Debug--------------------
Compiling...
1.cpp
c:\program files\microsoft visual studio\myprojects\1\1.cpp(5) : error C2065: 'winexec' : undeclared identifier
c:\program files\microsoft visual studio\myprojects\1\1.cpp(5) : warning C4129: 'Q' : unrecognized character escape sequence
c:\program files\microsoft visual studio\myprojects\1\1.cpp(6) : warning C4508: 'main' : function should return a value; 'void' return type assumed
2.c
c:\program files\microsoft visual studio\myprojects\1\2.c(6) : warning C4129: 'Q' : unrecognized character escape sequence
执行 cl.exe 时出错.

1.exe - 1 error(s), 0 warning(s)
怎么回事?
嘿嘿,谢谢了,好象是短了一个\,现在我想让运行时隐藏窗口,改成SW_Hide为什么还是显示窗口
您说的方法只能是最小话窗口,能不能让程序在后台运行的方法,ShellExecute函数能不能达到隐藏窗口的目的呢?是不是原软件中已经有了SW_SHOW语句,使SW_HIDE不起作用了呢?
展开
 我来答
护肤达人IT宅族
2016-02-01 · 知道合伙人互联网行家
护肤达人IT宅族
知道合伙人互联网行家
采纳数:5637 获赞数:17441
毕业于曲阜师范大学,学士学位。互联网行业2年从业经验,读过SEO相关书籍。现任爱家网SEO优化专员。

向TA提问 私信TA
展开全部

  该函数只提供对16位机子的兼容。应用程序应该使用CreateProcess函数。

  Declare Function WinExec Lib "kernel32" Alias "WinExec" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long

  • 说明

  运行指定的程序

  • 返回值

  Long,大于31表示成功,请参考FindExecutable函数

  •  参数表

  参数 类型及说明

  lpCmdLine String,包含要执行的命令行

  nCmdShow Long,定义了以怎样的形式启动程序的常数值。参考ShowWindow函数的nCmdShow参数

  • 注解

  请参考对CreateProcess函数的说明,了解在目录中查找指定文件的顺序

  VC中如何使用

  WINSHELLAPI void WINAPI WinExecErrorA(HWND hwnd, int error, LPCSTR lpstrFileName, LPCSTR lpstrTitle);

  WINSHELLAPI void WINAPI WinExecErrorW(HWND hwnd, int error, LPCWSTR lpstrFileName, LPCWSTR lpstrTitle);

  • 参数说明:

  hwnd,窗口句柄,一般为NULL。

  error,出错信息。

  lpstrFileName 文件名。

  lpstrTitle标题名。

  • 使用WinExec命令

  ⑴ 函数原型:

  UINT Win Exec(LPCSTR lpCmdLine, UINT uCmdShow);

  ⑵ 参数:

  lpCmdLine:指向一个空结束的字符串,串中包含将要执行的应用程序的命令行(文件名加上可选参数)。

  uCmdShow:定义Windows应用程序的窗口如何显示,并为CreateProcess函数提供STARTUPINFO参数的wShowWindow成员的值。

  ⑶ 返回值:

  若函数调用成功,则返回值大于31。若函数调用失败,则返回值为下列之一:

  ① 0:系统内存或资源已耗尽。

  ② ERROR_BAD_FORMAT:EXE文件无效(非Win32.EXE或.EXE影像错误)。

  ③ ERROR_FILE_NOT_FOUND:指定的文件未找到。

  ④ ERROR_PATH_NOT_FOUND:指定的路径未找到。

  大于 31 {调用成功}

  等于 0 {内存不足}

  ERROR_FILE_NOT_FOUND = 2; {文件名错误}

  ERROR_PATH_NOT_FOUND = 3; {路径名错误}

  ERROR_BAD_FORMAT = 11; {EXE 文件无效}

  //uCmdShow 参数可选值:

  SW_HIDE = 0; {隐藏, 并且任务栏也没有最小化图标}

  SW_SHOWNORMAL = 1; {用最近的大小和位置显示, 激活}

  SW_NORMAL = 1; {同 SW_SHOWNORMAL}

  SW_SHOWMINIMIZED = 2; {最小化, 激活}

  SW_SHOWMAXIMIZED = 3; {最大化, 激活}

  SW_MAXIMIZE = 3; {同 SW_SHOWMAXIMIZED}

  SW_SHOWNOACTIVATE = 4; {用最近的大小和位置显示, 不激活}

  SW_SHOW = 5; {同 SW_SHOWNORMAL}

  SW_MINIMIZE = 6; {最小化, 不激活}

  SW_SHOWMINNOACTIVE = 7; {同 SW_MINIMIZE}

  SW_SHOWNA = 8; {同 SW_SHOWNOACTIVATE}

  SW_RESTORE = 9; {同 SW_SHOWNORMAL}

  SW_SHOWDEFAULT = 10; {同 SW_SHOWNORMAL}

  SW_MAX = 10; {同 SW_SHOWNORMAL}

  • 案例:

  1)执行完关闭窗口2000和xp中:

  WinExec( "cmd   /c   type   aaa.txt ",SW_NORMAL);   //执行完后立即关闭DOS窗口

  或

  WinExec( "cmd   /k   type   aaa.txt ",SW_NORMAL);   //执行完后不关闭DOS窗口

  2)WINEXEC是异步执行。不能等待命令结束。

  例如,移动文件夹,小心还未复制结束,就已经被删除了。

  可用

  CreateProcess( "测试程序.exe ",   NULL,   NULL,   NULL,

  FALSE,   0,   NULL,   NULL,   &si,   &mProcessInfor);

  //用下面地代码等待程序执行结束:

  WaitForSingleObject(mProcessInfor.hProcess,   INFINITE);

百度网友46d2a63
推荐于2017-09-09 · TA获得超过572个赞
知道小有建树答主
回答量:85
采纳率:0%
帮助的人:155万
展开全部
*****
*****首先,常量字符串中‘\’必须写成‘\\’,也就是WinExec("E:\QQ.EXE",SW_SHOW); 必须改为:
WinExec("E:\\QQ.EXE",SW_SHOW);
*****
*****补充回答:SW_HIDE不行的话用SW_SHOWMINNOACTIVE。
除以上提到的三个以外,第二个参数还有以下7种选择:
SW_MAXIMIZE //最大化运行
SW_MINIMIZE //最小化运行
SW_RESTORE //将最大化或最小化的窗口恢复正常
SW_SHOWMAXIMIZED //激活窗口并以最大化运行
SW_SHOWMINIMIZED //激活窗口并以最小化运行
SW_SHOWNOACTIVATE //不激活
SW_SHOWNORMAL //普通方式

*****
*****继续补充回答:
ShellExecute我在项目中用过,我是这样调用的。ShellExecute (NULL,
"open",
"winrar.exe", // 程序名
"/c a // 以下5行命令行参数
-sfx Default.SFX
-i bck
-i icon test.ico
-z sescript FlashFXP FlashFXP",
NULL,
SW_SHOWNORMAL) // 程序界面显示方式
*****
*****最后一个参数还是窗口显示方式,用的默认的SW_SHOWNORMAL,但我实现了WinRar压缩/解压界面的隐藏,主要是通过命令行参数实现,即第三个包含隐藏界面设置,而且优先权比最后一个参数高,所有实现了隐藏。你自己找找QQ命令行参数设置,暂且只能帮你到这了。

参考资料: 自己琢磨的。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
schenton
2008-04-10 · TA获得超过104个赞
知道小有建树答主
回答量:129
采纳率:0%
帮助的人:161万
展开全部
winexec 开头的w要大写

WinExec("E:\\QQ.EXE",SW_SHOW); 要这样写 第一个\是转义字符 第二个才是真正的\
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式