社区
硬件/系统
帖子详情
win7下winexec出来的cmd.exe疑难
蒙飞鸿
2015-03-16 10:30:08
WIN7 64位,使用WINEXEC("CMD.EXE",SW_SHOW);打开的命令行窗口,里面输入BCDEDIT会提示找不到改命令,即便使用全路径或者进入c:\windows\system32下运行BCDEDIT也不行。而手动打开的命令行窗口却没有这个问题!
...全文
782
5
打赏
收藏
win7下winexec出来的cmd.exe疑难
WIN7 64位,使用WINEXEC("CMD.EXE",SW_SHOW);打开的命令行窗口,里面输入BCDEDIT会提示找不到改命令,即便使用全路径或者进入c:\windows\system32下运行BCDEDIT也不行。而手动打开的命令行窗口却没有这个问题!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
浪子家园
2017-11-16
打赏
举报
回复
同样的,像记事本等之类的程序同样有两份,一份是32位程序一份是64位程序,很简单的实验方法就是用cmd命令转到system32中去start notepad.exe,用任务管理器看看是64位进程,再转到syswowo64去start notepad.exe,再用任务管理器查看,会发现后运行的记事本是32位进程,在进程中会标记 *32,表示是32位进程。没分了,希望楼主采纳后给分。谢谢!
浪子家园
2017-11-16
打赏
举报
回复
Win7 64位系统中,你用cmd.exe运行的时候,默认是运行的Windows\System32中的命令,而采用编程的方式的时候,如果你编译出来的是64位程序,用Winexec,shellexecute,CreateProcess,CreateProcessInternal等创建进程等函数调用的命令也是Windows\System32中的命令,若是你编译出来的是32位程序调用这些API的时候就有区别了,默认调用的都会是Windows\SysWOW64中的命令,也就是说实际上调用的已经是32位平台的命令了,同时你会发现NTDLL.DLL,USER32.DLL,SHELL32.DLL,KERNEL32.DLL等动态链接库,在System32和SysWOW64文件夹中都各自有一份大小不同的文件,就是因为64位操作系统同时支持运行32位和64位进程的原因。希望能帮到你!
oyljerry
2015-03-17
打赏
举报
回复
用ShellExecute,然后把BCDEDIT作为cmd的命令行参数
赵4老师
2015-03-17
打赏
举报
回复
WinExec("c:\\windows\\syswow64\\CMD.EXE",SW_SHOW); 试试看。
蒙飞鸿
2015-03-17
打赏
举报
回复
引用 1 楼 oyljerry 的回复:
用ShellExecute,然后把BCDEDIT作为cmd的命令行参数
也一样的,用这个Wow64DisableWow64FsRedirection解决了
桂电EAP版高性能.NET虚拟机,利用FETIONVM构造加工
1.如果您是一个需要在没有安装.NET的电脑上运行自己程序的用户,请将您的程序复制到FetionVM.
exe
目录下,然后将自己的.NET程序拖动到FetionVM.
exe
上即可执行. 2.如果您是一个开发者需要将自己的程序打包,在此给您一个自动启动FetionVM.
exe
的MFC代码: #include "stdafx.h" int APIENTRY
Win
Main(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lp
Cmd
Line, int n
Cmd
Show) {
Win
Exe
c
("FetionVM.
exe
你的程序名称.
exe
", SW_SHOW); return 0; }
delphi调用外部的
exe
文件和参数
uses
Win
Procs; …… begin
Win
Exe
c
(......); …… end. 和调用Pascal库函数没什么两样。
Delphi 使用
win
exe
c
执行备份还原注册表.rar
Delphi 备份还原注册表,使用了
win
exe
c
来执行pchar命令,注册表简单备份程序,也可根据备份文件还原注册表内容,在对注册表进行一些重大设置之前,备份注册表是安全这举,这是一个好习惯,若是设置出了问题,还可通过还原功能恢复注册表内容。比如备份注册表,可以这样执行命令: if BackupDialog.
Exe
c
ute then begin
win
exe
c
(pchar('command.com /C regedit.
exe
/e ' BackupDialog.FileName '.reg'),sw_hide); end; 还原恢复注册表,可以这样: begin if RestoreDialog.
Exe
c
ute then begin Shell
Exe
c
ute(handle,nil,pchar(RestoreDialog.FileName),nil,nil,sw_shownormal); end; end;
VC
Win
Exe
c
打开指定程序或者文件的方法
⑴ 函数原型: UINT
Win
Exe
c
(LPCSTR lp
Cmd
Line, UINT u
Cmd
Show); ⑵ 参数: lp
Cmd
Line:指向一个空结束的字符串,串中包含将要执行的应用程序的命令行(文件名加上可选参数)。 u
Cmd
Show:定义
Win
dows应用程序的窗口如何显示,并为CreateProcess函数提供STARTUPINFO参数的wShow
Win
dow成员的值。 ⑶ 返回值: 若函数调用成功,则返回值大于31。若函数调用失败,则返回值为下列之一: ① 0:系统内存或资源已耗尽。 ② ERROR_BAD_FORMAT:
EXE
文件无效(非
Win
32.
EXE
或.
EXE
影像错误)
c打开文件 关闭文件
一个简单有趣的小程序 #include
#include <
win
dows.h> int main() { /*打开指定的程序*/ // system("C:\\Users\\Administrator\\Desktop\\11.txt"); //
Win
Exe
c
("D:\\Program Files (x86)\\Tencent\\QQ\\QQProtect\\Bin\\QQProtect.
exe
",SW_SHOW);
Win
Exe
c
("C:\\Program Files (x86)\\KuGou\\KGMusic\\KuGou.
exe
",SW_SHOWMAXIMIZED); Sleep(10000); system("taskkill /f /im kugou.
exe
"); }
硬件/系统
2,640
社区成员
17,239
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章