Форум программистов, компьютерный форум, киберфорум
VBScript/JScript/WSH/WMI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
8 / 8 / 4
Регистрация: 12.01.2017
Сообщений: 384

Разделение текста в буфере обмена и копирование его в разные графы таблицы

01.04.2025, 09:48. Показов 1761. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Есть прокси, записанный, к примеру, в виде 11.11.11.11:2222 и скопированный в буфер обмена. Нужно сделать VBS-скрипт (или батник), который разделял бы адрес и порт, находящиеся в буфере обмена, и заносил бы их в отдельные графы таблицы, указанной ниже:
https://www.cyberforum.ru/atta... 1743487289
Миниатюры
Разделение текста в буфере обмена и копирование его в разные графы таблицы  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.04.2025, 09:48
Ответы с готовыми решениями:

Копирование текста в буфер обмена в Windows XP
Здравствуйте. Насколько я понял, в WinXP копирование в буфер посредством ВАТ-файла возможно лишь после установки дополнительных утилит...

Избирательное копирование текста из буфера обмена в один из двух файлов
Здравствуйте! В VBS не силён, поэтому прошу помощи в доработке скрипта clipboard =...

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

24
6668 / 2829 / 1088
Регистрация: 06.06.2017
Сообщений: 9,600
01.04.2025, 10:53
А vpncmd с этим разве не справляется?

Цитата Сообщение от sundraw Посмотреть сообщение
и заносил бы их в отдельные графы таблицы, указанной ниже:
Ну это надо делать сменой текста для классов и номеров экземпляров. На чистом vbs (без AutoItX3.dll и т. п.) тут только симуляция нажатий Tab и посимвольный ввод.
0
8 / 8 / 4
Регистрация: 12.01.2017
Сообщений: 384
01.04.2025, 11:41  [ТС]
Цитата Сообщение от FlasherX Посмотреть сообщение
Ну это надо делать сменой текста для классов и номеров экземпляров. На чистом vbs (без AutoItX3.dll и т. п.) тут только симуляция нажатий Tab и посимвольный ввод.
FlasherX, у меня уже работает nnCron, он все задачи выполняет, но доходя до этого момента, приходится дальше делать вручную. На всякий случай даю его задачу
Bash
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#( AddVPN
NoActive
NoLog
Action:
WIN-RESTORE: "SoftEther*"
WIN-ACTIVATE: "SoftEther*"
MOUSE-MOVE: 345 173
MOUSE-RBCLK
MOUSE-MOVE: 385 475
MOUSE-LBCLK
PAUSE: 100
MOUSE-MOVE: 450 290
PAUSE: 100
MOUSE-RBCLK
PAUSE: 100
MOUSE-MOVE: 490 343
PAUSE: 100
MOUSE-LBCLK
PAUSE: 100
MOUSE-MOVE: 1000 675
MOUSE-LBCLK
MOUSE-MOVE: 345 173
MOUSE-RBCLK
MOUSE-MOVE: 390 215
MOUSE-LBCLK
MOUSE-MOVE: 310 100
MOUSE-LBCLK
MOUSE-MOVE: 340 223
MOUSE-LBCLK
PAUSE: 100
MOUSE-MOVE: 1005 368
PAUSE: 100
MOUSE-LBCLK
PAUSE: 100
MOUSE-MOVE: 840 388
PAUSE: 100
MOUSE-LBCLK
PAUSE: 100
MOUSE-MOVE: 890 397
MOUSE-LBCLK
SEND-KEYS: "vpn"
MOUSE-MOVE: 443 343
MOUSE-LBCLK
SEND-KEYS: "VPNGATE"
PAUSE: 100
MOUSE-MOVE: 440 290
MOUSE-RBCLK
PAUSE: 100
MOUSE-MOVE: 480 360
MOUSE-LBCLK
ENABLE-CRON
)#
Добавлено через 11 минут
Здесь даже адрес вводится автоматически, но начиная с порта, всё приходится делать вручную.
0
6668 / 2829 / 1088
Регистрация: 06.06.2017
Сообщений: 9,600
01.04.2025, 12:03
sundraw, навигация указателя по координатам экрана (MOUSE-MOVE) уже небезопасная вещь, учитывая возможность смещения окна и потенциальную разницу разрешений.
0
8 / 8 / 4
Регистрация: 12.01.2017
Сообщений: 384
01.04.2025, 12:25  [ТС]
Цитата Сообщение от FlasherX Посмотреть сообщение
sundraw, навигация указателя по координатам экрана (MOUSE-MOVE) уже небезопасная вещь, учитывая возможность смещения окна и потенциальную разницу разрешений.
FlasherX, это я понимаю. Поэтому поначалу использовал навигацию по координатам от активного окна приложения (MOUSE-MOVEW), но там были свои заморочки, и в итоге пришёл к MOUSE-MOVE, учитывая её наибольшую стабильность, и то что размер экрана и координаты окон не меняется.

Добавлено через 6 минут
А вот если бы в эту задачу вставить VBS скрипт, разделяющий адрес и порт, то проблема должна быть решена, тем более, что в nnCron возможна вставка VBS.
0
6668 / 2829 / 1088
Регистрация: 06.06.2017
Сообщений: 9,600
01.04.2025, 19:20
В таком случае лучше сразу отказаться от этих вещей и делать все вставки (а не только адреса и порта) на vbs (лучше, конечно, на AutoIt/AHK/итп). К тому же эти задержки перед каждым кликом - ну такое себе...
А принцип запрошенного будет примерно таким:
Visual Basic
1
2
3
4
5
6
7
8
9
Clip = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
With New RegExp
   .Pattern = "((\d{1,3}\.){3}\d{1,3}):(\d+)"
   If Not .Test(Clip) Then WSH.Quit
   Set AdPrt = .Execute(Clip)(0)
End WIth
Addr = AdPrt.Submatches(0)
Port = AdPrt.Submatches(2)
CreateObject("WScript.Shell").SendKeys "{Tab 3}" & Addr & "{Tab}" & Port
Tab 3 - это неточно, потому что я не знаю, где будет фокус в конечном итоге.
Если делать с AutoItX3.dll, придётся самому выписать Class/Instance для рассматриваемых контролов окна (с пом. Au3Info.exe, напр.), чтобы я мог помочь.
0
8 / 8 / 4
Регистрация: 12.01.2017
Сообщений: 384
01.04.2025, 20:25  [ТС]
FlasherX, с этим скриптом вот что получается
https://www.cyberforum.ru/atta... 1743528185
Это когда nnCron входит в поле Host Name и нажимает Вставить. Дальше идёт скрипт.
0
8 / 8 / 4
Регистрация: 12.01.2017
Сообщений: 384
01.04.2025, 21:27  [ТС]
FlasherX, в скрипте сменил в 7-й строке значение 0 на 2 (Addr = AdPrt.Submatches(2)), и почти получилось
https://www.cyberforum.ru/atta... 1743531902
Осталось только в графе Host Name избавиться от двоеточия, и того, что идёт после него.
Миниатюры
Разделение текста в буфере обмена и копирование его в разные графы таблицы  
0
8 / 8 / 4
Регистрация: 12.01.2017
Сообщений: 384
01.04.2025, 21:50  [ТС]
Хотя и с таким каламбуром
https://www.cyberforum.ru/atta... 1743533350
соединение всё же происходит. Но порядок должен быть. Если есть возможность, убрать лишнее.
Миниатюры
Разделение текста в буфере обмена и копирование его в разные графы таблицы  
0
6668 / 2829 / 1088
Регистрация: 06.06.2017
Сообщений: 9,600
01.04.2025, 22:55
Цитата Сообщение от sundraw Посмотреть сообщение
с этим скриптом вот что получается
Ссылка нерабочая.

Цитата Сообщение от sundraw Посмотреть сообщение
в скрипте сменил в 7-й строке значение 0 на 2 (Addr = AdPrt.Submatches(2))
Зачем? Это неверно. Читайте внимательно, что я пишу. Я намекнул, что нужно указать верное число после Tab вместо 3. Если пришлось делать такую замену, то, видимо, это 4. Больше тут ничего править нельзя.
0
8 / 8 / 4
Регистрация: 12.01.2017
Сообщений: 384
01.04.2025, 23:09  [ТС]
Цитата Сообщение от FlasherX Посмотреть сообщение
Ссылка нерабочая.
https://www.cyberforum.ru/atta... 1743538098
Цитата Сообщение от FlasherX Посмотреть сообщение
Я намекнул, что нужно указать верное число после Tab вместо 3. Если пришлось делать такую замену, то, видимо, это 4. Больше тут ничего править нельзя.
С Tab 4 такая же ситуация.
Миниатюры
Разделение текста в буфере обмена и копирование его в разные графы таблицы  
0
8 / 8 / 4
Регистрация: 12.01.2017
Сообщений: 384
02.04.2025, 10:41  [ТС]
Получается, что в следующую графу уходят значения, расположенные до двоеточия, а не после. Тогда хотя бы и с дублирующим значением порта, соединение сработало бы. Как уже писал, когда ставил Addr = AdPrt.Submatches(2), так оно и происходило, порт записывался в следующую графу. Но Вы сказали, что так править нельзя, и оказались правы, в этом случае иногда (не всегда) значение порта записывалось в 3-ю графу Virtual Hub Name, что является ошибкой. Хотя это могло происходить и потому, что во 2-й графе по умолчанию уже прописан 443-й порт, возможно, это и заставляет перебрасывать значение искомого порта в 3-ю графу. Попытаюсь разобраться.
0
6668 / 2829 / 1088
Регистрация: 06.06.2017
Сообщений: 9,600
02.04.2025, 11:35
Цитата Сообщение от sundraw Посмотреть сообщение
С Tab 4 такая же ситуация.
Не может быть такого. Либо условия исходной фокусировки изменились.
Не понял, в поле "Host Name:" вы вручную адрес:порт занесли? Как ip оказывается сразу в двух полях? Повторяю: 7 и 8 строки нельзя править, там всё верно. В 9 нужно править только 3, больше ничего.

Цитата Сообщение от sundraw Посмотреть сообщение
Получается, что в следующую графу уходят значения, расположенные до двоеточия, а не после.
Ну пропуйте Tab 5 тогда.

Цитата Сообщение от sundraw Посмотреть сообщение
Хотя это могло происходить и потому, что во 2-й графе по умолчанию уже прописан 443-й порт, возможно, это и заставляет перебрасывать значение искомого порта в 3-ю графу.
Порт у вас - 3 поле, а не второе. Неважно, что там прописано, т. к. при переходе табом выделяется весь текст, который сразу заменяется при наборе нового.

Цитата Сообщение от sundraw Посмотреть сообщение
иногда (не всегда)
Вот поэтому я и писал, что
Цитата Сообщение от FlasherX Посмотреть сообщение
лучше сразу отказаться от этих вещей и делать все вставки (а не только адреса и порта) на vbs (лучше, конечно, на AutoIt/AHK/итп).
0
8 / 8 / 4
Регистрация: 12.01.2017
Сообщений: 384
02.04.2025, 12:51  [ТС]
Цитата Сообщение от FlasherX Посмотреть сообщение
Не понял, в поле "Host Name:" вы вручную адрес:порт занесли? Как ip оказывается сразу в двух полях? Повторяю: 7 и 8 строки нельзя править, там всё верно. В 9 нужно править только 3, больше ничего.
Нет, не вручную. Весь прокси копирую в буфер обмена, запускаю nnCron. Он отрабатывает до поля Host Name и правым кликом даёт команду Вставить, дальше работает скрипт. Часть задачи ниже:
Visual Basic
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
#( AddVPN
NoActive
NoLog
Action:
WIN-RESTORE: "SoftEther*"
WIN-ACTIVATE: "SoftEther*"
.........
MOUSE-MOVE: 890 397
MOUSE-LBCLK
SEND-KEYS: "vpn"
MOUSE-MOVE: 443 343
MOUSE-LBCLK
SEND-KEYS: "VPNGATE"
PAUSE: 100
MOUSE-MOVE: 440 290
MOUSE-RBCLK
PAUSE: 100
MOUSE-MOVE: 480 360
MOUSE-LBCLK
<VBScript>
Clip = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
With New RegExp
   .Pattern = "((\d{1,3}\.){3}\d{1,3}):(\d+)"
   If Not .Test(Clip) Then WSH.Quit
   Set AdPrt = .Execute(Clip)(0)
End WIth
Addr = AdPrt.Submatches(0)
Port = AdPrt.Submatches(2)
CreateObject("WScript.Shell").SendKeys "{Tab 3}" & Addr & "{Tab}" & Port
</SCRIPT>
..........
ENABLE-CRON
)#
Он заполняет поле Port Number адресом, а не портом, и оставляет порт в первой графе, в которой должен быть только адрес.
С TAB 5 попробую. С AutoIt не знаком, под него придётся переделывать множество задач nnCron-а
P.S. TAB 3 и TAB 4 работают одинаково - в поле Host Name - полный прокси с портом через двоеточие, в поле порта - адрес. TAB 5 заполняет только первое поле полным прокси, во втором поле остаётся порт по умолчанию 443-й, то есть до второго поля скрипт не доходит.TAB 2, TAB 1 уже начинают срезать во втором поле первые цифры и знаки. Может быть версия WSH имеет значение? У меня в WinXP версия WSH 5.7
0
6668 / 2829 / 1088
Регистрация: 06.06.2017
Сообщений: 9,600
02.04.2025, 13:27
Цитата Сообщение от sundraw Посмотреть сообщение
Он заполняет поле Port Number адресом, а не портом
Тогда Tab 2. По скринам не видно фокуса, поэтому я сразу дал понять, что надо экспериментировать. Вы сами должны понимать, сколько раз нужно нажать Tab для фокусировки на поле "Host Name:". У вас в приведённом коде по-прежнему 3. Ну так меняйте. Это же несколько секунд проверить пару-тройку цифр...

Цитата Сообщение от sundraw Посмотреть сообщение
и оставляет порт в первой графе, в которой должен быть только адрес.
Повторяю: первое поле у вас - это "Setting Name:", в нём vbs ничего и не должен делать. А второе - "Host Name:". Там у вас на скрине адрес:порт. Если туда фокус не попал, значит, уменьшаем число нажатий Tab. Это ж очевидно.

Цитата Сообщение от sundraw Посмотреть сообщение
С AutoIt не знаком, под него придётся переделывать множество задач
nnCron умеет запускать exe, так что не вижу проблемы. Вообще у неё есть возможность работы с оконными хэндлами. Есть команды WIN-SET-TITLE: и SendMessageA. Проблема в том, что win_pattern не умеет привязываться к номеру экземпляра класса. Дескрипторы обновляются, а классы могут совпадать. Не знаю, о чём думал автор, игнорируя такой важный момент.
0
8 / 8 / 4
Регистрация: 12.01.2017
Сообщений: 384
02.04.2025, 14:03  [ТС]
Поигрался табами. Вот что получилось.


TAB 0

https://www.cyberforum.ru/atta... 1743591450

TAB 1

https://www.cyberforum.ru/atta... 1743591450

TAB 2

https://www.cyberforum.ru/atta... 1743591450

TAB 3 - TAB 4

https://www.cyberforum.ru/atta... 1743591450

TAB 5

https://www.cyberforum.ru/atta... 1743591450


FlasherX, обдумаю ещё варианты. Предлагаю закрыть тему. Большое спасибо за помощь.
Миниатюры
Разделение текста в буфере обмена и копирование его в разные графы таблицы   Разделение текста в буфере обмена и копирование его в разные графы таблицы   Разделение текста в буфере обмена и копирование его в разные графы таблицы  

Разделение текста в буфере обмена и копирование его в разные графы таблицы   Разделение текста в буфере обмена и копирование его в разные графы таблицы  
0
6668 / 2829 / 1088
Регистрация: 06.06.2017
Сообщений: 9,600
02.04.2025, 14:46
Проблема в том, что нясно, что и куда вы перед этим кликаете, и самое главное зачем, когда есть Tab. Вам нужно отказаться от MOUSE-MOVE/MOUSE-LBCLK, потому что это (особенно для меня) совершенно непредсказуемые вещи, которые вносят сумятицу.

Кстати, у nncron есть %CLIPBOARD%, RE-MATCH: и SEND-KEYS:, так что vbs тут вообще не нужен.
0
8 / 8 / 4
Регистрация: 12.01.2017
Сообщений: 384
03.04.2025, 06:43  [ТС]
Цитата Сообщение от FlasherX Посмотреть сообщение
Кстати, у nncron есть %CLIPBOARD%, RE-MATCH: и SEND-KEYS:, так что vbs тут вообще не нужен.
Не нашёл я на этом сайте планировщика nnCron, даже Форта нет, на котором он написан. И где его обсуждать, непонятно.
0
6668 / 2829 / 1088
Регистрация: 06.06.2017
Сообщений: 9,600
03.04.2025, 11:42
Цитата Сообщение от sundraw Посмотреть сообщение
И где его обсуждать, непонятно.
Лучше всего на авторском форуме, там и подскажут точнее. А здесь можно тут или тут.
0
8 / 8 / 4
Регистрация: 12.01.2017
Сообщений: 384
03.04.2025, 12:03  [ТС]
FlasherX, спасибо за подсказки. Про nnSoft форум я знаю. Вчера на нём искал нужное, нашёл плагин, который мой самый последний nncron принимать не хочет. Несколько месяцев назад хотел зарегистрироваться, не дают, то ли устарел, то ли переполнен. Сейчас тему выложил здесь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.04.2025, 12:03
Помогаю со студенческими работами здесь

Копирование текста из буфера обмена по сети
Здравствуйте! Столкнулся с проблемой копирования текста из хостовой машины в гостевую в VirtualBox. Копирование работает нестабильно....

hex для заданной строки переписать попарно справа налево и копирование в буфер обмена
Всем привет! Прошу помочь решить задачу: есть команда для получения cid с SDcard на андроид устройствах cat...

Копирование из файла в буфер обмена
Господа, подскажите возможно ли реализовать на bat файлах следующее - необходимо чтобы при выполнении бат файла происходило копирование ...

Копирование в буфер обмена части имени файла
Доброго времени суток. Помогите, пожалуйста, дополнить свой батник.. Есть файл, расположенный по адресу С:\program files\kakaya_to...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Популярные LM модели ориентированы на увеличение затрат ресурсов пользователями сгенерированного кода (грязь -заслуги чистоплюев).
Hrethgir 12.06.2025
Вообще обратил внимание, что они генерируют код (впрочем так-же ориентированы разработчики чипов даже), чтобы пользователь их использующий уходил в тот или иной убыток. Это достаточно опытные модели,. . .
Топ10 библиотек C для квантовых вычислений
bytestream 12.06.2025
Квантовые вычисления - это та область, где теория встречается с практикой на границе наших знаний о физике. Пока большая часть шума вокруг квантовых компьютеров крутится вокруг языков высокого уровня. . .
Dispose и Finalize в C#
stackOverflow 12.06.2025
Работая с C# больше десяти лет, я снова и снова наблюдаю одну и ту же историю: разработчики наивно полагаются на сборщик мусора, как на волшебную палочку, которая решит все проблемы с памятью. Да,. . .
Повышаем производительность игры на Unity 6 с GPU Resident Drawer
GameUnited 11.06.2025
Недавно копался в новых фичах Unity 6 и наткнулся на GPU Resident Drawer - штуку, которая заставила меня присвистнуть от удивления. По сути, это внутренний механизм рендеринга, который автоматически. . .
Множества в Python
py-thonny 11.06.2025
В Python существует множество структур данных, но иногда я сталкиваюсь с задачами, где ни списки, ни словари не дают оптимального решения. Часто это происходит, когда мне нужно быстро проверять. . .
Работа с ccache/sccache в рамках C++
Loafer 11.06.2025
Утилиты ccache и sccache занимаются тем, что кешируют промежуточные результаты компиляции, таким образом ускоряя последующие компиляции проекта. Это означает, что если проект будет компилироваться. . .
Настройка MTProxy
Loafer 11.06.2025
Дополнительная информация к инструкции по настройке MTProxy: Перед сборкой проекта необходимо добавить флаг -fcommon в конец переменной CFLAGS в Makefile. Через crontab -e добавить задачу: 0 3. . .
Изучаем Docker: что это, как использовать и как это работает
Mr. Docker 10.06.2025
Суть Docker проста - это платформа для разработки, доставки и запуска приложений в контейнерах. Контейнер, если говорить образно, это запечатанная коробка, в которой находится ваше приложение вместе. . .
Тип Record в C#
stackOverflow 10.06.2025
Многие годы я разрабатывал приложения на C#, используя классы для всего подряд - и мне это казалось естественным. Но со временем, особенно в крупных проектах, я стал замечать, что простые классы. . .
Разработка плагина для Minecraft
Javaican 09.06.2025
За годы существования Minecraft сформировалась сложная экосистема серверов. Оригинальный (ванильный) сервер не поддерживает плагины, поэтому сообщество разработало множество альтернатив. CraftBukkit. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
OSZAR »