在android应用程序中运行python脚本

时间:2012-01-28 12:23:02

标签: android python sl4a android-scripting

我想获取远程计算机上已安装软件的列表。为此我想在我的android应用程序中使用python脚本。现在,我有一个python脚本,它正在远程计算机上获取已安装软件的列表。但是,我不知道如何在android中支持它。
为此,我找到了SL4A android Scripting here。所以,我尝试使用SL4A在Android设备上运行我的python脚本。但它没有工作并且给我错误,因为某些软件包如win32.client缺失。我不知道更多关于SL4A因此我不知道如何在Android支持的格式转换我的python脚本。所以,任何人有任何想法或代码,请建议我.....

此外,如果有人有其他方法从远程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

5 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

您在删除库时遇到问题,因为您要导入特定于Windows的库。无论如何,这不是正确运行的脚本。这个脚本似乎是用于计算机,而不是Android手机。

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

现在可以使用任务

在gradle系统中运行python脚本
task pythonFile(type:Exec) {
workingDir 'src_path'
commandLine 'python', 'my_script.py'
} 
相关问题