Автоматизированная установка программного обеспеченияPython

Программы на Python
Anonymous
Автоматизированная установка программного обеспечения

Сообщение Anonymous »

Код: Выделить всё

import os
import subprocess
import tkinter as tk
from tkinter import ttk, filedialog, messagebox

def run_installation(folder_path, selected_setups):
total_setups = len(selected_setups)
progress_bar\['maximum'\] = total_setups

for i, setup_file in enumerate(selected_setups, start=1):
setup_path = os.path.join(folder_path, setup_file)
subprocess.Popen(setup_path, shell=True).wait()
progress_bar['value'] = i
root.update()

messagebox.showinfo("Installation Complete", "All software installations have been completed.")

def browse_folder():
folder_path = filedialog.askdirectory()
if folder_path:
setup_files = \[f for f in os.listdir(folder_path) if f.endswith('.exe')\]
if setup_files:
folder_entry.delete(0, tk.END)
folder_entry.insert(tk.END, folder_path)
software_listbox.delete(0, tk.END)
for setup_file in setup_files:
software_listbox.insert(tk.END, setup_file)
else:
messagebox.showinfo("No Software Found", "There are no software setups in the selected    folder.")

def select_all():
software_listbox.select_set(0, tk.END)

def deselect_all():
software_listbox.selection_clear(0, tk.END)

def finish_installation():
folder_path = folder_entry.get()
selected_indices = software_listbox.curselection()
selected_setups = \[software_listbox.get(idx) for idx in selected_indices\]
if folder_path and selected_setups:
run_installation(folder_path, selected_setups)

# Create GUI

root = tk.Tk()
root.title("Software Installer")

frame = ttk.Frame(root, padding="20")
frame.grid(row=0, column=0, sticky=(tk.W, tk.E, tk.N, tk.S))

browse_button = ttk.Button(frame, text="Browse", command=browse_folder)
browse_button.grid(row=0, column=0, padx=5, pady=10)

folder_entry = ttk.Entry(frame, width=50)
folder_entry.grid(row=0, column=1, padx=5, pady=10)

select_all_button = ttk.Button(frame, text="Select All", command=select_all)
select_all_button.grid(row=1, column=0, padx=5, pady=10)

deselect_all_button = ttk.Button(frame, text="Deselect All", command=deselect_all)
deselect_all_button.grid(row=1, column=1, padx=5, pady=10)

start_button = ttk.Button(frame, text="Start Installation", command=finish_installation)
start_button.grid(row=1, column=2, padx=5, pady=10)

software_listbox = tk.Listbox(frame, selectmode=tk.MULTIPLE, width=50, height=10)
software_listbox.grid(row=2, columnspan=3, pady=10)

progress_bar = ttk.Progressbar(frame, orient="horizontal", length=300, mode="determinate")
progress_bar.grid(row=3, columnspan=3, pady=10)

root.mainloop()
это код Python, который я генерирую с помощью chatgpt, я знаю, это немного отстойно, я знаю, в основном я хочу, чтобы программа могла запускать всю установку программного обеспечения автоматически, например, пользователю не нужно нажимать несколько кнопок «Далее», когда просто установить медиаплеер vlc, но из приведенного выше кода он может запускать и устанавливать программное обеспечение, но все равно требуется нажать кнопку «Далее», я пытаюсь попросить чатгпт решить эту проблему за меня, но он не может, поэтому мне интересно, какие-нибудь эксперты здесь могут помочь для устранения проблемы? *настройки программного обеспечения хранятся в локальных файлах

Подробнее здесь: https://stackoverflow.com/questions/783 ... stallation

Вернуться в «Python»