Страница 1 из 1
VB. Чем положить текст в буфер обмена?
Добавлено: 26 июл 2008, 13:35
Avsha
Приветствую!
Требуется чтобы запустилась программа на VB и сбросила в буфер обмена текст, например текущую дату.
Может есть что-то готовое в Windows?
Re: VB. Чем положить текст в буфер обмена?
Добавлено: 26 июл 2008, 15:42
Teslenko_EA
Здравствуйте
Avsha.
существуют "готовые" инструкции для работы с буфером обмена:
Код: Выделить всё
sData = Clipboard.GetText()
Clipboard.Clear
Clipboard.SetText sData
Евгений.
Re: VB. Чем положить текст в буфер обмена?
Добавлено: 27 июл 2008, 07:10
Avsha
Teslenko_EA, спасибо
буду разбираться
Общая задача - нажать что-нибудь на рабочем столе и в буфер попадает текст - "2008.07.28"
При назывании папки в проводнике вставляем этот текст.
Привык назвать папки в Windows, начиная с такой строки

Re: VB. Чем положить текст в буфер обмена?
Добавлено: 27 июл 2008, 14:49
Aent
Avsha, а просто добавить в контекстное меню проводника ссылку на скрипт на VBS ?
Код: Выделить всё
Dim oWsh,oShell,oFolder
On error resume next
Set oWsh = CreateObject("WScript.Shell")
set oShell = CreateObject("Shell.Application")
set oFolder = oShell.NameSpace(oWsh.CurrentDirectory)
oFolder.NewFolder Mid(Date,7,4) & "-" & Mid(Date,4,2) & "-" & mid(Date,1,2)
Re: VB. Чем положить текст в буфер обмена?
Добавлено: 27 июл 2008, 20:14
Avsha
просто добавить в контекстное меню проводника ссылку на скрипт на VBS
наверно - это как раз то, что мне нужно, а как это сделать?
Re: VB. Чем положить текст в буфер обмена?
Добавлено: 27 июл 2008, 21:44
Aent
Вышеприведённый скрипт положить в папку Windows под именем fad.vbs
Набить reg файл fad.reg
Код: Выделить всё
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Folder\shell\Folder_as_Date]
@="Folder as Date"
[HKEY_CLASSES_ROOT\Folder\shell\Folder_as_Date\command]
@="wscript.exe C:\\WINDOWS\\fad.vbs %L"
Выполнить его.
Теперь если в целевой папке вы кликните правой клавишей мыши на какой то папке, то в
появившемся контекстном меню будет пункт Folder as Date.
Его выбор приведёт к исполнению скрипта.
К сожалению, c ходу я не могу придумать как простыми средствами выполнить скрипт из
меню выпадающему по правому клику в пустом пространстве проводника (там где пункт создать)
Можно так же изменить скрипт чтобы папка с датой создавалась при клике на родительской папке.
Или не создавать папку а переименовывать существующую папку с именем "Новая Папка" или иным в имя, полученное из текущей даты.
Кстати, для приведённого выше reg файла имя папки передаётся в скрипт первым параметром. И может быть получено через
WScript.Arguments....
Re: VB. Чем положить текст в буфер обмена?
Добавлено: 27 июл 2008, 21:45
Aent
Re: VB. Чем положить текст в буфер обмена?
Добавлено: 27 июл 2008, 21:47
Aent
К сожалению, должен заменить, что под WSH 5.7 под VISTA свойство .CurrentDirectory объекта
WScript.Shell работает некорректно. Так что это код для XP (WSH 5.6)
Re: VB. Чем положить текст в буфер обмена?
Добавлено: 28 июл 2008, 10:24
Avsha
Aent, огромное спасибо
за готовое решение и вводный курс в VBS.
Папок на рабочем столе достаточно, от них "толкаюсь" и запускаю ваш скрипт.
Re: VB. Чем положить текст в буфер обмена?
Добавлено: 28 июл 2008, 11:57
Aent
Avsha, Не за что

Если вам нужно создавать папки именно на рабочем столе, то можно просто поместить ярлык на cлегка модифицированный скрипт на рабочий стол.
Ссылка на рабочий стол получается так
Код: Выделить всё
....
set oFolder = oShell.NameSpace(oWsh.SpecialFolders("Desktop"))
......
Хотя, IMHO, cохранять любые данные на рабочем столе - плохая практика.
Windows начинает очень сильно тормозить ....