import os
import tkinter as tk
from tkinter import filedialog, font, messagebox, Text
import subprocess
# Path to store pinned folders
path_file = "Path.txt"
class PinFolderApp:
def __init__(self, root):
self.root = root
self.root.title("PIN Folder to START Menu")
self.root.geometry("1250x590")
self.root.configure(bg="#C0392B")
# Load Poppins font
self.poppins_font = font.Font(family="Poppins", size=12)
# Message field
self.message_label = tk.Label(self.root, text="Welcome to the PIN Folder to START Menu", font=self.poppins_font, bg="#C0392B", fg="#ECF0F1")
self.message_label.pack(pady=10)
# Browse Folder Location button
self.browse_button = tk.Button(self.root, text="Browse Folder Location", command=self.browse_folder, height=3, width=20, bg="#283747", fg="#ECF0F1", font=self.poppins_font)
self.browse_button.pack(pady=10)
# Display box for pinned folders
self.display_box = tk.Text(self.root, height=10, width=80, font=self.poppins_font)
self.display_box.pack(pady=10)
self.load_pinned_folders()
# Add Folder To Start Menu button
self.add_button = tk.Button(self.root, text="Add Folder To Start Menu", command=self.pin_folder, height=3, width=20, bg="#283747", fg="#ECF0F1", font=self.poppins_font)
self.add_button.pack(pady=10)
# Text entry box and Remove Folder button
self.remove_entry = tk.Entry(self.root, font=self.poppins_font)
self.remove_entry.insert(0, "Enter Folder To Delete")
self.remove_entry.bind("", self.clear_entry)
self.remove_entry.pack(pady=10)
self.remove_button = tk.Button(self.root, text="Remove Folder From Start Menu", command=self.remove_folder, height=3, width=20, bg="#283747", fg="#ECF0F1", font=self.poppins_font)
self.remove_button.pack(pady=10)
# Close button
self.close_button = tk.Button(self.root, text="Close", command=self.root.quit, height=3, width=20, bg="#283747", fg="#ECF0F1", font=self.poppins_font)
self.close_button.pack(pady=10)
self.selected_folder = None
def browse_folder(self):
folder_selected = filedialog.askdirectory()
if folder_selected:
folder_name = os.path.basename(folder_selected)
self.selected_folder = folder_selected
self.message_label.config(text=f"Selected Folder: {folder_name}")
def pin_folder(self):
if self.selected_folder:
folder_name = os.path.basename(self.selected_folder)
# Pin folder to Start Menu using a PowerShell script
powershell_script = f"""
$shortcutPath = "$env:APPDATA\\Microsoft\\Windows\\Start Menu\\Programs\\{folder_name}.lnk"
if (!(Test-Path -Path $shortcutPath -PathType Leaf)) {{
$shell = New-Object -ComObject WScript.Shell
$shortcut = $shell.CreateShortcut($shortcutPath)
$shortcut.TargetPath = "{self.selected_folder}"
$shortcut.Save()
}}
"""
subprocess.run(["powershell", "-Command", powershell_script], check=True)
self.message_label.config(text=f"Folder '{folder_name}' Is Pinned")
self.save_pinned_folder(self.selected_folder)
self.load_pinned_folders()
def remove_folder(self):
folder_name = self.remove_entry.get().strip()
if folder_name and folder_name.lower() != "enter folder to delete".lower():
# Remove folder from Start Menu using a PowerShell script
powershell_script = f"""
$shortcutPath = "$env:APPDATA\\Microsoft\\Windows\\Start Menu\\Programs\\{folder_name}.lnk"
if (Test-Path -Path $shortcutPath) {{
Remove-Item -Path $shortcutPath -Force
}}
"""
subprocess.run(["powershell", "-Command", powershell_script], check=True)
self.message_label.config(text=f"Folder '{folder_name}' Is Removed")
self.remove_pinned_folder(folder_name)
self.load_pinned_folders()
def clear_entry(self, event):
self.remove_entry.delete(0, tk.END)
def save_pinned_folder(self, folder_path):
with open(path_file, 'a') as f:
f.write(folder_path + '\n')
def load_pinned_folders(self):
self.display_box.delete(1.0, tk.END)
if os.path.exists(path_file):
with open(path_file, 'r') as f:
folders = f.readlines()
for folder in folders:
folder_name = os.path.basename(folder.strip())
self.display_box.insert(tk.END, folder_name + '\n')
def remove_pinned_folder(self, folder_name):
if os.path.exists(path_file):
with open(path_file, 'r') as f:
folders = f.readlines()
with open(path_file, 'w') as f:
for folder in folders:
if os.path.basename(folder.strip()).lower() != folder_name.lower():
f.write(folder)
# Run the application
if __name__ == "__main__":
root = tk.Tk()
app = PinFolderApp(root)
root.mainloop()
Я пытаюсь создать приложение на Python, которое можно использовать для закрепления/добавления и удаления любой папки в меню ПУСК. Допустим, я создаю папку с именем 55 в папке «Загрузки». Я открываю приложение, выбираю эту папку, нажимаю кнопку «Добавить папку в меню «Пуск», и она закрепляется. Само приложение работает нормально. Ярлык создается в C:\Users\MyID\AppData\Roaming\Microsoft\Windows\Start Menu\Programs, но проблема в том, что он не открывается. Значок папки не отображается, он полностью белый. Когда я открываю «Свойства», он правильно отображает «Цель», но «Тип цели» отображается как: Файл. Должно быть: Папка с файлами. Есть идеи, что является причиной проблемы и как ее исправить?
[code]import os import tkinter as tk from tkinter import filedialog, font, messagebox, Text import subprocess
# Path to store pinned folders path_file = "Path.txt"
class PinFolderApp: def __init__(self, root): self.root = root self.root.title("PIN Folder to START Menu") self.root.geometry("1250x590") self.root.configure(bg="#C0392B")
# Load Poppins font self.poppins_font = font.Font(family="Poppins", size=12)
# Message field self.message_label = tk.Label(self.root, text="Welcome to the PIN Folder to START Menu", font=self.poppins_font, bg="#C0392B", fg="#ECF0F1") self.message_label.pack(pady=10)
def save_pinned_folder(self, folder_path): with open(path_file, 'a') as f: f.write(folder_path + '\n')
def load_pinned_folders(self): self.display_box.delete(1.0, tk.END) if os.path.exists(path_file): with open(path_file, 'r') as f: folders = f.readlines() for folder in folders: folder_name = os.path.basename(folder.strip()) self.display_box.insert(tk.END, folder_name + '\n')
def remove_pinned_folder(self, folder_name): if os.path.exists(path_file): with open(path_file, 'r') as f: folders = f.readlines() with open(path_file, 'w') as f: for folder in folders: if os.path.basename(folder.strip()).lower() != folder_name.lower(): f.write(folder)
# Run the application if __name__ == "__main__": root = tk.Tk() app = PinFolderApp(root) root.mainloop() [/code] Я пытаюсь создать приложение на Python, которое можно использовать для закрепления/добавления и удаления любой папки в меню ПУСК. Допустим, я создаю папку с именем 55 в папке «Загрузки». Я открываю приложение, выбираю эту папку, нажимаю кнопку «Добавить папку в меню «Пуск», и она закрепляется. Само приложение работает нормально. Ярлык создается в C:\Users\MyID\AppData\Roaming\Microsoft\Windows\Start Menu\Programs, но проблема в том, что он не открывается. Значок папки не отображается, он полностью белый. Когда я открываю «Свойства», он правильно отображает «Цель», но «Тип цели» отображается как: Файл. Должно быть: Папка с файлами. Есть идеи, что является причиной проблемы и как ее исправить?
Я хотел бы закрепить приложение в меню «Пуск» Win 11. Выполнив поиск в StackOverflow, я нашел это (Как создать ярлык меню «Пуск»), которое сработало, поскольку создало ярлык в каталоге Environment.SpecialFolder.CommonStartMenu, но когда я нажимаю...
Я хотел бы закрепить приложение в меню «Пуск» Win 11 в программе C#. Выполнив поиск в StackOverflow, я нашел это (Как создать ярлык меню «Пуск»), которое сработало, поскольку создало ярлык в каталоге Environment.SpecialFolder.CommonStartMenu, но...
Я провожу эксперимент на Ubuntu 7.9. Мое приложение C++ закрепляет один поток на ядре (скажем, 18, который взят из списка изолированных процессоров, выбранного из /sys/devices/system/cpu/isolated) с помощью pthread_setaffinity_np.
У меня есть проблема с моей функцией оценки с Alamofire. Это отлично работает для большинства случаев, но не проходит проверку безопасности. Они используют решение MITM, они также предварительно установили сертификат по телефону, затем понюхали в...
У меня есть проблема с моей функцией оценки с Alamofire. Это отлично работает для большинства случаев, но не проходит проверку безопасности. Они используют решение MITM, они также предварительно установили сертификат по телефону, затем понюхали в...