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

Паразит

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

Что-то типа такого:
VB.NET / VBA:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "C:\PSPad\PSPad.exe" CreateObject("Shell.Application").ShellExecute CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text"), "", "", "", 1

Как такое правильно оформить?
 
Что значит передать программе? (открыть в программе?)

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

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

WshShell.Run "C:\PSPad\PSPad.exe" & " " & """" & clip & """"
 
Да, спасибо, это оно. А как такое проделать с реестром? Может быть у реестра еть специальный ключ?
VB.NET / VBA:
Set WshShell = CreateObject("WScript.Shell")
clip = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")

WshShell.Run "regedit" & " " & """" & clip & """"

Он его хочет добавить. А мне надо прыгнуть по тому пути, который находится в буфере.
 
Последнее редактирование:
Вот моя разработка: https://safezone.cc/resources/regjump-mod.67/

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