17

Доступ к тексту в буфере обмена в vba/vbs

Попросили помочь со скриптами vbs. Благодаря криворукости разработчиков специфическому поведению SAP, решением проблемы было использование буфера обмена. С чтением содержимого всё просто, а вот с записью уже не так тривиально. Причём, сторонний софт туда не скопировать и не скомпилировать - огорожено. Так что пользуют "васик".


Вобщем, нарыл вот такое. Кому надо, пользуйтесь:


Функция:

Function ClipBoard(input)
If IsNull(input) Then
ClipBoard = CreateObject("HTMLFile").parentWindow.clipboardData.getData("Text")
If IsNull(ClipBoard) Then ClipBoard = ""
Else
CreateObject("WScript.Shell").Run "mshta.exe javascript:eval(""document.parentWindow.clipboardData.setData('text','" & Replace(Replace(Replace(input, "'", "\\u0027"), """","\\u0022"),Chr(13),"\\r\\n") & "');window.close()"")", 0,True
End If
End Function

Использование:


Получение текста:

result = ClipBoard(null)

Установка текста:

ClipBoard("новый текст")

Если установка не нужна, можно функцию не использовать, хватит простой строки:

result = CreateObject("HTMLFile").parentWindow.clipboardData.getData("Text")

Для установки через setData такой способ не подходит (М$ пофиксили возможность зачем-то), посему приходится извращаться с помощью HTA.

MS, Libreoffice & Google docs

782 поста15K подписчик

Правила сообщества

1. Не нарушать правила Пикабу

2. Публиковать посты соответствующие тематике сообщества

3. Проявлять уважение к пользователям

4. Не допускается публикация постов с вопросами, ответы на которые легко найти с помощью любого поискового сайта.

По интересующим вопросам можно обратиться к автору поста схожей тематики, либо к пользователям в комментариях


Важно - сообщество призвано помочь, а не постебаться над постами авторов! Помните, не все обладают 100 процентными знаниями и навыками работы с Office. Хотя вы и можете написать, что вы знали об описываемом приёме раньше, пост неинтересный и т.п. и т.д., просьба воздержаться от подобных комментариев, вместо этого предложите способ лучше, либо дополните его своей полезной информацией и вам будут благодарны пользователи.

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

Вы смотрите срез комментариев. Показать все
0
Автор поста оценил этот комментарий

Для установки через setData такой способ не подходит (М$ пофиксили возможность зачем-то), посему приходится извращаться с помощью HTA.

через cmd уже не модно или прав не хватает?

Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run "cmd.exe /c echo hello world | clip", 0, TRUE


Dim string

String = "text here" &chr(13)& "more text here"

Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run "cmd.exe /c echo " & String & " | clip", 0, TRUE


раскрыть ветку (4)
0
Автор поста оценил этот комментарий

Не пашет.

0
DELETED
Автор поста оценил этот комментарий

я не специалист, но cmd выполняется асинхронно, а это может быть критично для выполнения программы

раскрыть ветку (2)
1
Автор поста оценил этот комментарий

WshShell.Run

задан 3й параметр (bWaitOnReturn)

пока командный интерпретатор не завершит выполнение - вызвавшая его программа будет терпеливо ждать завершения...


я не специалист

Именно поэтому был ОБЯЗАН подгуглить, а не фантазировать :)

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

я никому здесь ничего не обязан. А за уточнение спасибо, вот и гуглить не пришлось

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества