2012-01-28 3 views
2

Я хочу получить список установленных программ на удаленном компьютере. Для этого я хочу использовать скрипт python в своем приложении для Android. Теперь у меня есть скрипт python, который получает список установленного программного обеспечения на удаленный компьютер. Но я не знаю, как это сделать в Android.
Для этого я нашел SL4A android Scripting here. Итак, я попытался запустить свой скрипт python в Android-устройстве, используя SL4A. Но он не работает и дает мне ошибку, потому что некоторые пакеты, такие как win32.client, отсутствуют. Я не знаю больше о SL4A, поэтому я не знаю, как конвертировать мой скрипт python в поддерживаемую форму Android. Так, у кого-нибудь есть идея или код, пожалуйста, предложите мне .....Запустить скрипт python в приложении android

Также, если у кого-то есть другой способ получить список установленных программ с удаленного ПК, пожалуйста, предложите ...
Ниже мой питон скрипт

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

c = wmi.WMI(computer="PC02",user="admin",password="[email protected]",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 
+0

Я отступ вашей попытки/за исключением группы внутри цикла. Это кажется правильным, но, пожалуйста, исправьте его, если я ошибаюсь – joaquin

+0

@joaquin. Над кодом работает правильно на компьютере Windows, но он не работает в Android, потому что WMI напрямую не поддерживается в Linux ... – krushnakant

ответ

2

вы испытываете проблемы с отсутствующими библиотеками, потому что вы импортируете окна конкретных из них. Во всяком случае, это не правильный скрипт для запуска. Этот скрипт, похоже, предназначен для компьютера, а не для телефона Android.

+0

Спасибо за ответ. Я знаю, что этот сценарий предназначен для компьютера, но что я должен изменить в скрипте, чтобы сделать его совместимым с телефонами Android? Я новичок в Android, и я также не знаю больше о SL4A или Python ..... – krushnakant

+0

Я не осведомлен о android но явное решение (для меня) - создать какое-то приложение для запуска на компьютере, а другое приложение - для работы на телефоне. Компьютерное приложение через некоторые средства (интернет или Wi-Fi) опубликует список установленных программ. Приложение телефона затем извлечет этот список и будет использовать его для чего бы то ни было. –

+0

Я, это правильно, но я не хочу ничего запускать на компьютере. – krushnakant

1

Вы пытаетесь использовать скрипт Python, который использует Windows Management Instrumentation (WMI), на устройстве, у которого нет этой библиотеки.

К сожалению, WMI на Python требует библиотеку win32, которая доступна только в Windows. Я не думаю, что у вас будет большой успех при проверке установленных программ на удаленном компьютере под управлением Windows с устройства Android таким образом.

+0

Спасибо за ответ. Если это невозможно, предложите мне, если у вас есть другой способ получить список установленного программного обеспечения с удаленного компьютера в android ...... – krushnakant

+0

@krushnakant: Вы можете что-то запустить на сервере? Возможно, напишите webapp, а затем получите доступ к нему с вашего устройства Android. – cha0site

+0

Для webapp я думаю, что у меня должно быть подключение к Интернету на устройстве Android, и я хочу получить информацию о программном обеспечении без подключения к Интернету. Я хочу получить информацию о программном обеспечении всего устройства в моей сети wi-fi .... – krushnakant

3

Запустите сценарий на удаленном компьютере и опубликуйте список установленных программ на HTTP, хороший способ написать это простое веб-приложение - использовать флягу и ее сервер разработки для обслуживания списка установленного программного обеспечения, а затем написать скрипт python, который использует собственный веб-интерфейс для Android, чтобы получить список и отобразить его.

+0

Спасибо, но я не хочу использовать интернет соединение, и я думаю, что для веб-приложения я должен использовать интернет-соединение ... – krushnakant

+0

Вы не можете получить доступ к списку установленных программ удаленно, не используя соединение. Тогда его просто локально. – rapadura

+0

Я уже подключен к одной сети Wi-Fi. Я хочу получить информацию о программном обеспечении компьютера, который находится в моей сети Wi-Fi ...... – krushnakant

0

Поскольку WMI основан на WBEM, вы можете использовать wbem для доступа к нему; вы можете попробовать использовать pywbem, чистую библиотеку wbem python.

0

Запуск питон сценариев теперь достижим в Gradle системы с помощью задач

task pythonFile(type:Exec) { 
workingDir 'src_path' 
commandLine 'python', 'my_script.py' 
} 
Смежные вопросы