Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Буфер обмена VBS / 6 сообщений из 6, страница 1 из 1
10.10.2014, 10:59
    #38772806
KOPOJlb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буфер обмена VBS
Добрый день.
Помогите разобраться, пожалуйста. Многие говорят, что работает такой код для помещения в буфер обмена. У меня чтение из буфера работает, а пощенеие в буфер нет. Предположения?
Код: 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
10.10.2014, 11:23
    #38772843
user89
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буфер обмена VBS
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
10.10.2014, 11:26
    #38772846
user89
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буфер обмена VBS
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
10.10.2014, 11:42
    #38772886
KOPOJlb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буфер обмена VBS
Мне нужен кросплатформенный способ. Виндовс 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
10.10.2014, 13:58
    #38773126
user89
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буфер обмена VBS
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
13.10.2014, 05:52
    #38774678
KOPOJlb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буфер обмена VBS
Огромное, спасибо. Теперь все ясно.
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Буфер обмена VBS / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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