简体   繁体   English

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

[英]Run python Script in android application

I want to get list of installed software on remote computer.For that I want to use python script in my android application.Now,I have a python script which is getting the list of installed software on remote computer.But,I don't know how to make it supported in android. 我想获取远程计算机上已安装软件的列表。为此,我想在我的Android应用程序中使用python脚本。现在,我有一个python脚本正在获取远程计算机上的已安装软件的列表。但是,我没有知道如何使其在Android中受支持。
For this, I found SL4A android Scripting here . 为此,我在这里找到了SL4A android脚本 So, I tried to run my python script in android device using SL4A.But,It's not working and giving me error because some packages like win32.client is missing.I don't know more about SL4A so I don't know how to convert my python script in Android supported form.So,anyone have any idea or code please suggest me..... 所以,我试图使用SL4A在android设备上运行python脚本。但是,它不起作用并给我错误,因为缺少诸如win32.client之类的某些软件包。我对SL4A不太了解,所以我不知道如何将我的python脚本转换为Android支持的格式。因此,任何人有任何想法或代码,请建议我.....

Also If anyone have another way to get installed software list from remote Pc then please suggest... 另外,如果有人可以通过其他方式从远程PC获取安装的软件列表,请提出建议...
Below is my python script 以下是我的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

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

You are having problems with missing libraries because you are importing windows specific ones. 您由于缺少特定于Windows的库而遇到缺少库的问题。 At any rate, this isn't the correct script to be running. 无论如何,这不是要运行的正确脚本。 This script seems to be for a computer, not an android phone. 这个指令码似乎是用于电脑,而不是Android手机。

You're trying to use a Python script that uses Windows Management Instrumentation (WMI) , on a device that doesn't have that library. 您正在尝试在没有该库的设备上使用使用Windows Management Instrumentation(WMI)的Python脚本。

Sadly, WMI on Python requires the win32 library, which is only available on Windows. 可悲的是,Python上的WMI需要Win32库,该库仅在Windows上可用。 I don't think you're going to have much success on checking the installed programs on remote Windows computer from an Android device in this way. 我认为通过这种方式从Android设备检查远程Windows计算机上已安装的程序不会取得很大的成功。

Running python scripts is now achievable in gradle system using Tasks 现在可以使用Tasks在gradle系统中运行python脚本

task pythonFile(type:Exec) {
workingDir 'src_path'
commandLine 'python', 'my_script.py'
} 

Since WMI is based on WBEM, you may be able to use wbem to access it; 由于WMI基于WBEM,因此您可以使用wbem进行访问。 you might want to try using pywbem, a pure python wbem library. 您可能想尝试使用pywbem(纯Python wbem库)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM