zoukankan      html  css  js  c++  java
  • 根据不同的操作系统(64/32),设置文件以64位运行。又可解决问题:“试图加载不正确的程序”。

    //button事件

    void CSqlConTestDlg::OnOK()

    {

             CString strPath = "cmd.exe";

             if(IsWow64())

             {

                       Wow64DisableWow64FsRedirection(NULL);

             }

             STARTUPINFO si = {sizeof(STARTUPINFO)};

             ZeroMemory(&si,sizeof(STARTUPINFO));

             si.cb = sizeof(STARTUPINFO);

             si.wShowWindow = SW_SHOW;

             si.dwFlags = STARTF_USESHOWWINDOW;

             PROCESS_INFORMATION pi;

             memset(&pi,0,sizeof(pi));

             if(CreateProcess(NULL,(char*)(LPCSTR)strPath,NULL,NULL,false,0,NULL,NULL,&si,&pi))

             {  

             }

             //阻塞上一进程

             while (WaitForSingleObject(pi.hProcess,20))

             {

                       ;

             }

             Wow64RevertWow64FsRedirection(NULL);

    }

    /****************************************************/

    /*判断是否是64位系统                                                                 */

    /****************************************************/

    typedef BOOL (WINAPI *LPEN_ISWOW64PROCESS)(HANDLE,PBOOL);

    BOOL CSqlConTestDlg::IsWow64()

    {

             BOOL bIsWow64 = false;

             LPEN_ISWOW64PROCESS fnIsWow64Process;

             fnIsWow64Process = (LPEN_ISWOW64PROCESS)GetProcAddress(GetModuleHandle(TEXT("kernel32")),"IsWow64Process");

             if(NULL != fnIsWow64Process)

             {

                       if(!fnIsWow64Process(GetCurrentProcess(),&bIsWow64)){};

             }

             return bIsWow64;

    }

    /****************************************************/

    /*如果系统是64位,取消文件的重点位                                         */

    /****************************************************/

    typedef BOOL (WINAPI *LPEN_WOW64DISABLEWOW64FSREDIRECTION)(PVOID* OldValue);

    BOOL CSqlConTestDlg::Wow64DisableWow64FsRedirection(PVOID* OldValue)

    {

             BOOL bRet = false;

             LPEN_WOW64DISABLEWOW64FSREDIRECTION fnWow64DisableWow64FsRedirection;

             fnWow64DisableWow64FsRedirection = (LPEN_WOW64DISABLEWOW64FSREDIRECTION)

                       GetProcAddress(GetModuleHandle(TEXT("kernel32")),"Wow64DisableWow64FsRedirection");

             if(NULL != fnWow64DisableWow64FsRedirection)

             {

                       if(fnWow64DisableWow64FsRedirection(OldValue))

                       {

                                bRet =      true;

                       }

             }

             return bRet;

    }

    /****************************************************/

    /*如果系统是64位,恢复文件的重点位                                         */

    /****************************************************/

    typedef BOOL (WINAPI *LPEN_WOW64REVERTWOW64FSREDIRECTION)(PVOID OldValue);

    BOOL CSqlConTestDlg::Wow64RevertWow64FsRedirection(PVOID OldValue)

    {

             BOOL bRet = false;

             LPEN_WOW64REVERTWOW64FSREDIRECTION fnWow64RevertWow64FsRedirection;

             fnWow64RevertWow64FsRedirection = (LPEN_WOW64REVERTWOW64FSREDIRECTION)GetProcAddress(GetModuleHandle(TEXT("kernel32")),"Wow64RevertWow64FsRedirection");

             if(NULL != fnWow64RevertWow64FsRedirection)

             {

                       if(fnWow64RevertWow64FsRedirection(OldValue))

                       {

                                bRet = true;

                       }

             }

             return bRet;

    }        

  • 相关阅读:
    微信小程序设置底部导航栏目方法
    微信小程序四(设置底部导航)
    微信小程序三(设置页面标题)
    error while loading shared libraries: libpcre.so.0的解决办法(转)
    mysql无法启动问题的解决方案:mysql.sock重启不自动生成,mysqld_safe启动报错
    使用snmp+mrtg监控CPU、流量、磁盘空间、内存
    lvs之dr技术的学习与实践
    lvs之nat技术的学习与实践
    lvs之ip-tun(ip隧道)技术的学习与实践
    CentOS 6.4下Squid代理服务器的安装与配置【转】
  • 原文地址:https://www.cnblogs.com/zzhua/p/5697573.html
Copyright © 2011-2022 走看看