关于c++调用ewfmgr命令失败

yihui1122 2016-12-21 02:20:35
c++使用system命令执行ewf命令时使用以下代码

int main()
{
system(“ewfmgr c:”);
}
运行程序提示‘ewfmgr’不是内部或外部命令,也不是可运行程序或批处理文件。
但是在cmd中直接输入ewfmgr c:是可以查询c盘的写保护状态的,试着运行了下system32下的shutdown命令可以成功,说明不是环境变量的问题。谁遇到过这样的问题希望帮忙解答下,谢谢!
...全文
1533 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-12-21
  • 打赏
  • 举报
回复
总是发现Path环境变量被某些软件安装时错误修改。比如带空格的目录名未加引号、带汉字的目录引起目录查找混乱等问题,严重影响系统查找可执行文件和dll。 编译此源代码,生成PathShortener.exe,然后在cmd窗口里面运行PathShortener.exe>path.txt,打开path.txt,手动将其内容拷贝粘贴覆盖修改‘我的电脑、属性、高级、环境变量、系统变量、Path、编辑、变量值’即可纠正设置错误的Path http://download.csdn.net/detail/zhao4zhong1/2652343 或者 C:\>runas /? RUNAS 用法: RUNAS [ [/noprofile | /profile] [/env] [/savecred | /netonly] ] /user:<UserName> program RUNAS [ [/noprofile | /profile] [/env] [/savecred] ] /smartcard [/user:<UserName>] program /noprofile 指定不应该加载用户的配置文件。 这会加速应用程序加载,但 可能会造成一些应用程序运行不正常。 /profile 指定应该加载用户的配置文件。 这是默认值。 /env 要使用当前环境,而不是用户的环境。 /netonly 只在指定的凭据限于远程访问的情况下才使用。 /savecred 用用户以前保存的凭据。 Windows XP Home Edition 上没有这个选项。 该选项会被忽略。 /smartcard 如果凭据是智能卡提供的,则使用这个选项。 /user <UserName> 应使用 USER@DOMAIN 或 DOMAIN\USER 形式 program EXE 的命令行。请参阅下面的例子 例如: > runas /noprofile /user:mymachine\administrator cmd > runas /profile /env /user:mydomain\admin "mmc %windir%\system32\dsa.msc" > runas /env /user:user@domain.microsoft.com "notepad \"my file.txt\"" 注意: 只在得到提示时才输入用户的密码。 注意: USER@DOMAIN 跟 /netonly 不兼容。 注意: /profile 跟 /netonly 不兼容。 注意: /savecred 跟 /smartcard 不兼容。
yihui1122 2016-12-21
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
//假定你手动在cmd窗口中执行ewfmgr c:命令正常时所在盘符和目录为d:\mydir
WinExec("cmd /k cd /d d:\\mydir&ewfmgr c:",SW_SHOW);
//查看以上语句开的cmd窗口中执行ewfmgr c:命令正常后改为
//WinExec("cmd /c cd /d d:\\mydir&ewfmgr c: >d:\\out.txt 2>d:\\out.txt",SW_HIDE);
//然后读文件d:\out.txt的内容
手动运行在任何目录下都可以成功,用编译器执行上面的代码还是提示不能识别efmgr命令
赵4老师 2016-12-21
  • 打赏
  • 举报
回复
//假定你手动在cmd窗口中执行ewfmgr c:命令正常时所在盘符和目录为d:\mydir
WinExec("cmd /k cd /d d:\\mydir&ewfmgr c:",SW_SHOW);
//查看以上语句开的cmd窗口中执行ewfmgr c:命令正常后改为
//WinExec("cmd /c cd /d d:\\mydir&ewfmgr c: >d:\\out.txt 2>d:\\out.txt",SW_HIDE);
//然后读文件d:\out.txt的内容
yihui1122 2016-12-21
  • 打赏
  • 举报
回复
我看了下ewfmgr。exe和shutdown。exe都是在system32下,如果是路径问题,没道理shutdown能用ewfmgr用不了啊。 我还把命令改成全路径试过也是同样的错误 system(“c:\\windows\\system32\\ewfmgr.exe c:”);
ID870177103 2016-12-21
  • 打赏
  • 举报
回复
大概是你控制台默认的当前路径下刚好有这个程序吧

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧