Greless
2017-03-22 06:04
采纳率: 45%
浏览 3.0k
已采纳

C++复制文件到C:\windows\system32\drivers

有个bat文件xcopy /y %~dp0x64\43430r0nvram.txt %WINDIR%\System32\Drivers\
通过程序去调用bat文件,提示复制成功但是C盘下并没有文件。如果直接管理员运行bat文件就能复制成功C盘有文件,请问怎么回事?
1.UAC Executioin Level已经设置为 RequireAdministrator
2.直接在程序里CopyFile(_T("x64\43430r0nvram.txt"), _T("C:\Windows\System32\drivers\43430r0nvram.txt"), FALSE);也是不成功
3.C盘根目录可以,C:\windows\system32\drivers就不成功

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • Greless 2017-03-22 07:38
    已采纳

    if (Wow64EnableWow64FsRedirection(FALSE))
    {
    //  Any function calls in this block of code should be as concise
    //  and as simple as possible to avoid unintended results.

        ShellExecute(NULL, L"open", _T("CherryTrail\\AP6212\\Install_64_Auto.cmd"), NULL, NULL, SW_SHOWNORMAL);
        //  Immediately re-enable redirection. Note that any resources
        //  associated with OldValue are cleaned up by this call.
        if(FALSE== Wow64EnableWow64FsRedirection(TRUE))
        {
            //  Failure to re-enable redirection should be considered
            //  a criticial failure and execution aborted.
            return;
        }
    }
    https://msdn.microsoft.com/en-us/library/aa365744.aspx
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • Greless 2017-03-22 06:21

    发现你的程序是32位的,所以在64位系统下,所有对system32的操作都会被转向syswow64

    评论
    解决 无用
    打赏 举报
  • Greless 2017-03-22 06:23

    文件自动跑到C:\Windows\SysWOW64\drivers

    评论
    解决 无用
    打赏 举报
  • oyljerry 2017-03-22 06:24

    你的bat程序是32位的,做一个64位程序去复制文件

    评论
    解决 无用
    打赏 举报
  • 关键看你的系统是多少位数的

    评论
    解决 无用
    打赏 举报
  • Super毛毛虫 2018-03-08 08:01
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题