def get_browser_path(): import win32con, win32api upper_keyword = '\chrome.exe' path = None sub_key = r'Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store' key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER, sub_key, 0, win32con.KEY_READ) info = win32api.RegQueryInfoKey(key) for i in range(0, info[1]): value = win32api.RegEnumValue(key, i) print(value[0]) if value[0].lower().endswith(upper_keyword.lower()): path = value[0] break win32api.RegCloseKey(key) return path
def get_browser_path1(browser): # 獲取windows 路徑方式1 import winreg result = [] # 需要遍歷的兩個注冊表 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: pass return result def get_browser_path2(browser): # 獲取windows 路徑方式2 # 連接注冊表根鍵 以HKEY_LOCAL_MACHINE為例 regRoot = ConnectRegistry(None, HKEY_LOCAL_MACHINE) subDir = r'SOFTWARE' # 獲取指定目錄下所有鍵的控制 keyHandle = OpenKey(regRoot, subDir) # 獲取該目錄下所有鍵的個數(shù)(0-下屬鍵個數(shù) 1-當(dāng)前鍵值個數(shù)) count = QueryInfoKey(keyHandle)[0] lists = [] for i in range(count): # 窮舉鍵獲取鍵名 subKeyName = EnumKey(keyHandle, i) subDir_2 = r'%s\%s' % (subDir, subKeyName) # 根據(jù)獲取的鍵名拼接之前的路徑作為參數(shù) 獲取當(dāng)前鍵下所屬鍵的控制 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]) # 讀寫操作結(jié)束后關(guān)閉鍵 CloseKey(keyHandle_2) return lists def get_browser_path3(): # 獲取windows 路徑方式3 result = None if 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: pass if result is not None: result_split = shlex.split(result, False, True) result = result_split[0] if result_split else None if os.path.isfile(result): break result = None else: 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 = path break return [result] def get_browser_path4(path, file_list=[]): # 獲取windows 路徑方式4 try: os.listdir(path) except: return for 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_list return file_list def 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_list return 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地址文章來源地址http://www.zghlxwxcb.cn/news/detail-513525.html
def get_network_info(): #https://learn.microsoft.com/en-us/windows/win32/cimwin32prov/win32-networkadapter import wmi mac = '' s = wmi.WMI() for nw in s.Win32_NetworkAdapter(): # print(nw.properties) if '以太網(wǎng)' in str(nw.NetConnectionID): mac = nw.MACAddress.replace(':', '-') return mac def get_netcard(): import uuid from psutil import net_if_addrs mac = '' info = net_if_addrs() for k, v in info.items(): if k == '以太網(wǎng)': k = '以太網(wǎng)en0' print(k) if k not in ['以太網(wǎng)', 'en0'] and '以太網(wǎng)' not in str(k): continue for i in v: if '-' in i[1] or ':' in i[1]: if len(i[1]) == 17: mac = str(i[1]).lower() break if 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 mac mac = get_network_info() print(mac) print(get_netcard())
文章來源:http://www.zghlxwxcb.cn/news/detail-513525.html
到了這里,關(guān)于windows 及Mac os 獲取谷歌瀏覽器路徑的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!