powershell स्क्रिप्ट के माध्यम से कस्टम प्रोटोकॉल हैंडलर

वोट
1

सवाल का जवाब दे .. मैं काम कर समाधान के लिए इस सवाल का संपादित किया है।


यहाँ scenerio है। Jitsi वीओआइपी सॉफ्टवेयर के साथ Windows 10 कार्य केंद्र स्थापित किया। मैं एसआईपी के लिए एक प्रोटोकॉल हैंडलर बनाया: इस रजिस्ट्री प्रविष्टि के साथ ..

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\sip]
@=URL: SIP Protocol handler
URL Protocol=
[HKEY_CLASSES_ROOT\sip\DefaultIcon]
@=C:\\Program Files (x86)\\Jitsi\\sc-logo.ico
[HKEY_CLASSES_ROOT\sip\shell]
[HKEY_CLASSES_ROOT\sip\shell\open]
[HKEY_CLASSES_ROOT\sip\shell\open\command]
@=\C:\\Program Files (x86)\\Jitsi\\Jitsi.exe\ %1

यह हिस्सा काम करता है। में प्रवेश कर sip:1234567890के रूप में एक रन कमांड नंबर डायल करता है।

मुझे क्या करना चाहते हैं एक नए प्रोटोकॉल CHK नामित बनाने है: कि एक स्थानीय वेब सर्वर पर एक http अनुरोध करता है, और अगर वेबसर्वर 0 के साथ प्रतिक्रिया करता है, नंबर डायल करें। प्रतिक्रिया 1 है, तो एक संदेश दिखाएगा इस नंबर डायल किया जा सकता है

यहाँ रजिस्ट्री प्रविष्टि मैं इस नए जच प्रोटोकॉल के लिए बनाया है

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\chk]
@=URL: CHK Protocol handler
URL Protocol=
[HKEY_CLASSES_ROOT\chk\DefaultIcon]
@=C:\\Program Files (x86)\\Jitsi\\sc-logo.ico
[HKEY_CLASSES_ROOT\chk\shell]
[HKEY_CLASSES_ROOT\chk\shell\open]
[HKEY_CLASSES_ROOT\chk\shell\open\command]
@=\C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\
-File C:\\DNC\\dnc.ps1 %1

हालांकि इस reg प्रविष्टि घूंट, जब मैं चल रहा कोशिश लगभग समान है chk:1234567890मैं एक त्रुटि Apllication नहीं मिला मिलता है, तो कुछ सही नहीं खुला comand के साथ है ....

संपादित करें: मैं सही था, यह था खुला आदेश .. मैं गलत जगह पर उद्धरण था

और dnc.ps1 स्क्रिप्ट की सामग्री ...

$w=$args[0]

$chprot,$num = $w.split(':',2)

$url = http://server/numchk.php?ph=$num

$webclient = New-Object System.Net.WebClient

$webpage = $webclient.DownloadString($url)

if ($webpage -match 0){ 

$launch = C:\Program Files (x86)\Jitsi\Jitsi.exe
$prot = 'sip:'
$arguments = $prot + $num
start-process $launch $arguments        

} Else {

$wshell = New-Object -ComObject Wscript.Shell
$wshell.Popup(CANT DIAL $num ,0,,0x0)
}

\ DNC \ dnc.ps1 जच: 1234567890 अगर मैं रन कमांड powershell -noexit -File ग के माध्यम से स्क्रिप्ट चलाने
मैं देख सकता हूँ स्क्रिप्ट सही काम कर रहा है, नंबर पर कॉल करके यदि प्रतिक्रिया शून्य है, शो डायल नहीं कर सकता संदेश अगर प्रतिक्रिया 1 है।

फिर .. मुझे लगता है कि समस्या रजिस्ट्री प्रविष्टि ... specifilly कमांड / भाग के साथ है ...

[HKEY_CLASSES_ROOT\chk\shell\open\command]
@=\C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -File C:\\DNC\\dnc.ps1\ %1

एक तर्क मुझे याद आ रही करने के लिए एक तर्क पारित करने के लिए कुछ चाल :(

14/11/2016 को 17:34
उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
1

मुझे लगता है कि आप गलत जगह पर एक उद्धरण है, तो यह "PowerShell.exe" की तलाश में, यह "PowerShell.exe -File C: \ DNC \ dnc.ps1" नाम की एक फ़ाइल की तलाश में नहीं है।

क्या यह काम करता है?

[HKEY_CLASSES_ROOT\chk\shell\open\command]
@="\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" -File C:\\DNC\\dnc.ps1 %1"
14/11/2016 को 18:27
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more