Всем доброго времени суток....
Никак не мог подумать что на данном этапе возникнут проблемы, но они возникли.
Обобщенно мне необходим механизм, который сродни функционалу explorer "Открыть с помощью"
Я уже предвкушаю Ваше мнение - аля:
Я замечательно знаком, и часто использую те самые Run() и ShellExcute, но в данном конкретном случае я никак не могу выкрутиться.
И так что-же мы имеем:
1)Довольно популярную программу для организации удаленного доступа UltraVNC, а именно ее клиентскую часть vncviewer.exe,
так же, мы имеем ряд файлов *.vnc, данные файлы являются набором предустановленных параметров для подключения сродни ялыкам которые можно создать для подключения к удаленному раб.столу.
2)Каталог со скриптом в котором имеем ряд дочерних каталогов, а именно:
\Client\ - в котором мы расположили саму программу-клиент vncviewer.exe
\vnc\ - каталог с набором таких вот *.vnc файлов
Задача: запускать конкретный файл из каталога \vnc\ , программой \Client\vncviewer.exe
Допустим, каталог со всем нашим добром это D:\Test\ (далее я экспериментирую с абсолютными путями, хотя хотелось бы с относительными)
Внимание: Безусловный казус разработчиков UltraVNC заключается в том, что запуск клиента в параметры которому передается путь к *.vnc файлу, судя по всему не предусмотрен , т.е. следующие действия в консоли:
приводит к ошибке со стороны клиента... краткой справке по параметрам командной строки, и отфутболивание в доку...
в доке же, не обозначен ни один полезный нам аргумент, за исключением -register который вроде как регистрирует в системе тип файла "VNC" (что безусловно требует ад минских привилегий...) вот собственно офф.док
При всем при этом следующие действия в консоли
Приводят к должному эффекту, как собственно и открытие файла если мы все таки ассоциировали его с vncviewer.exe
Дает требуемый результат...
Что я только не перепробовал:
Все в пустую...
Никак не мог подумать что на данном этапе возникнут проблемы, но они возникли.
Обобщенно мне необходим механизм, который сродни функционалу explorer "Открыть с помощью"
Я уже предвкушаю Ваше мнение - аля:
Но спешу Вас заверить это не так."Это уже 1000 раз обсуждалось, RTFM , Run() и ShellExcute() тебе в помощь!" :laugh:
Я замечательно знаком, и часто использую те самые Run() и ShellExcute, но в данном конкретном случае я никак не могу выкрутиться.
И так что-же мы имеем:
1)Довольно популярную программу для организации удаленного доступа UltraVNC, а именно ее клиентскую часть vncviewer.exe,
так же, мы имеем ряд файлов *.vnc, данные файлы являются набором предустановленных параметров для подключения сродни ялыкам которые можно создать для подключения к удаленному раб.столу.
2)Каталог со скриптом в котором имеем ряд дочерних каталогов, а именно:
\Client\ - в котором мы расположили саму программу-клиент vncviewer.exe
\vnc\ - каталог с набором таких вот *.vnc файлов
Задача: запускать конкретный файл из каталога \vnc\ , программой \Client\vncviewer.exe
Допустим, каталог со всем нашим добром это D:\Test\ (далее я экспериментирую с абсолютными путями, хотя хотелось бы с относительными)
Внимание: Безусловный казус разработчиков UltraVNC заключается в том, что запуск клиента в параметры которому передается путь к *.vnc файлу, судя по всему не предусмотрен , т.е. следующие действия в консоли:
Код:
D:\Test\Client\vncviewer.exe D:\Test\vnc\someLNK.vnc
в доке же, не обозначен ни один полезный нам аргумент, за исключением -register который вроде как регистрирует в системе тип файла "VNC" (что безусловно требует ад минских привилегий...) вот собственно офф.док
При всем при этом следующие действия в консоли
Код:
start D:\Test\vnc\someLNK.vnc D:\Test\Client\vncviewer.exe
Дает требуемый результат...
Что я только не перепробовал:
Код:
$vncViewer = @ScriptDir & "\Client\vncviewer.exe"
$vncLNK = @ScriptDir & "\Client\someLNK.exe"
Run($vncViewer & " " & $vncLNK) ; ну здесь та самая байда с ошибкой
ShellExcute($vncViewer, $vncLNK) ; тишина
Run("start " & $vncLNK & " " & $vncViewer) ; тишина
; решил попробовать через CMD
Run(@WindowsDir & "\system32\cmd.exe " & " start " & $vncLNK & " " & $vncViewer)
ShellExcute(@WindowsDir & "\system32\cmd.exe", "start " & $vncLNK & " " & $vncViewer)
;и даже пробовал через поток ввода вывода
$cmd = Run(@WindowsDir & "\system32\cmd.exe)
StdinWrite($cmd, start " & $vncLNK & " " & $vncViewer)
Все в пустую...