powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Буфер обмена VBS
6 сообщений из 6, страница 1 из 1
Буфер обмена VBS
    #38772806
KOPOJlb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Помогите разобраться, пожалуйста. Многие говорят, что работает такой код для помещения в буфер обмена. У меня чтение из буфера работает, а пощенеие в буфер нет. Предположения?
Код: vbnet
1.
2.
3.
4.
Set objHTML = CreateObject("htmlfile")
	objHTML.ParentWindow.ClipboardData.SetData "text", "Text for Test"
	ClipboardText = objHTML.ParentWindow.ClipboardData.GetData("text")
MsgBox ClipboardText


Заранее спасибо
...
Рейтинг: 0 / 0
Буфер обмена VBS
    #38772843
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KOPOJlb,

сейчас проверил, работает в Windows 7 64 bit. На Windows XP 32 bit не работает.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
'Копирование текста в буфер обмена
option explicit

Dim WSHShell, objFSO, str

str = "Эта строка будет скопирована в буфер"
 Set WSHShell = CreateObject("WScript.Shell")
 Set objFSO = CreateObject("Scripting.FileSystemObject")

'Копируем в буфер обмена Windows
WSHShell.Run "cmd.exe /C <nul set /p ""=" & str & """ | CLIP", 0, False


Еще находил варианты через запуск Word, IE и т.д. в скрытом окне и копировать в буфер средствами этого скрытого приложения.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
option explicit
dim strCopy, objIE

strCopy = "This text has been copied to the clipboard."

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate("about:blank")
objIE.document.parentWindow.clipboardData.setData "text", strCopy
objIE.Quit
Set objIE = nothing

IE может ругнуться на безопасность
...
Рейтинг: 0 / 0
Буфер обмена VBS
    #38772846
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KOPOJlb,

тот код для Windows 7 64 bit можно проще
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
option explicit

Dim WSHShell, str

str = "Эта строка будет скопирована в буфер"
 Set WSHShell = CreateObject("WScript.Shell")

'Копируем в буфер обмена Windows
WSHShell.Run "cmd.exe /C <nul set /p ""=" & str & """ | CLIP", 0, False
...
Рейтинг: 0 / 0
Буфер обмена VBS
    #38772886
KOPOJlb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне нужен кросплатформенный способ. Виндовс XP, 7
Есть такой вариант, но мне он не нравится, т.к. я не понимаю, что тут к чему, но зато работает и без предупреждений.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
function SetClipBoard(sTxt)

    	set oIe = WScript.CreateObject("InternetExplorer.Application")
    	oIe.silent = true
    	oIe.Navigate("about:blank")

    	do while oIe.ReadyState <> 4
        	WScript.Sleep 20
    	loop

    	do while oIe.document.readyState <> "complete"
        	WScript.Sleep 20
    	loop 


 	oIe.document.body.innerHTML = "<textarea id=txtArea wrap=off></textarea>"


    	set oTb = oIe.document.getElementById("txtArea")


    	oTb.value = sTxt 
    	oTb.select

    	set oTb = nothing

    	oIe.ExecWB 12,0
    	oIe.Quit

    	Set oIe = nothing


End function
...
Рейтинг: 0 / 0
Буфер обмена VBS
    #38773126
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KOPOJlb,

это усовершенствованный способ копирования в буфер через Internet Explorer. Я упростил пример, работает и в хр-32 и семерке-64. Пояснения - в коде:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
option explicit

function SetClipBoard(sTxt)
	dim oIe, oTb

	set oIe = WScript.CreateObject("InternetExplorer.Application") ' создаем объект Internet Explorer
	oIe.silent = true ' запускаем IE в фоновом режиме
	oIe.Navigate("about:blank") ' создаем пустую Web-страницу

 	oIe.document.body.innerHTML = "<textarea id=txtArea wrap=off></textarea>" ' размещаем элемент TextArea на Web-странице (аналог Memo в Delphi)
	set oTb = oIe.document.getElementById("txtArea") ' находим наш TextArea по ID (id присвоен строчкой выше некоему значению "txtArea")

	oTb.value = sTxt ' записываем в TextArea нашу строку, которую хотим забрать в буфер
	oTb.select ' выделим текст в TextArea

	set oTb = nothing

	oIe.ExecWB 12,0 ' копируем выделенный текст в буфер обмена
	oIe.Quit ' закрываем IE

	Set oIe = nothing
End function

SetClipBoard("Долой C#")
...
Рейтинг: 0 / 0
Буфер обмена VBS
    #38774678
KOPOJlb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное, спасибо. Теперь все ясно.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Буфер обмена VBS
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]