在安卓应用中运行Python脚本

2 投票
5 回答
4144 浏览
提问于 2025-04-17 11:17

我想获取远程电脑上安装的软件列表。为此,我想在我的安卓应用中使用一个Python脚本。目前,我有一个Python脚本可以获取远程电脑上安装的软件列表。但是,我不知道怎么让它在安卓上运行。
为了解决这个问题,我找到了SL4A安卓脚本。于是,我尝试在安卓设备上通过SL4A运行我的Python脚本。但它没有成功,出现了错误,因为缺少一些包,比如win32.client。我对SL4A了解不多,所以不知道怎么把我的Python脚本转换成安卓支持的格式。如果有人有想法或者代码,请告诉我……

另外,如果有人有其他方法可以获取远程电脑上安装的软件列表,也请告诉我……
下面是我的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

5 个回答

1

你想用一个Python脚本,这个脚本需要用到Windows管理工具(WMI),但是你的设备上没有这个库。

很遗憾,Python中的WMI需要win32库,而这个库只在Windows系统上有。所以,我觉得你用这种方式从安卓设备上检查远程Windows电脑上安装的程序可能不太成功。

2

你遇到了缺少库的问题,因为你导入了特定于Windows的库。无论如何,这个脚本并不适合你运行。这个脚本看起来是为电脑设计的,而不是安卓手机。

3

在你的远程电脑上运行这个脚本,把安装的软件列表通过HTTP公开出来。一个简单的方法是使用flask这个工具和它的开发服务器来展示安装的软件列表。然后再写一个Python脚本,利用安卓的本地网页接口来获取这个列表并显示出来。

撰写回答