2

我想获取远程计算机上已安装软件的列表。为此,我想在我的 android 应用程序中使用 python 脚本。现在,我有一个 python 脚本,它正在获取远程计算机上已安装软件的列表。但是,我没有知道如何让它在 android 中得到支持。
为此,我在这里找到了 SL4A android Scripting。所以,我尝试使用 SL4A 在 android 设备中运行我的 python 脚本。但是,它不起作用并给我错误,因为缺少一些像 win32.client 这样的包。我对 SL4A 不太了解,所以我不知道如何将我的python脚本转换为Android支持的形式。所以,任何人有任何想法或代码请建议我.....

另外,如果有人有其他方法可以从远程 PC 获取已安装的软件列表,那么请建议...
下面是我的 python 脚本

import wmi
from winreg import (HKEY_LOCAL_MACHINE, KEY_ALL_ACCESS, OpenKey, EnumValue, QueryValueEx)

c = wmi.WMI(computer="PC02",user="admin",password="a@1",namespace="root/default").StdRegProv
result, names = c.EnumKey (hDefKey=HKEY_LOCAL_MACHINE, sSubKeyName=r"Software\Microsoft\Windows\CurrentVersion\Uninstall")

print('These subkeys are found under "HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall"\n\n')

separator = "*" * 80
keyPath = r"Software\Microsoft\Windows\CurrentVersion\Uninstall"
count = 0

while count < len(names):

    try:      
        print(separator+'\n')

        path = keyPath + "\\" + names[count]
        key = OpenKey(HKEY_LOCAL_MACHINE, path, 0, KEY_ALL_ACCESS)
        temp = QueryValueEx(key, 'DisplayName')
        display = str(temp[0])
        print (" Name: "+display+'\n',"key:",names[count])

        count += 1
    except:
        print ("Key:",names[count])
        count += 1
        continue
4

5 回答 5

3

在远程计算机上运行脚本,并在 HTTP 上公开已安装软件的列表,编写这个简单的 web 应用程序的一个好方法是使用 flask 及其开发服务器来提供已安装软件的列表,然后编写一个 python 脚本,它使用用于获取列表并显示它的本机 android web 界面。

于 2012-01-28T13:20:24.943 回答
2

由于您正在导入特定于 Windows 的库,因此您遇到了缺少库的问题。无论如何,这不是要运行的正确脚本。该脚本似乎适用于计算机,而不是安卓手机。

于 2012-01-28T12:28:43.990 回答
1

您正在尝试在没有该库的设备上使用使用Windows Management Instrumentation (WMI)的 Python 脚本。

遗憾的是,Python 上的 WMI 需要 win32 库,该库仅在 Windows 上可用。我认为您不会以这种方式从 Android 设备检查远程 Windows 计算机上已安装的程序方面取得多大成功。

于 2012-01-28T12:34:06.603 回答
0

由于 WMI 是基于 WBEM 的,因此您可以使用 wbem 来访问它;您可能想尝试使用 pywbem,一个纯 python wbem 库。

于 2012-01-28T16:36:47.757 回答
0

现在可以使用任务在 gradle 系统中运行 python 脚本

task pythonFile(type:Exec) {
workingDir 'src_path'
commandLine 'python', 'my_script.py'
} 
于 2018-01-04T18:40:49.453 回答