Высший пилотаж - пишем клавиатурный shiffer

Спецвыпуск Хакер, номер #004, стр. 004-074-2

Часть третья, или Let's do it baby (Сделай это, баба.)

Перейдем к делу. Запускай Visual C++ и готовься к прорыву в сознании - ты начинаешь делать реальные проги из воздуха. Заходи в меню File->New и во вкладке Projects выбери пункт MFC App Wizard (exe).

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

Этот вариант самый удобный для нас, потому что нам надо при запуске проги вести диалог с юзером. Нажми Next и продолжай. В следующем окне убери значок ActiveX Controls, чтобы не использовать элементы ActiveX.

Эти функции тебе вряд ли когда-нибудь понадобятся. В поле ввода задай заголовок главного окошка и жми Finish. Подтвердив намерение создать прогу нажатием OK, ты получишь каркас будущего клавиатурного шпиона. В первую очередь откроется окно с редактором диалогового окна. Сейчас надо нарисовать наш интерфейс. Сначала надо удалить надпись "TODO..." и кнопку OK. Надо просто щелкнуть на них и нажать Del. Затем добавить две кнопки, выбрав иконку с прямоугольником на панели инструментов и нажав мышкой в место, где будет находиться будущая кнопка. Назови одну "Начать", другую - "Выбор файла". Чтобы поменять название кнопки, щелкни на нее правой кнопкой и выбери в меню пункт Properties, затем в поле Caption введи название кнопки. Далее надо добавить в диалог поле, где будет отображаться путь к log-файлу. Для этого достаточно просто перетащить иконку "ab|" на панели Controls в желаемое место.

Снова вызови Properties, но уже для поля ввода, и во вкладке Styles пометь опцию Read-Only (поле только для чтения и не может изменяться юзером). Теперь надо связать поле ввода со строкой, в которой будет храниться отображаемое имя файла. Щелкни правой кнопкой на поле ввода и выбери пункт Class Wizard. Дальше во вкладке Member Variables (переменные члены :) ) нажми кнопку Add Variable... В поле имени, после m_ напиши какое-нибудь слово, например, FileName - получится m_FileName, и это будет имя строки, где будет храниться имя log-файла.

Теперь, когда все элементы интерфейса есть, можно задать события, на какие они будут реагировать. На события будут у нас реагировать только кнопки - на щелканье по ним мышкой. Чтобы добавить обработчики этого события, надо щелкнуть на желаемом элементе правой кнопкой мышки, выбрать пункт Events в появившемся окне, нажать кнопку Add and Edit. Подробности далее.

Часть четвертая, или дописываем интерфейс ручками

Что надо сделать, если юзер щелкнет кнопку "Начать"? Во-первых, проверить, задано ли имя файла отчета. Если нет, то ничего не делать. Во-вторых, спрятать окно и нарисовать в tray иконку. В-третьих, запустить ядро из DLL, которое ловит клавиатурный ввод. Добавь обработчик для кнопки "Начать", как сказано выше. Сразу, как нажмешь Add and Edit, появится редактор кода с курсором в месте, где находится сам обработчик. После строчки //TODO добавь такой код:

Назад на стр. 004-074-1  Содержание  Вперед на стр. 004-074-3

загрузка...
Cпец Хакер #075Cпец Хакер #074Cпец Хакер #073Cпец Хакер #072Cпец Хакер #071Cпец Хакер #070Cпец Хакер #069Cпец Хакер #068Cпец Хакер #067Cпец Хакер #066Cпец Хакер #065Cпец Хакер #064Cпец Хакер #063Cпец Хакер #062Cпец Хакер #061Cпец Хакер #060Cпец Хакер #059Cпец Хакер #058Cпец Хакер #057Cпец Хакер #056Cпец Хакер #055Cпец Хакер #054Cпец Хакер #053Cпец Хакер #052Cпец Хакер #051Cпец Хакер #050Cпец Хакер #049Cпец Хакер #048Cпец Хакер #047Cпец Хакер #046Cпец Хакер #045Cпец Хакер #044Cпец Хакер #043Cпец Хакер #042Cпец Хакер #041Cпец Хакер #040Cпец Хакер #039Cпец Хакер #038Cпец Хакер #037Cпец Хакер #036Cпец Хакер #035Cпец Хакер #034Cпец Хакер #033Cпец Хакер #032Cпец Хакер #031Cпец Хакер #030Cпец Хакер #029Cпец Хакер #028Cпец Хакер #027Cпец Хакер #026Cпец Хакер #025Cпец Хакер #024Cпец Хакер #023Cпец Хакер #022Cпец Хакер #021Cпец Хакер #020Cпец Хакер #019Cпец Хакер #018Cпец Хакер #017Cпец Хакер #016Cпец Хакер #015Cпец Хакер #014Cпец Хакер #013Cпец Хакер #012Cпец Хакер #011Cпец Хакер #010Cпец Хакер #009Cпец Хакер #008Cпец Хакер #007Cпец Хакер #006Cпец Хакер #005Cпец Хакер #004Cпец Хакер #003Cпец Хакер #002Cпец Хакер #001