Другие языки программирования и технологии

Удалить символ из буфера

Нужна некая процедура на языке поддерживаемом виндой (в блокноте написал, расширение поменял, например на bat, js итд)
Идея такая: скопировал текстовую информацию, которая содержит например дефисы, запускаем програмку, она втихаря отработает, и при вставке текст вставиться без дефисов.
Ро
Роман
263
В системе торчит процесс, который регулярно опрашивает БО и делает с ним определённые действия. Здесь засада не столько в том, как испортить БО (это как раз просто) , сколько в определении момента срабатывания. Либо постоянно (но тогда прога палится на раз) , либо по какому-то действию, нпрм по хоткею. Чем такая прога отличается от вируса? Только тем, что не маскируется
Аскер
Аскер
50 298
Лучший ответ
Писал такую штуку под заказ, только она меняет по горячей клавише один текст на другой. Если интересно то вот: rghost.ru/59162074
IV
Ivan Viktorovich
56 696
Роман Спасибо, но это экзэшник.. . на работу не протащу, покрайней мере в ближайшее время))
Набацал =) В блокноте, сохраните как .vbs

On Error Resume Next
Set objIE = WScript.CreateObject("InternetExplorer.Application")
If objIE <> vbNull Then
objIE.Navigate "about:blank"
Set objClip = objIE.document.parentWindow.clipboardData
strClip = objClip.getData("text")
If strClip <> "" Then
strClip = Replace(strClip, "-", "")
objClip.setData "text", strClip
MsgBox strClip
End If
End If
objIE.Quit
WScript.Quit

Ток IE будет спрашивать про доступ к Clipboard - в принципе, если раздражает - можно избавиться.
+ можно и через Word добраться. Ток её запускать надо для изменений. Есс-но никто не мешает зациклить

MsgBox тоже можно удалить - просто для тестирования

------
*Upd - переделал в цикле. Будет висеть в процессах и остлеживать буфер раз в секунду (Sleep 1000). Удаляет "-" в строках. Если в буфере обмена будет "!stop!" программа прекратит работу. У меня работает. Не забудьте, что если в буфере будет сразу "!stop!", то программа сразу и выйдет =):

On Error Resume Next
Set objIE = WScript.CreateObject("InternetExplorer.Application")
If objIE <> vbNull Then
objIE.Navigate "about:blank"
Set objClip = objIE.document.parentWindow.clipboardData
Do
strClip = objClip.getData("text")
If strClip <> "" Then
If strClip = "!stop!" Then Exit Do
strClip = Replace(strClip, "-", "")
objClip.setData "text", strClip
End If
WScript.Sleep 1000
Loop Until False
End If
MsgBox "Auto clipboard stoppped"
objIE.Quit
WScript.Quit