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"/>
どうすればいいのか、もっと良い提案はありますか?