Как передать аргумент через пользовательский URL-адрес приложения

Я использую Windows 7 Я хочу передать имя_файла в качестве аргумента, который я хочу открыть с помощью настраиваемого URL-адреса. Я следил за ссылкой http://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx

Мой код python:

import os,sys
selectedFileName=(sys.argv)[1]
os.startfile(selectedFileName)

Мой параметр реестра:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\cultest]
@="\"URL:cultest Protocol\""
"URL Protocol"="\"\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\cultest\DefaultIcon]


[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\cultest\shell]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\cultest\shell\open]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\cultest\shell\open\command]
@="\"D:\\Test\\argument\\dist\\cultest.exe\" \"%1\""

Итак, какой url я печатаю в webbrowser/mozila/explorer. Я попробовал с культом: "C:/Users/liverpool/Desktop/Hostname.txt", но он не работал. C:/Users/liverpool/Desktop/Hostname.txt - это имя файла

enter image description here

Ответ 1

Ваш код реестра и отпечаток не совпадают: "cultest.exe" и "curlargu.exe".

И вы использовали HKEY_LOCAL_MACHINE вместо HKEY_CLASSES_ROOT. Они указывают на то же самое, но это может иметь значение. Если cultest.exe является вашей программой в указанной папке, то этот код реестра должен работать. Правильно указан URL-адрес вашего браузера.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\cultest]
@="URL:cultest Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\cultest\DefaultIcon]
@="D:\\Test\\argument\\dist\\cultest.exe,0"

[HKEY_CLASSES_ROOT\cultest\shell]

[HKEY_CLASSES_ROOT\cultest\shell\open]

[HKEY_CLASSES_ROOT\cultest\shell\open\command]
@="D:\\Test\\argument\\dist\\cultest.exe \"%1\""

Сегодня я использовал один и тот же REG файл для своей собственной программы, и он работает. Я заметил некоторые незначительные отличия в чертах...