zoukankan      html  css  js  c++  java
  • 解决在vista下控制面板项创建进程的问题

         又是vista。又是vc6。
         控制面板项就是一个cpl,说到底不过也就是一个dll。没有料到在vista下dll也需要manifest。这是第一个问题。
         在这个dll中执行程序竟然返回740。这是第二个问题。
        第一个问题的解决:
        在dll的资源中增加自定义类型 24
        IDR_MANIFEST            24      DISCARDABLE     "res\\vista.xml"
        然后增加一个vista.xml文件。内容如下:
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1"
                     manifestVersion="1.0">
     <assemblyIdentity
         version="1.0.0.0"
         processorArchitecture="*"
         name="AFAXCtl"
         type="win32"/>
     <description>Consumer Control Panel</description>
     <dependency>
      <dependentAssembly>
              <assemblyIdentity
                  type="win32"
                  name="Microsoft.Windows.Common-Controls"
                  version="6.0.0.0"
                  processorArchitecture="*"
              publicKeyToken="6595b64144ccf1df"
                  language="*"/>
      </dependentAssembly>
     </dependency>
     <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
      <security>
       <requestedPrivileges>
        <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
       </requestedPrivileges>
      </security>
     </trustInfo>
    </assembly>
    大家容易忽略绿色部分,红色部分需要说明一下:操作权限根据当前调用者而定,千万不能设置requestAdministrator。而“IDR_MANIFEST” 需要设置成123,没有写错,就是 123。以前看到别人说dll应该是2。我参考了第三方的控制面板后,发现都是123。
        第二个问题的解决:
        很奇怪winexec,createprocess都返回740失败。上网看看以后发现上述两个方法不会与UAC交互,因此得不到确认,当然就失败了。幸好shellExecute可以使用,据说方法内部与UAC交互了。使用如下:
        ShellExecute(NULL,TEXT("open"),程序路径,程序参数,NULL,SW_SHOWNORMAL)
       问题解决,下班回家。





  • 相关阅读:
    whatweb tree
    testUrl
    ParseUrl
    whatweb wordpress.rb
    LeetCode: Binary Tree Level Order Traversal 解题报告
    LeetCode: Minimum Path Sum 解题报告
    Lintcode: Sort Colors II 解题报告
    LeetCode: Validate Binary Search Tree 解题报告
    LeetCode: Longest Common Prefix 解题报告
    LeetCode: Maximum Subarray 解题报告
  • 原文地址:https://www.cnblogs.com/febwave/p/1188770.html
Copyright © 2011-2022 走看看