Как передать аргумент через пользовательский 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 файл для своей собственной программы, и он работает. Я заметил некоторые незначительные отличия в чертах...