Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Работа с буфером обмена на VBS

Ответить
Настройки темы
VBS/WSH/JS - [решено] Работа с буфером обмена на VBS

Аватара для BigBoo

Старожил


Автор проектов


Сообщения: 474
Благодарности: 120

Профиль | Отправить PM | Цитировать


Перерыл все справочники по VBS и нигде не нашёл команд по работе с буфером обмена. В частности интересует, как скопировать текст в буфер обмена?

Отправлено: 02:28, 08-09-2011

 


Moderator


Сообщения: 53171
Благодарности: 15430

Профиль | Отправить PM | Цитировать


Работа с буфером обмена (clipboard) в скриптовых языках JScript или VBScript
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:22, 08-09-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для BigBoo

Старожил


Автор проектов


Сообщения: 474
Благодарности: 120

Профиль | Отправить PM | Цитировать


Petya V4sechkin, очень неприятно, что минус этого способа - "Internet Explorer" выдает запрос на разрешение доступа страницы к буферу, что сводит на нет процесс автоматизации действий при использовании скрипта. Есть ли ещё варианты?

Отправлено: 11:16, 08-09-2011 | #3


Старожил


Сообщения: 175
Благодарности: 119

Профиль | Отправить PM | Цитировать


Получение текста из буфера:
Код: Выделить весь код
strText = CreateObject("HTMLFile").parentWindow.clipboardData.GetData("text")
Аналогичным методом копировать в буфер не получилось у меня. Или тяму не хватило, или не поддерживается.
А так получилось:
Код: Выделить весь код
strTextToCB = "Текст, который хотелось вставить в буфер обмена"
CreateObject("WScript.Shell").Run "mshta.exe ""javascript:clipboardData.setData('text','" & StrTextToCB & "');close();""", 2
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:14, 08-09-2011 | #4


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата SendMessage:
Аналогичным методом копировать в буфер не получилось у меня. Или тяму не хватило, или не поддерживается. »
Ранее поддерживался. С какого-то момента такую возможность прикрыли. Равно и «HTMLFile…GetData()» тоже может не срабатывать.
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:19, 08-09-2011 | #5


Аватара для BigBoo

Старожил


Автор проектов


Сообщения: 474
Благодарности: 120

Профиль | Отправить PM | Цитировать


И в довершении темы, как прочитать текст из буфера?

Отправлено: 12:58, 09-09-2011 | #6


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


BigBoo, см. выше:

Отправлено: 13:34, 09-09-2011 | #7


Аватара для BigBoo

Старожил


Автор проектов


Сообщения: 474
Благодарности: 120

Профиль | Отправить PM | Цитировать


Цитата Iska:
см. выше: »
Уже смотрел, вся проблема в раздражающий надписи Internet Explorer-а. Как прочитать текст из буфера, используя mshta.exe или другим способом?

Отправлено: 16:15, 09-09-2011 | #8


Аватара для BigBoo

Старожил


Автор проектов


Сообщения: 474
Благодарности: 120

Профиль | Отправить PM | Цитировать


И ещё один вопрос, как скопировать в буфер текст с сохранением перевода строки? То есть читаю файл:
Код: Выделить весь код
Set fso = CreateObject("Scripting.FileSystemObject")
Set WSHShell = CreateObject("WScript.Shell")

'Читаем файл построчно
LineAll = ""
Set tsLog = fso.OpenTextFile("Serial.txt", 1)  
Do While Not tsLog.AtEndOfStream   
LineInFile = tsLog.ReadLine   
LineAll = LineAll & LineInFile & vbCRLF  
Loop

'LineAll - текст с сохранением перевода строки

'Копирование текста в буфер обмена
WSHShell.Run "mshta.exe ""javascript:clipboardData.setData('text','" & LineAll & "');close();""", 2
В результате в буфере текст в одну строчку.

Отправлено: 16:30, 09-09-2011 | #9


Старожил


Сообщения: 175
Благодарности: 119

Профиль | Отправить PM | Цитировать


Цитата BigBoo:
Как прочитать текст из буфера, используя mshta.exe »
Код: Выделить весь код
strCmd = "mshta.exe ""javascript:var s=clipboardData.getData('text');if(s)new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(s);close();"""

strText = CreateObject("WScript.Shell").Exec(strCmd).StdOut.ReadAll
Цитата BigBoo:
как скопировать в буфер текст с сохранением перевода строки? »
Код: Выделить весь код
strTextToCB = "Текст, который хотелось вставить в буфер обмена" & vbCrLf & "с переводом строк."
strTextToCB = Replace(strTextToCB, vbCrLf, "\n")
CreateObject("WScript.Shell").Run "mshta.exe ""javascript:clipboardData.setData('text','" & StrTextToCB & "');close();""", 2
Но это чревато ошибками, как сразу можно заметить.
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:53, 09-09-2011 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Работа с буфером обмена на VBS

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2007 - Проблема с буфером Publishera GriffinSC Microsoft Office (Word, Excel, Outlook и т.д.) 1 30-08-2010 11:55
VBS/WSH/JS - Помогите редактировать Autorun_Disable.vbs на Autorun_Enable.vbs nod201 Скриптовые языки администрирования Windows 0 05-12-2009 05:44
Служебные - SuperClip, 1.0 - предназначена для работы с буфером обмена Windows. mklim Наборы обновлений для Windows XP/2003/Windows 7 4 01-10-2009 01:47
Win32 API | PureBasic | Управление буфером консольного окна unhappy Программирование и базы данных 2 26-03-2007 11:34
VBS/WSH/JS - *VBS/WHS/JS* | Windows Script Host, работа с компами домена Dennis Программирование и базы данных 6 03-02-2006 10:17




 
Переход