1

Python 2.6 で pywinauto を使用して、Windows 8.1 でメトロ スタイル アプリを列挙および自動化しようとしています。Windows キットの inspect.exe を使用して HWND を取得し、それを pywinauto.handleprops.process_id() に渡すと、正しいプロセス ID を取得できます。

ただし、pywinauto.findwindows.enum_windows() を使用すると、inspect.exe がリストされている特定の HWND が表示されません。c:\python26\python.exe にはマニフェストがないため、その理由は UAC/UIPI に関係していると思われます。私は正しいですか?

以下の python.exe.manifest と pythonw.exe.manifest を配置して回避しようとしています。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (c) Microsoft Corporation -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity
    name="*.*.*"
    processorArchitecture="x86"
    version="1.0.0.0"
    type="win32"/>
  <description>*</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="highestAvailable" uiAccess="true"/>
          </requestedPrivileges>
      </security>
  </trustInfo>
</assembly>

しかし、それは役に立たないようです。UACプロンプトが表示されないため、UAC昇格が発生するとは思いません。とにかく、使用に関する inspect.exe.manifest<requestedExecutionLevel level="asInvoker" uiAccess="true"/>

どうすればいいのか、もっと良い提案はありますか?

4

0 に答える 0