Build an Application to Search Installed Application using Python - GeeksforGeeks

04 Dec, 2021
Prerequisite – Tkinter in Python.
In this article, we are going to write python scripts to search for an installed application on Windows and bind it with the GUI application. We are using winapps modules for managing installed applications on Windows.
To install the module, run this command in your terminal:
pip install winapps
Below is what the GUI looks like:-
To print installed applications, the winapps module has winapps.list_installed() method. T
Python3
# import modulesimport winapps # get each application with list_installed()for item in winapps.list_installed():    print(item)
Output:
InstalledApplication(name=’Mi Smart Share’, version=’1.0.0.452′, install_date=None, install_location=None, install_source=None, modify_path=None, publisher=’Xiaomi Inc.’, uninstall_string=’C:\\Program Files\\MI\\AIoT\\MiShare\\1.0.0.452\\Uninstall.exe’) 
InstalledApplication(name=’Git version 2.27.0′, version=’2.27.0′, install_date=datetime.date(2020, 7, 22), install_location=WindowsPath(‘D:/Installation_bulk/Git’), install_source=None, modify_path=None, publisher=’The Git Development Community’, uninstall_string='”D:\\Installation_bulk\\Git\\unins000.exe”‘) 
InstalledApplication(name=’Microsoft 365 – en-us’, version=’16.0.13127.20408′, install_date=None, install_location=WindowsPath(‘C:/Program Files/Microsoft Office’), install_source=None, modify_path='”C:\\Program Files\\Common Files\\Microsoft Shared\\ClickToRun\\OfficeClickToRun.exe” scenario=repair platform=x64 culture=en-us’, publisher=’Microsoft Corporation’, uninstall_string='”C:\\Program Files\\Common Files\\Microsoft Shared\\ClickToRun\\OfficeClickToRun.exe” scenario=install scenariosubtype=ARP sourcetype=None productstoremove=O365HomePremRetail.16_en-us_x-none culture=en-us version.16=16.0′) 
InstalledApplication(name=’On Screen Display Utility’, version=’1.0.0.140′, install_date=None, install_location=None, install_source=None, modify_path=None, publisher=’Xiaomi Inc.’, uninstall_string=’C:\\Program Files\\MI\\OSD Utility\\1.0.0.140\\Uninstall.exe’) 
InstalledApplication(name=’Intel(R) Management Engine Components’, version=’1921.14.0.1280′, install_date=None, install_location=WindowsPath(‘C:/Program Files (x86)/Intel/Intel(R) Management Engine Components’), install_source=None, modify_path=None, publisher=’Intel Corporation’, uninstall_string='”C:\\ProgramData\\Intel\\Package Cache\\{1CEAC85D-2590-4760-800F-8DE5E91F3700}\\Setup.exe” -uninstall’)
.........
For searching the existing applications, the module has search_installed(‘App_name’) method.
Python3
for item in winapps.search_installed('chrome'):    print(item)
Output:
InstalledApplication(name=’Google Chrome’, version=’85.0.4183.102′, install_date=datetime.date(2020, 9, 11),install_location=WindowsPath(‘C:/Program Files (x86)/Google/Chrome/Application’), install_source=None, modify_path=None, publisher=’Google LLC’, uninstall_string=’“C:\\Program Files (x86)\\Google\\Chrome\\Application\\85.0.4183.102\\Installer\\setup.exe” –uninstall –system-level –verbose-logging’)
Python3
# import modulesfrom tkinter import *import winapps # function to attach outputdef app():     for item in winapps.search_installed(e.get()):        name.set(item.name)        version.set(item.version)        Install_date.set(item.install_date)        publisher.set(item.publisher)        uninstall_string.set(item.uninstall_string)  # object of tkinter# and background set for greymaster = Tk()master.configure(bg='light grey') # Variable Classes in tkintername = StringVar()version = StringVar()Install_date = StringVar()publisher = StringVar()uninstall_string = StringVar()  # Creating label for each information# name using widget LabelLabel(master, text="Enter App name : ",      bg="light grey").grid(row=0, sticky=W)Label(master, text="Name : ",      bg="light grey").grid(row=2, sticky=W)Label(master, text="Version :",      bg="light grey").grid(row=3, sticky=W)Label(master, text="Install date :",      bg="light grey").grid(row=4, sticky=W)Label(master, text="publisher :",      bg="light grey").grid(row=5, sticky=W)Label(master, text="Uninstall string :",      bg="light grey").grid(row=6, sticky=W)  # Creating label for class variable# name using widget EntryLabel(master, text="", textvariable=name,      bg="light grey").grid(row=2, column=1, sticky=W)Label(master, text="", textvariable=version,      bg="light grey").grid(row=3, column=1, sticky=W)Label(master, text="", textvariable=Install_date,      bg="light grey").grid(row=4, column=1, sticky=W)Label(master, text="", textvariable=publisher,      bg="light grey").grid(row=5, column=1, sticky=W)Label(master, text="", textvariable=uninstall_string,      bg="light grey").grid(row=6, column=1, sticky=W)  e = Entry(master, width=30)e.grid(row=0, column=1) # creating a button using the widgetb = Button(master, text="Show", command=app, bg="Blue")b.grid(row=0, column=2, columnspan=2, rowspan=2, padx=5, pady=5,) mainloop()
Output:
abhigoya
singghakshay
nnr223442
Python Tkinter-exercises
Python-tkinter
python-utility
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
How to Install PIP on Windows ?
Enumerate() in Python
Different ways to create Pandas Dataframe
Create a Pandas DataFrame from Lists
Python String | replace()
Reading and Writing to text files in Python
*args and **kwargs in Python
How to drop one or multiple columns in Pandas Dataframe
sum() function in Python
Python OOPs Concepts