def get_browser_path1(browser):# 获取windows 路径方式1import winregresult = []# 需要遍历的两个注册表sub_key = [r'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall',r'SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall',]for i in sub_key:key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, i)for j in range(winreg.QueryInfoKey(key)[0]):try:each_key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, f'{i}\\{winreg.EnumKey(key, j)}')display_path, reg_sz = winreg.QueryValueEx(each_key, "DisplayIcon")if browser in display_path:result.append(display_path.split(',')[0])except WindowsError:passreturn resultdef get_browser_path2(browser):# 获取windows 路径方式2# 连接注册表根键 以HKEY_LOCAL_MACHINE为例regRoot = ConnectRegistry(None, HKEY_LOCAL_MACHINE)subDir = r'SOFTWARE'# 获取指定目录下所有键的控制keyHandle = OpenKey(regRoot, subDir)# 获取该目录下所有键的个数(0-下属键个数 1-当前键值个数)count = QueryInfoKey(keyHandle)[0]lists = []for i in range(count):# 穷举键获取键名subKeyName = EnumKey(keyHandle, i)subDir_2 = r'%s\%s' % (subDir, subKeyName)# 根据获取的键名拼接之前的路径作为参数 获取当前键下所属键的控制keyHandle_2 = OpenKey(regRoot, subDir_2)num = QueryInfoKey(keyHandle_2)[1]for j in range(num):name, value, type_ = EnumValue(keyHandle_2, j)if browser in name.lower():_browser_regs = '\\'.join(value.split('\\')[:-1]) + '\\DefaultIcon'key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, _browser_regs)value1, _type1 = winreg.QueryValueEx(key, "")lists.append(value1.split(',')[0])# 读写操作结束后关闭键CloseKey(keyHandle_2)return listsdef get_browser_path3():# 获取windows 路径方式3result = Noneif winreg:for subkey in ['ChromeHTML\\\\shell\\\\open\\\\command','Applications\\\\chrome.exe\\\\shell\\\\open\\\\command']:try:result = winreg.QueryValue(winreg.HKEY_CLASSES_ROOT, subkey)except WindowsError:passif result is not None:result_split = shlex.split(result, False, True)result = result_split[0] if result_split else Noneif os.path.isfile(result):breakresult = Noneelse:expected = "google-chrome" + (".exe" if os.name == 'nt' else "")for parent in os.environ.get('PATH', '').split(os.pathsep):path = os.path.join(parent, expected)if os.path.isfile(path):result = pathbreakreturn [result]def get_browser_path4(path, file_list=[]):# 获取windows 路径方式4try:os.listdir(path)except:returnfor i in os.listdir(path):path1 = os.path.join(path, i)if os.path.isdir(path1) and 'program' in path1.lower():get_browser_path4(path1, file_list)elif os.path.isfile(path1):if 'google' in path1.lower() and path1.lower().endswith('chrome.exe') and 'temp' not in path1.lower():file_list.append(path1.replace('\\\\', '\\'))return file_listreturn file_listdef get_soft_path(path, file_list=[]):# mac 获取谷歌浏览器的路径for i in os.listdir(path):path1 = os.path.join(path, i)if os.path.isdir(path1):get_soft_path(path1, file_list)elif os.path.isfile(path1):if 'MacOS' in path1 and path1.endswith('Chrome'):file_list.append(path1)return file_listreturn file_list
browser = 'chrome'
if sys.platform.lower().startswith('freebsd') or sys.platform.lower().startswith('darwin'):path = get_soft_path('/Applications/')
else:path = get_browser_path2(browser) or get_browser_path1(browser) or         get_browser_path3() or get_browser_path4(r'C:\\')
print(path)

#获取mac地址

def get_network_info():#https://learn.microsoft.com/en-us/windows/win32/cimwin32prov/win32-networkadapterimport wmimac = ''s = wmi.WMI()for nw in s.Win32_NetworkAdapter():# print(nw.properties)if '以太网' in str(nw.NetConnectionID):mac = nw.MACAddress.replace(':', '-')return macdef get_netcard():import uuidfrom psutil import net_if_addrsmac = ''info = net_if_addrs()for k, v in info.items():if k == '以太网':k = '以太网en0'print(k)if k not in ['以太网', 'en0'] and '以太网' not in str(k): continuefor i in v:if '-' in i[1] or ':' in i[1]:if len(i[1]) == 17:mac = str(i[1]).lower()breakif not mac:node = uuid.getnode()mac = uuid.UUID(int=node).hex[-12:]mac = '-'.join([mac[i:i + 2] for i in range(0, len(mac) + 2 // 2, 2)])[:-1]return macmac = get_network_info()
print(mac)
print(get_netcard())

windows 及Mac os 获取谷歌浏览器路径相关推荐

  1. os系统共享的 不显示计算机,Windows与Mac OS共享文件-windows无法访问指定设备路径或文件...

    大家知道,微软的Windows和苹果的Mac OS是两种不同架构的操作系统.但是,对于用电脑干活的我们来说,其实最终关心的并不是使用什么操作系统,而是如何用这些系统来生成和编辑图.文.声.像等类型的文 ...

  2. Linux最终将会领先于Windows、Mac OS!

    Linux最终将会领先于Windows.Mac OS! 众所周知,硬件离开了软件就像人失去灵魂,而操作系统作为软件中的基础部分,更是重中之重!无论手机.电脑.还是服务器一旦离开了操作系统,比之一堆废铁 ...

  3. Windows和Mac os x一样不安全?!

    微软和苹果在操作系统市场一直在进行着旷日持久的斗争,当Windows和Mac OS X用户在网上互相指责时,Windows用户通常会嘲笑OS X不足挂齿的市场份额,而OS X用户则会讥讽Windows ...

  4. Windows和Mac OS的伽马值

    Windows和Mac OS之所以采用不同的标准伽马值,其原因与这两套操作系统的设计理念和历史有关. Windows采用对应于电视的伽马值 (2.2),而Mac OS则采用了对应于商用打印机的伽马值 ...

  5. 【转】操作系统Unix、Windows、Mac OS、Linux的故事

    电脑,计算机已经成为我们生活中必不可少的一部分.无论是大型的超级计算机,还是手机般小巧的终端设备,都跑着一个操作系统.正是这些操作系统,让那些硬件和芯片得意组合起来,让那些软件得以运行,让我们的世界在 ...

  6. 操作系统Unix、Windows、Mac OS、Linux的故事

    2019独角兽企业重金招聘Python工程师标准>>> 我们熟知的操作系统大概都是windows系列,近年来Apple的成功,让MacOS也逐渐走进普通用户.在服务器领域,恐怕Lin ...

  7. 格式化移动硬盘:Windows/Ubuntu/Mac OS系统全兼容,可读写

    近期入手一个移动硬盘存储自己的实验数据和程序,因为常用的设备分别是Windows/Ubuntu/Mac OS系统,需要都能读写,但发现硬盘默认格式化为NTFS,Mac OS是不能识别的.经过查询,最佳 ...

  8. [转]操作系统Unix、Windows、Mac OS、Linux的故事

    [写得很江湖气,可惜找不到原作者了] 文章转自:http://blog.csdn.net/wenmingchan/article/details/49925379 http://www.jb51.ne ...

  9. 操作系统Unix、Windows、Mac OS、Linux的故事 科普篇

    我们熟知的操作系统大概都是windows系列,近年来Apple的成功,让MacOS也逐渐走进普通用户.在服务器领域,恐怕Linux是无人不知无人不晓.他们都是操作系统,也在自己的领域里独领风骚.这都还 ...

最新文章

  1. 相比Redis,Memcached真的过时了吗?
  2. CDH6.x Solr7.x 集成 Ik 分词
  3. trie树和后缀树的应用
  4. R语言之数据处理常用包
  5. fastadmin上传视频的操作
  6. iOS测试之移动App测试指南
  7. Windows下有关(下载与播放)软件
  8. linux android投屏,Github开源Android投屏软件——Scrcpy
  9. 硅谷的精神火种——多元化和天马行空(三)
  10. phyton基础-01
  11. laravel broadcas广播
  12. Kalibr标定时卡在Extracting calibration target corners的问题
  13. 欲登千层楼,又何惧寒风
  14. orc识别较慢_提高OCR识别效率的诀窍
  15. IMU内参标定以及初始化(9轴IMU,比6轴多三个姿态角信息)
  16. 赛格曹晓冬分享实录:线下仍是智能硬件产品的主要消费渠道
  17. (邻接表/邻接矩阵)图的实现
  18. 好的网站好的论坛社区
  19. Python读写zip压缩文件
  20. oracle命令历史,查看命令历史记录及其操作时间

热门文章

  1. 怎么利用asp木马取得管理权限
  2. 个人简历管理系统(3)- 登陆与注册界面
  3. (转)一张图看懂H5测试
  4. 生成随机不重复数组(matlab的randperm)
  5. IEC104发送序号和接受序号理解
  6. monit监控mysql_Monit 监控服务工具教程
  7. Ubuntu能识别到外接显示器但外接显示器黑屏的解决方案
  8. Prometheus的Docker容器监控工具cAdvisor
  9. 资源下载: source insight4 sublime主题直接下载,免费
  10. 聚簇索引和非聚簇索引的区别