当前位置: 首页 > news >正文

office的图标白板后的修改方法

win10的系统卸载了office365后,导致原来的office快捷方式图标都变成白板了,如下

想手动处理下,不想重新安装office了,

问题原因是原来的快捷方式关联的程序和图标,由于卸载了office365没有了,即磁盘上没有

C:\WINDOWS\Installer\{90160000-0011-0000-1000-0000000FF1CE}\outicon.exe文件了

需要修改成自己本地的文件路径,如下图

上图的工具是我用py写的一个tool,

修改后的图标如下

安装pywin32`pip install pywin32`, 工具代码如下

# -*- coding: UTF-8 -*-
#-------------------------------------------------------------------------------
# Name:        windows快捷方式修改tool.py
# Purpose:
#
# Author:      changliang02
#
# Created:     23/10/2024
# Copyright:   (c) changliang02 2024
# Licence:     <your licence>
#-------------------------------------------------------------------------------
import os
import win32com.client
import tkinter as tk
from tkinter import filedialogclass LabelEdit(tk.Frame):def __init__(self, parent, label_text, initial_value=""):super().__init__(parent)self.label = tk.Label(self, text=label_text)self.label.pack(side=tk.LEFT)self.entry = tk.Entry(self)self.entry.insert(0, initial_value)  # 设置初始值self.entry.pack(side=tk.LEFT, expand='yes',fill='x')def get_value(self):return self.entry.get()def set_value(self, value):self.entry.delete(0, "end")self.entry.insert(0, value)class AttrFrame(tk.Frame):def __init__(self, master=None, cnf={}, **kw):super().__init__(master, *cnf, **kw)self.columnconfigure(1, weight=1)self.attrs = {}def set_attr(self, key, value):if key not in self.attrs.keys():label = tk.Label(self, text=key)label.grid(row=len(self.attrs), column=0, sticky='e')entry = tk.Entry(self)entry.insert(0, value)entry.grid(row=len(self.attrs), column=1, sticky='ew')self.attrs[key] = {"label":label, "entry":entry}else:self.attrs[key].set_value(value)def get_attr(self, key):if key in self.attrs.keys():return self.attrs[key]["entry"].get()else:return Nonedef __iter__(self):self.__index = 0return selfdef __next__(self):if self.__index < len(self.attrs):k = list(self.attrs.keys())[self.__index]v = self.attrs[k]["entry"].get()self.__index += 1return k,velse:raise StopIterationclass WinLnkModifyTool(tk.Frame):def __init__(self, master=None, cnf={}, **kw):super().__init__(master, *cnf, **kw)self.shell = win32com.client.Dispatch("WScript.Shell")self.shortcut = Noneself.init_ui()def init_ui(self):self.rowconfigure(1, weight=1)self.columnconfigure(0, weight=1)self.file_path_edit = LabelEdit(self, "加载lnk文件", '')self.file_path_edit.grid(row=0, column=0, sticky='ew')select_button = tk.Button(self, text="Select File", command=self.open_file)select_button.grid(row=0, column=1, sticky='e')self.frame_attrs = AttrFrame(self)self.frame_attrs.grid(row=1, column=0, columnspan=2, sticky='snew', padx=10, pady=10)self.bt_save = tk.Button(self, text="Save", command=self.save_to)self.bt_save.grid(row=2, column=1, sticky='e')def open_file(self):file_path =  filedialog.askopenfilename(title="选择快捷方式",filetypes=[("Shortcut files", "*.lnk")])if file_path:self.file_path_edit.set_value(file_path)self.load_lnk_file(file_path)else:print("没有选择文件路径")# self.file_path_edit.set_value(file_path)def load_lnk_file(self, lnk_file_path):self.shortcut = self.shell.CreateShortCut(lnk_file_path)if self.shortcut:for k in dir(self.shortcut):if k in ["FullName",]:continueif (not k.startswith("_")) and (not callable(getattr(self.shortcut, k))):print(k, ":", getattr(self.shortcut, k))self.frame_attrs.set_attr(k,getattr(self.shortcut, k))self.bt_save.config(text="Save")def save_to(self):print("-------save  to----------------")if self.shortcut:for k,v in self.frame_attrs:print(k,v)setattr(self.shortcut, k, v)rt = self.shortcut.save()self.bt_save.config(text="Save ok")def main():root = tk.Tk()root.title("修改windows的快捷方式")lnktool = WinLnkModifyTool(root)lnktool.pack(expand='yes',fill='both')root.mainloop()if __name__ == '__main__':main()


http://www.mrgr.cn/news/58230.html

相关文章:

  • sass的使用
  • 【大模型】3分钟了解提示(Prompt)工程、检索增强(RAG)和微调
  • 序列的定义与使用
  • python实战(一)——iris鸢尾花数据集分类
  • 立仪科技:光谱共焦传感器在玻璃领域的革命性突破
  • 《PP-OCRv1》论文精读:PaddleOCR是目前SOTA级别的OCR开源技术(截止2024年10月)
  • Qt 二进制文件的读写
  • 2024中国AI Agent市场研究报告|附43页PDF文件下载
  • 【系统分析师】-论文-论性能测试方法及其应用性能
  • PySpark的使用
  • 计算机网络原理总结B-数据链路层
  • 非对称加密算法(RSA):原理、应用与代码实现
  • 延迟队列的安装步骤
  • Pytorch与深度学习 #10.PyTorch训练好的模型如何部署到Tensorflow环境中
  • 如何进行大数据治理
  • APEX高性能双曲面减速器K系列有哪些优势特点
  • 树的概念与结构
  • 如何运用信而泰测试仪实现802.1 QAV协议测试
  • mybatis 多参数查询语句,报错:Available parameters are [arg1, arg0, param1, param2]
  • 【Linux 从基础到进阶】实时性能监控与调优(Prometheus、Grafana)
  • 数组类型应用举例
  • 案例分析-数据库系统
  • 基于Java(SSM框架)+MySQL开发的小型英语学习网站
  • 纷享销客生态大会成都站成功举办:携手精英伙伴,共话CRM新纪元
  • 以翻译 Kubernetes 文档为例,探索 AI 模型 Fine-Tuning 微调
  • 为什么有些编程语言不建议用下划线作为标识符开头?标识符的特殊字符。为什么不指定编译生成文件名, 默认是a.out?函数入口一定是main吗?