Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 605
от 28.09.2006, 11:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 380, Экспертов: 62
В номере:Вопросов: 7, Ответов: 13


Вопрос № 56347: Доброго времени суток. Необходимо дождаться появления определенного окна чужой программы (основное окно чужой программы открыто, необходимо ждать появление "дополнительного" окна).Насколько я понимаю появление окна соответствует появлению х...
Вопрос № 56349: Доброго времени суток. Подскажите как найти хэндл дочернего окна. Т.е. аналог FindWindow для дочерних окон....
Вопрос № 56363: Уважаемые эксперты. Возникла производственная необходимоть написать прогу которая будет работать с ICQ-протоколом. Поскажите пожалуйста какими компонентами проще для этого воспользоваться в Delphi 7 или Delphi 2006. Ну и если можно то хо...
Вопрос № 56369: Доброго времени суток.На форме лежат два пустых эдита. Тип обоих Edit, имен не знаю, с помощью FindWindowEx(Hnd, 0,PChar('Edit'), nil) хочу найти хэндл одного из двух эдитов. Как узнать хэндл которого мне вернет функция?...
Вопрос № 56392: Здраствуйте уважаемые эксперты Я пишу проект про криптографию и все исходники у меня на дельфи, но я никак немогу решить одну проблему, мне нужно написать программу которая шифрует строчку одним паролем а разшифровывает другим, и чтобы зная ервый...
Вопрос № 56403: Здравствуйте эксперты!! Опять я к Вам с вопросами!! У меня очередная проблема!! Подскажите пожалуйста как можно считывать информацию набранную на клаве для любой программы?? Например если я пишу в блокноте, как перехватить этот текст ...
Вопрос № 56411: Здраствуйте. Как подавить реакцию Windows на CTRL+ALT+DEL, ALT+TAB, CTRL+ESC именно в WinXP, пожалуйста с примером!!!...

Вопрос № 56.347
Доброго времени суток. Необходимо дождаться появления определенного окна чужой программы (основное окно чужой программы открыто, необходимо ждать появление "дополнительного" окна).Насколько я понимаю появление окна соответствует появлению хэндла (его ищу FindWindow-сом). Подскажите пожалуста как лудше организовать ожидание чтобы не загружать мое приложение.
Отправлен: 22.09.2006, 13:12
Вопрос задал: VNos (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: n0name
Здравствуйте, VNos!
Используй ловушки.
HHOOK SetWindowsHookEx( int idHook,
HOOKPROC lpfn,
HINSTANCE hMod,
DWORD dwThreadId
);
idHook = WH_CBT;

Прототип для lpfn:
LRESULT CALLBACK CBTProc( int nCode,
WPARAM wParam,
LPARAM lParam
);

Когда nCode == HCBT_CREATEWND, значит что создано новое окно.
wParam - хэндл нового окна.
lParam - указатель на CBT_CREATEWND структуру.
Ответ отправил: n0name (статус: 6-ой класс)
Ответ отправлен: 22.09.2006, 17:44
Оценка за ответ: 5


Вопрос № 56.349
Доброго времени суток. Подскажите как найти хэндл дочернего окна. Т.е. аналог FindWindow для дочерних окон.
Отправлен: 22.09.2006, 13:20
Вопрос задал: VNos (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: n0name
Здравствуйте, VNos!
HWND FindWindowEx(
HWND hwndParent,
HWND hwndChildAfter,
LPCTSTR lpszClass,
LPCTSTR lpszWindow
);
Первый параметр - хендл родительского окна, второй после какого дочернего окна искать.
Ответ отправил: n0name (статус: 6-ой класс)
Ответ отправлен: 22.09.2006, 13:27
Оценка за ответ: 5

Отвечает: Melamed
Здравствуйте, VNos!
Используй функцию EnumChildWindows, которая для каждого дочерного окна вызывает функцию, адрес на которую передается в параметре данной функции
Ответ отправил: Melamed (статус: 5-ый класс)
Ответ отправлен: 22.09.2006, 13:30
Оценка за ответ: 3


Вопрос № 56.363
Уважаемые эксперты.
Возникла производственная необходимоть написать прогу которая будет работать с ICQ-протоколом.
Поскажите пожалуйста какими компонентами проще для этого воспользоваться в Delphi 7 или Delphi 2006.
Ну и если можно то хоть что-то из документации…
Кому не лень можно прямо отослать мне на E-mail: pepelyaev@pcbk.perm.ru
Отправлен: 22.09.2006, 15:00
Вопрос задал: Пепеляев Александр Павлович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: n0name
Здравствуйте, Пепеляев Александр Павлович!
TICQClient, http://www.torry.net/quicksearchd.php?String=TICQClient&Title=Yes
Есть ещё исходник &RQ.
Ответ отправил: n0name (статус: 6-ой класс)
Ответ отправлен: 22.09.2006, 15:54
Оценка за ответ: 5
Комментарий оценки:
Спасибо.


Вопрос № 56.369
Доброго времени суток.На форме лежат два пустых эдита. Тип обоих Edit, имен не знаю, с помощью FindWindowEx(Hnd, 0,PChar('Edit'), nil) хочу найти хэндл одного из двух эдитов. Как узнать хэндл которого мне вернет функция?
Отправлен: 22.09.2006, 16:32
Вопрос задал: VNos (статус: Посетитель)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Н.В.
Здравствуйте, VNos!
По-моему, должна вернуть хэндл того, который первый описан в TForm1.

А вообще, попробуйте найти и что-нибудь в найденном Edit'e изменить.

Удачи!

Приложение:

---------
http://TheDelphi.Ru

Ответ отправил: Н.В. (статус: 5-ый класс)
Ответ отправлен: 22.09.2006, 16:36
Оценка за ответ: 3

Отвечает: n0name
Здравствуйте, VNos!
SetWindowText();
Измени текст найденного едита, и посмотри какой это.
Ответ отправил: n0name (статус: 6-ой класс)
Ответ отправлен: 22.09.2006, 16:52
Оценка за ответ: 4

Отвечает: Melamed
Здравствуйте, VNos!
Функция возвратить хетдл первого едита в Z-порядке, то есть того едита, который раньше получает фокус ввода или соответстьвенно его свойству TabOrder присвоено меньшее зна 095;ение.
А вообще-то для уверенности проверь получаемый хендл окна с хандлами подозриваемых Edit'ов.
Ответ отправил: Melamed (статус: 5-ый класс)
Ответ отправлен: 22.09.2006, 17:21
Оценка за ответ: 5

Отвечает: Mexes
Здравствуйте, VNos!
Не совсем понятно по поводу незнания имен.
Если это ваши компоненты, можно у них проставить разные поля Tag, и посмотреть, какой именно Edit (из Handle в TControl преобразуется функцией FindControl(Handle: HWnd): TWinControl).
Если при создании Edit-ов Вы не участвуете, выясните косвенно, например, визуально оцените положение (какой Edit выше, левее и т. п.), получите прямоугольник компонента (GetWindowRect) и сделайте вывод в программе, который из них попался.
В общем, найдите отличия (например, TabOrder, он должен быть разный), на основе этого выясните, какой Edit нашелся.
Ответ отправил: Mexes (статус: 3-ий класс)
Ответ отправлен: 22.09.2006, 17:22
Оценка за ответ: 5

Отвечает: Lev
Здравствуйте, VNos!

А как насчет EnumChildWindows в сочетании с проверкой, является ли окно Edit'ом (GetClassName), и проверкой его позиции (GetWindowPlacement) в функции, передаваемой вторым параметром в EnumChildWindows?
Ответ отправил: Lev (статус: 1-ый класс)
Ответ отправлен: 22.09.2006, 19:49


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

Заранее спасибо.
С уважением, Станислав.
Отправлен: 22.09.2006, 22:51
Вопрос задал: Станислав (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Татьяна
Здравствуйте, Станислав!
Тут все на так просто. Это так называемые ассиметричные алгоритмы или алгоритмы с открытом ключом. Думаю вам стоит почитать литературу по этому поводу. Самым ярким представителем данного алгоритма является алгоритм RSA. Нашла готовую длл под дельфи, однако, скажу честно - сама ее работоспособность не проверяла
http://www.listsoft.ru/programs/8704/

Вообще читайте литературу и ищите по ключевым словам "шифрование с открытым ключом", "RSA" и т.п. , думаю проблем с литературой не возникнет

Приложение:

---------
Возможно все. И ничего возможно тоже.

Ответ отправила: Татьяна (статус: Практикант)
Ответ отправлен: 23.09.2006, 20:35


Вопрос № 56.403
Здравствуйте эксперты!!
Опять я к Вам с вопросами!!
У меня очередная проблема!!
Подскажите пожалуйста как можно считывать информацию набранную на клаве для любой программы??
Например если я пишу в блокноте, как перехватить этот текст или в аське пишу что-нибудь??
Зарание спасибо!!
Отправлен: 23.09.2006, 01:08
Вопрос задал: F Ruslan R (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Prosto_Blackhowk
Здравствуйте, F Ruslan R!
Посмотрите статью http://delphiworld.narod.ru/base/hook_keys.html. Там описано, как отловить нажатия клавиш для всех процессов.
Ответ отправил: Prosto_Blackhowk (статус: 2-ой класс)
Ответ отправлен: 27.09.2006, 09:19


Вопрос № 56.411
Здраствуйте. Как подавить реакцию Windows на CTRL+ALT+DEL, ALT+TAB, CTRL+ESC именно в WinXP, пожалуйста с примером!!!
Отправлен: 23.09.2006, 04:54
Вопрос задал: JONSON (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Савенко Вадим Иванович
Здравствуйте, JONSON!
Честно говоря, не очень понятно, то ли Вы хотите скрыть программу, то ли совсем отключить комбинации клавиш. Вот кое-что нашел:

http://itby.ru/content/view/485/40/
http://jtsoftik.narod.ru/delphi/17.html

посмотрите, может подойдет. А если нет , воспользуйтесь Яндексом. Например, поиск по фразе " отключить Ctrl+Alt+Del delphi " и т.п.
Ответ отправил: Савенко Вадим Иванович (статус: Студент)
Ответ отправлен: 23.09.2006, 13:31
Оценка за ответ: 5
Комментарий оценки:
Спасибо большое, что откликнулись. Я читал что это можно сделать с помощью Хуков, но я не совсем разобрался как с ними работать. Если что-то найдете пишите, буду рад.

Отвечает: Н.В.
Здравствуйте, JONSON!
Добавлю к предыдущему ответу: http://delphi.thedelphi.ru/articles.php?type=hide_process&ID=2. В статье описано скрытие процесса от диспетчера задач в NT-системах.

Удачи!
---------
http://TheDelphi.Ru
Ответ отправил: Н.В. (статус: 5-ый класс)
Ответ отправлен: 23.09.2006, 21:41
Оценка за ответ: 4
Комментарий оценки:
Спасибо большое, что откликнулись, но вы нашли не совсем то что мне было нужно наверное из-за того что я плохо объяснил что именно требуется. Мне надо было отключить реакцию на системные комбинации. Я читал что это можно сделать с помощью Хуков, но я не совсем разобрался как с ними работать. Если что-то найдете пишите, буду рад.


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.36 от 06.09.2006
Яндекс Rambler's Top100

В избранное