首页 > 系统相关 >使用python在windows系统操作快捷方式

使用python在windows系统操作快捷方式

时间:2024-05-13 15:21:58浏览次数:12  
标签:shell python windows lnk path 快捷方式 os

其实问题是由上一篇文章(https://www.cnblogs.com/anpengapple/p/18179353)的结尾引出来的。不需要了解背景的话,我现在需要做的是,右键打开桌面上的chrome快捷方式的属性,在目标的后面增加一个参数。我不想傻傻地手动添加,想交给程序来处理。   首先需要简单来说一下,windows的快捷方式是就是.lnk文件,这是一种二进制文件格式,内容很简单,大概就是从文件头中,偏移多少个字节,可以取到一段内容,表示这个快捷方式的某一种属性(目标或者参数等等),我们要创建快捷方式或者编辑快捷方式,就是在操作这段偏移量的内容。   从微软的官网我们可以学习一下LNK格式文件的一些知识: https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-shllink/16cb4ca1-9339-4d0c-a68d-bf1d6cc0f943?redirectedfrom=MSDN 或者也可以看看这篇文章有个直观的印象LNK文件的结构: https://blog.csdn.net/pope12389/article/details/84124052   说到这里要跑题一句,以后要小心哦!别人分享给你的lnk文件,是可以伪装的,在这个文件头中可以插入恶意代码,还可以更改图标。比如你闺蜜告诉你说,“听说了没,某某最近那个惊天大瓜!”然后顺手给你发个pdf,看起来是个正经(嗯?)的pdf,但有可能是个lnk文件,里面塞了个木马,种在你的电脑里了,顺手再从远程下载一个真正的pdf。防不胜防啊!   好,扯回正题。我肯定是不会去直接操作二进制文件的,太困难。   那么第三方库选择什么呢?按照查到的顺序,我先尝试了pylnk。在网上查到几篇,但是一尝试就发现,文章都是假的,因为pylnk这个库只能用于python2,在python3环境下甚至无法安装。  

 

看这发布日期,真的假的?2024年还在用python2?呵呵,要说这不是爬虫爬来的文章,我可不太信。  

 

好消息是,这个库有对应的python3版本——pylnk3(而且是仅限python3使用),在使用方法上也比pylnk更现代一些。可以参考一下这篇文章: https://blog.csdn.net/B11050729/article/details/131538291 (直接看方案5即可) 但我当时没有看这篇文章,就自己看了一下pylnk3库的源码,就开始自己瞎捣鼓了一下。其实也很简单,大概就几步:  
from pylnk3 import Lnk
lnk_path = os.path.join(os.path.abspath(os.path.expanduser("~")), "Desktop\\chrome.lnk")
with open(lnk_path, "rb") as fdata:
    lnk = Lnk(fdata)
    lnk.arguments = "--remote-debugging-port=9527"
    lnk.save()

 

我太想当然了,我验证了一下代码结果,快捷方式根本打不开了。  

 

查了一下,大概意思是我还要设置别的东西,target, window_mode, working_dir什么的。可是其他内容我并不想改啊,为什么还要重新设置一遍?干脆不用了。如果考虑读快捷方式的某些属性,这个库应该还蛮简便的吧。但是要写,还是有点风险的。 类似的库有个LnkParse3,但我没有尝试,直接考虑调用windows shell。   在网上看到一个winshell模块,pip安装失败,报错“No module named win32con”,然而搜索win32con这个模块就一无所获(真的不是winshell的作者把模块名字写错了吗?)。算了,不如直接一点,用win32com。安装轻松,代码简单,方便快捷,是居家旅行必备佳品分分钟搞定。  
from win32com.client import Dispatch
# 调用shell
shell = Dispatch("WScript.Shell")
# lnk文件位置
lnkpath = os.path.abspath(os.path.join(os.path.expanduser("~"), "Desktop\\Google Chrome.lnk"))
# 如果lnk不存在,会创建新的
t = shell.CreateShortCut(lnkpath)
# 设置lnk的目标地址,可以不写。但如果创建新的快捷方式就必须写了
# t.TargetPath = os.path.abspath(os.path.join(os.path.expanduser("~"), "AppData\\Local\\Google\\Chrome\\Application\\chrome.exe"))
# 设置lnk的参数
t.Arguments = "--remote-debugging-port=9527"
# 保存
t.Save()

 

废话半天,其实就只有最后这几行有用。其实也是我的需求比较少,shell对快捷方式的操作种类也挺丰富的,等将来有心情再玩玩看。   

标签:shell,python,windows,lnk,path,快捷方式,os
From: https://www.cnblogs.com/anpengapple/p/18189293

相关文章

  • 用python将csv文件转换为exl文件
    使用pandas库:pandas相当于python中excel:它使用表(也就是dataframe),能在数据上做各种变换,但还有其他很多功能。os库:在使用之前都要先导入这个库(确保已经安装):下面是一个csv文件转成exl文件的实例:这个代码中定义了一个根据一定规则处理csv文件转exl文件的函数:首先导入了......
  • 【Python】模拟windows文件名排序(自动处理文件名中有数字类型排序)
    实现了一种模拟windows排序的python方法,其排序规则为:不处理浮点数特殊字符(如:&、$、#等)排在数字和字母之前;数字优先于字母排序;数字是连着的整数,应该按照整数进行排序;小写字母排在大写字母前面;英文字符按字母表顺序排序; defcustom_sort_key(str_value):digita......
  • 推荐几款火爆的Python在线编辑器
    在当今数字化时代,编程已成为一项不可或缺的技能。Python作为一种简单易学且功能强大的编程语言,受到了广大编程爱好者和专业开发人员的青睐。为了方便大家随时随地编写和运行Python代码,市面上涌现了许多优秀的在线Python编辑器。本文将为您推荐几款目前非常火爆的Python在线编辑器......
  • Windows中常用的硬盘检测工具包括:
    Windows中常用的硬盘检测工具包括:Windows自带工具:磁盘检查工具(Chkdsk):可用于检查和修复文件系统错误和硬盘坏道。磁盘碎片整理器(DefragmentandOptimizeDrives):可用于优化磁盘性能,整理碎片文件。第三方工具:CrystalDiskInfo:提供硬盘的健康状态和性能信息,包括温度......
  • 推荐一款Windows兼容的开源操作系统-ReactOS
    ReactOS介绍ReactOS™isanOpenSourceefforttodevelopaqualityoperatingsystemthatiscompatiblewithapplicationsanddriverswrittenfortheMicrosoft®Windows™NTfamilyofoperatingsystems(NT4,2000,XP,2003,Vista,7).TheReactOSproject,al......
  • 第十二届蓝桥杯选拔赛 python
    第一题(难度系数2,18个计分点) 编程实现:输入一个正整数n,计算出n乘100的积。 输入描述:输入一个正整数n输出描述:输出n乘100的积 样例输入:2样例输出:200  第二题(难度系数3,20个计分点) 编程实现:给定一个正整数,判断这个正整......
  • python 基本日期和时间类型 datetime
    datetime说明datetime模块提供了处理日期和时间的类。它可以帮助你执行日期和时间的计算、转换以及格式化等操作。模块包含了日期(date)、时间(time)、日期时间(datetime)、时间间隔(timedelta)、时区(tzinfo)等类。datetime类:用于操作日期和时间的类,包括年、月、日、时、分、秒等信息......
  • 还有许多其他常见的Windows问题,可以记录在「Windows 捉虫日记」中。以下是一些其他可
     「Windows捉虫日记」是一个非常有趣的主题,它可以记录你在Windows系统中发现和解决各种问题的过程,类似于软件开发中的「程序员日记」或者「DebuggingDiary」。以下是一份可能的Windows捉虫日记的样本:日期:2050年5月20日问题描述:开机后,Windows系统启动速度异常缓慢,且任......
  • windows10ltsc 企业评估版,系统到期后,每一小时自动关机,不能修改主题
    问题1:参照https://www.zhihu.com/question/265212829答案太详细了,难以补充什么大概是用PSTool进入Systemaccount来获得修改WLMS的注册表的权限,把在注册表里把HKLM\SYSTEM\CurrentControlSet\Services\WLMS选择WLMS,在右侧选项“Start”中,将数值2改成4问题2:参照https://w......
  • 新版FLASK下python内存马的研究
    新版FLASK下python内存马的研究风起2月中旬的某一天,跟@Ic4_F1ame无聊时聊起了出题的事。当时是打算出道python题目(菜......