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

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

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

Аватара для BigBoo

Старожил


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


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

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


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

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

 

Аватара для BigBoo

Старожил


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


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

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


Цитата SendMessage:
Но это чревато ошибками, как сразу можно заметить. »
Спасибо, сработало на ура. А какие возможны ошибки?

Ещё нужно сказать, дополняя метод SendMessage, использование "mshta.exe" занимает некоторое время. Поэтому после этой команды в скрипте желательно поставить небольшую паузу, если данные буфера обмена требуется использовать незамедлительно.

Последний раз редактировалось BigBoo, 09-09-2011 в 17:54.


Отправлено: 17:36, 09-09-2011 | #11



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

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


Новый участник


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

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


' test.vbs
' чтение из буфера обмена
Dim clipbrd
clipbrd = WScript.CreateObject("HTMLFile").parentWindow.clipboardData.getData("text")

' запись в буфер обмена
Dim wsh
Dim dataclip
dataclip = "отправляемый текст в буфер обмена"
Set wsh = WScript.CreateObject("WScript.Shell")
wsh.Run "cmd.exe /C <nul set /p ""="&dataclip &""" | CLIP", False ' не понимаю что тут, но переноса строки не стало
' wsh.Run "cmd.exe /c echo " & dataclip & " | clip", False

я не программист, но вот что наконструировал, работает
через clipboardData.setData не работает, предполагаю система безопасности винды не дает шалить с буфером
для меня остается проблемой то что в буфере появляется ненужный мне перенос строки

Последний раз редактировалось testot, 07-08-2012 в 21:57.


Отправлено: 16:40, 07-08-2012 | #12


Новый участник


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

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


Цитата BigBoo:
после этой команды в скрипте желательно поставить небольшую паузу, если данные буфера обмена требуется использовать незамедлительно. »
Можно вызвать метод Run с аргументом <WaitOnReturn> = True для ожидания выполнения команды.
Код
Цитата testot:
... wsh.Run "cmd.exe /C <nul set /p ""="&dataclip &""" | CLIP", False ...»
изменить вот так:
Код: Выделить весь код
wsh.Run "cmd.exe /C <nul set /p ""="&dataclip &""" | CLIP", 0, True
Код
Цитата SendMessage:
Код: Выделить весь код
CreateObject("WScript.Shell").Run "mshta.exe ""javascript:clipboardData.setData('text','" & StrTextToCB & "');close();""", 2
»
соответственно:
Код: Выделить весь код
CreateObject("WScript.Shell").Run "mshta.exe ""javascript:clipboardData.setData('text','" & StrTextToCB & "');close();""", 0, True

Отправлено: 23:44, 19-09-2013 | #13


Пользователь


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

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


Цитата BigBoo:
И ещё один вопрос, как скопировать в буфер текст с сохранением перевода строки? То есть читаю файл:

Код: Выделить весь код
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
»
Подскажите, пожалуйста, что надо изменить чтобы копировало в буфер содержимое любого отправленного на этот VBS файла, а не только Serial.txt как тут указано?

Отправлено: 20:01, 17-05-2017 | #14


Ветеран


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

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


Код: Выделить весь код
Option Explicit

Dim strSourceFile
Dim strContent


If WScript.Arguments.Count = 1 Then
	strSourceFile = WScript.Arguments.Item(0)
	
	With WScript.CreateObject("Scripting.FileSystemObject")
		If .FileExists(strSourceFile) Then
			With .OpenTextFile(strSourceFile)
				strContent = Replace(.ReadAll(), "\", "\\")
				.Close
			End With
			
			WScript.CreateObject("WScript.Shell").Run """mshta.exe"" ""javascript:clipboardData.setData('text','" & strContent & "');close();""", 0, True
		Else
			WScript.Echo "Can't find source file [" & strSourceFile & "]."
			WScript.Quit 2
		End If
	End With
Else
	WScript.Echo "Usage: wscript.exe """ & WScript.ScriptName & """ <Source file>"
	WScript.Quit 1
End If

WScript.Quit 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:06, 17-05-2017 | #15



Компьютерный форум 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




 
Переход