VBS Передача программе аргументов из буфера обмена

Паразит

Пользователь
Сообщения
61
Реакции
2
Баллы
18
Привет. Такая задача.
Передать программе полный путь до файла, путь до которой находится в буфере.

Что-то типа такого:
VB.NET:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "C:\PSPad\PSPad.exe" CreateObject("Shell.Application").ShellExecute CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text"), "", "", "", 1
Как такое правильно оформить?
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,102
Реакции
5,882
Баллы
648
Что значит передать программе? (открыть в программе?)

Сперва нужно в реестре посмотреть, какой командой эта программа по-умолчанию открывает файлы.
Обычно достаточно просто указать аргумент, но бывают и более сложные случаи.
Попробуйте:

VB.NET:
Set WshShell = CreateObject("WScript.Shell")
clip = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")

WshShell.Run "C:\PSPad\PSPad.exe" & " " & """" & clip & """"
 

Паразит

Пользователь
Сообщения
61
Реакции
2
Баллы
18
Да, спасибо, это оно. А как такое проделать с реестром? Может быть у реестра еть специальный ключ?
VB.NET:
Set WshShell = CreateObject("WScript.Shell")
clip = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")

WshShell.Run "regedit" & " " & """" & clip & """"
Он его хочет добавить. А мне надо прыгнуть по тому пути, который находится в буфере.
 
Последнее редактирование:

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,102
Реакции
5,882
Баллы
648
Вот моя разработка: http://safezone.cc/resources/regjump-mod.67/

Если кратко, то единственным наиболее быстрым и простым способом является создание параметра:
Код:
HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\Lastkey
куда следует прописать путь к ветве реестра, куда нужно прыгнуть. И затем просто запустить regedit без аргументов.
 
Сверху Снизу