如何透過冒號參數從「執行...」呼叫 Windows XP 中的程式?

如何透過冒號參數從「執行...」呼叫 Windows XP 中的程式?

我注意到某個程式在發送參數時以特殊的方式運作。

發送參數的唯一方法是點擊“開始 -> 運行...”並輸入:

[programname]:[argument]

例如(無論如何都不起作用)

notepad:textfile.txt 

如果我嘗試從命令列視窗執行相同的操作,則不起作用。 “程序名參數”也沒有。我必須能夠使用來自網站的參數開啟程式(使用 Wscript shell,這是另一個故事),但這可能行不通。

有誰知道這種奇怪的冒號語法是如何運作的?

更新:根據要求,這是一個真實的例子:

AGS:pref.serv01.com(ARG1:ARG2)

這正是語法,導致程式開啟 ARG1 和 ARG2 的特定資訊。 AGS 只是程式的名稱,它是一個普通的 Windows 程式。

答案1

跑步...對話方塊不僅限於本機檔案 – 它還接受所有 URI 方案1 掛號的例如,您可以在系統中開啟http:ftp:位址。某些程式可能只是AGS:為此目的註冊了 URI 方案。 (整個 URI 未經修改地傳遞給程序,程式可以應用自己的解析規則。)

查看HKEY_CLASSES_ROOT\AGS註冊表編輯器中的鍵,看看它是否說明了有關您的程式的任何信息,URL Protocol其中是否有名為“”的值,以及shell\open\command子鍵指向什麼。


1 Windows 將它們稱為“URL 協定”,這並不完全正確。

答案2

冒號字元用於引用備用資料流在 NTFS 中。也許您的程式隱藏了其中包含可執行檔的資料流。

我認為它不能從命令列參數完成,因為 shell 解析器會感到困惑。然而,「運行」對話框要寬鬆得多。

如果是這樣,您可以嘗試透過簡單地提取它:

c:> type program:argument > output

相關內容