2013-08-28 52 views
1

我試圖從瀏覽器啓動應用程序(.exe)。從瀏覽器啓動程序時傳遞參數

具體的應用需要啓動時有4個參數/參數:名字,姓氏,ID信息

有沒有一種方法來添加當我啓動我的程序的Internet Explorer的地址欄上的這些爭論?

我的意思是這樣的:

「的myapp:// -firstname -lastname -id -info」

(我只設法直添加這些參數到Windows註冊表中,它的工作方式是。但是那沒有幫助。我需要他們輸入啓動應用程序時)

我已經加入這個我的Windows註冊表:

[HKEY_CLASSES_ROOT\myapp] 
@="URL:myprogram Protocol" 
"URL Protocol"="" 

[HKEY_CLASSES_ROOT\myapp\DefaultIcon] 
@="\"C:\\myapp.exe\"" 

[HKEY_CLASSES_ROOT\myapp\shell] 

[HKEY_CLASSES_ROOT\myapp\shell\open] 

[HKEY_CLASSES_ROOT\vsa\shell\open\command] 
@="\"C:\\myapp\" "%1" 

感謝您的幫助ALR伊迪!我希望有人知道如何解決這個問題... :)

ps。我使用Windows 7 64位和Internet Explorer 10.

回答

0

您不能簡單地將多個命令行參數傳遞給您的應用程序(除非它們已經在註冊表中顯式列出)。

相反,您必須編寫應用程序的可執行代碼,以便它能夠處理應用程序協議URL字符串。所以,你的代碼是由瀏覽器調用,像這樣:

C:\apps\myapp.exe "myapp:myParam?myParam2&myParam3&myParam4" 

可執行文件必須能夠處理這個字符串,並妥善處理這個問題。在解析這個字符串時,您必須小心避免安全漏洞,因爲任何網頁都可能在這裏利用漏洞來逃離瀏覽器沙箱並攻擊用戶的系統。

本帖子中有更多關於Application Protocols的信息:http://blogs.msdn.com/b/ieinternals/archive/2011/07/14/url-protocols-application-protocols-and-asynchronous-pluggable-protocols-oh-my.aspx

相關問題