mirror of
https://github.com/mdn/webextensions-examples.git
synced 2026-04-16 06:18:35 +02:00
Merge pull request #558 from dahn-zk/fix-native-messaging-example-checker-script
native-messaging: fix Windows checker script not to fail on missing HKCU when HKLM is set
This commit is contained in:
@@ -16,7 +16,7 @@ To get this working, there's a little setup to do.
|
||||
|
||||
### Windows setup ###
|
||||
|
||||
1. Check you have Python installed, and that your system's PATH environment variable includes the path to Python. See [Using Python on Windows](https://docs.python.org/2/using/windows.html). You'll need to restart the web browser after making this change, or the browser won't pick up the new environment variable.
|
||||
1. Check you have Python installed, and that your system's PATH environment variable includes the path to Python. See [Using Python on Windows](https://docs.python.org/3/using/windows.html). You'll need to restart the web browser after making this change, or the browser won't pick up the new environment variable.
|
||||
2. Edit the "path" property of "ping_pong.json" to point to the location of "ping_pong_win.bat" on your computer. Note that you'll need to escape the Windows directory separator, like this: `"path": "C:\\Users\\MDN\\native-messaging\\app\\ping_pong_win.bat"`.
|
||||
3. Edit "ping_pong_win.bat" to refer to the location of "ping_pong.py" on your computer.
|
||||
4. Add a registry key containing the path to "ping_pong.json" on your computer. See [App manifest location ](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Native_manifests#Manifest_location) to find details of the registry key to add.
|
||||
|
||||
@@ -16,21 +16,15 @@ key_path = 'Software\\Mozilla\\NativeMessagingHosts\\ping_pong'
|
||||
# Assuming current user overrides local machine.
|
||||
key_roots = ['HKEY_CURRENT_USER', 'HKEY_LOCAL_MACHINE']
|
||||
|
||||
found_key = False
|
||||
|
||||
for root in key_roots:
|
||||
key = winreg.OpenKey(getattr(winreg, root), key_path)
|
||||
for key_root in key_roots:
|
||||
try:
|
||||
print('Checking:', root, key_path)
|
||||
print('Checking:', key_root, key_path)
|
||||
key = winreg.OpenKey(getattr(winreg, key_root), key_path)
|
||||
res = winreg.QueryValueEx(key, '')
|
||||
break
|
||||
except FileNotFoundError:
|
||||
print('...error finding key')
|
||||
continue
|
||||
|
||||
found_key = True
|
||||
break
|
||||
|
||||
if not found_key:
|
||||
print('... error finding key')
|
||||
else:
|
||||
raise ValueError('Could not find a registry entry, aborting.')
|
||||
|
||||
json_path = res[0]
|
||||
|
||||
Reference in New Issue
Block a user