IPB

Добро пожаловать, гость ( Вход | Регистрация )

> Delphi, Asm, C, WinAPI, PHP, ..., FAQ
-=CHE@TER=-
Jan 5 2007, 00:35
Сообщение #1


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,355
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 311 раз(а)



Delphi programs in API.
На английском.
Очень подробно всё описано, плюс есть исходные коды готовых юнитов.
Например SmallUtil, в котором есть все частоиспользуемые подпрограммы, и который в размере меньше, чем SysUtils (автор так утверждает - я не проверял).
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
 
Reply to this topicStart new topic
Ответов
-=CHE@TER=-
Jul 16 2007, 16:40
Сообщение #2


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,355
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 311 раз(а)



Думаю, тут будет полезно приводить некоторые полезные куски кода.

Вот пара из них. Handle - не обязательно какой-то элемент вашей программы - это может быть и хэндл чужой программы.

Эмулирование нажатия какой-нибудь клавиши на клавиатуре:
CODE
SendMessage(Handle, WM_KEYDOWN, VK_SPACE, 0);
SendMessage(Handle, WM_CHAR, VK_SPACE, 0);
SendMessage(Handle, WM_KEYUP, VK_SPACE, 0);

В данном случае посылается код пробела элементу с хэндлом Handle. Обратите внимание, для чтобы нажатая клавиша обработалась корректно, необходимо послать все три сообщения! Т.е. сначала что нажата клавиша пробел, затем, символ клавиши, и потом, что она отжата. Это удобно делать, например, для ListView, если нужно чтобы после удаления элемента автоматом выделился тот, на котором сейчас стоит курсор.

Эмулирование нажатия клавиши мыши реализуется по схожей схеме:
CODE
SendMessage(Handle, WM_LBUTTONDOWN, MK_LBUTTON, MAKELONG(X, Y));
SendMessage(Handle, WM_LBUTTONUP, MK_LBUTTON, MAKELONG(X, Y));

В данном случае, эмулируется нажатие на левую клавишу мышки.
X, Y - координаты точки от левого верхнего угла элемента с хэндлом Handle, где "произошло" нажатие.
Сразу скажу, что я этот код не тестировал. Хотя, по идее, он должен работать.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Сообщения в этой теме
-=CHE@TER=-   Delphi, Asm, C, WinAPI, PHP, ...   Jan 5 2007, 00:35
Siberian GRemlin   Может не в тему, но не решился создавать новую тем...   Jul 5 2007, 16:36
-=CHE@TER=-   Может не в тему, но не решился создавать новую тем...   Jul 5 2007, 16:44
-=CHE@TER=-   Вопрос - кто знает, как по MUTEX'у процесса по...   Jul 7 2007, 16:37
jTommy   Вопрос - кто знает, как по MUTEX'у процесса по...   Jul 8 2007, 16:01
-=CHE@TER=-   Если я правильно понял ситуация такая: загружена т...   Jul 9 2007, 12:10
jTommy   Нет, всё гораздо хуже - программа при загрузке ком...   Jul 9 2007, 20:09
-=CHE@TER=-   Нет, всё гораздо хуже - программа при загрузке ком...   Aug 22 2014, 11:14
Xplorer   Handle'у процесса посылал WM_CLOSE - без толку...   Jul 10 2007, 09:44
-=CHE@TER=-   Бардак на корабле! © Попугай из Пиратов Карибс...   Jul 10 2007, 12:51
Xplorer   Я изменил код. А вот, кстати, интересный тогда вп...   Jul 10 2007, 13:54
-=CHE@TER=-   Я изменил код. Смотри в коде.Хе-хе, ты своё сообщ...   Jul 10 2007, 22:04
-=CHE@TER=-   Думаю, тут будет полезно приводить некоторые полез...   Jul 16 2007, 16:40
Siberian GRemlin   Извиняюсь, если не в тему (вроде это WinAPI). Хоте...   Jul 19 2007, 09:14
-=CHE@TER=-   Извиняюсь, если не в тему (вроде это WinAP). Хотел...   Jul 19 2007, 13:51
-=CHE@TER=-   А теперь моя очередь задавать вопрос. (*улыбается*...   Jul 20 2007, 01:30
Xplorer   Для 2000/XP/2003/Vista - RasGetConnectionStatistic...   Jul 20 2007, 06:08
-=CHE@TER=-   Xplorer! RasGetConnectionStatistics - это как ...   Jul 20 2007, 13:48
-=CHE@TER=-   [b]Xplorer! RasGetConnectionStatistics - это к...   Jul 21 2010, 16:00
-=CHE@TER=-   Переименовал тему - теперь тут можете обсуждать чт...   Jul 23 2007, 19:01
-=CHE@TER=-   Кстати, насчёт ReadKey / KeyPressed - вот, неплоха...   Aug 11 2007, 13:54
-=CHE@TER=-   Вопрос ко всем - возможно ли при помощи класса TFi...   Apr 7 2008, 17:03
Xplorer   S := TFileStream.Create('x.x', fmO...   Apr 8 2008, 19:30
-=CHE@TER=-   Xplorer! Ой, спасибо большое! Что-то я сто...   Apr 9 2008, 10:09
-=CHE@TER=-   Ещё пара глупых вопросов: 1. В Си можно сделать т...   Jun 8 2008, 11:49
Grom PE   -=CHE@TER=-, вопросы нормальные =) 1. Если я прав...   Jun 8 2008, 12:28
-=CHE@TER=-   Grom PE! Спасибо большое, только создавать ещё...   Jun 8 2008, 17:59
-=CHE@TER=-   Небольшая программка для перезапуска зависших прил...   Oct 12 2008, 19:56
-=CHE@TER=-   Вопрос: кто-нибудь знает как получить ключи команд...   Oct 13 2008, 08:16
-=CHE@TER=-   Вот код тру перезапускалки: Program WHungApp; Us...   Oct 13 2008, 10:55
-=CHE@TER=-   PHP 5.2.1 + IIS 6 PHP has encountered an Access V...   Oct 18 2008, 11:15
-=CHE@TER=-   Очередная херня - столько времени убил, пока нагуг...   Oct 31 2008, 15:54
-=CHE@TER=-   Есть на форме UpDown1, ассоциированный (Associate)...   Nov 15 2008, 07:32
Grom PE   -=CHE@TER=-, у меня с чистым созданным проектом вс...   Nov 15 2008, 12:58
-=CHE@TER=-   Еще попробуй перезапустить Delphi.Как оно всё оказ...   Nov 15 2008, 13:08
-=CHE@TER=-   Вопрос сложный, но может кто-то знает в чём прикол...   Dec 18 2008, 18:26
-=CHE@TER=-   Делал тут как-то плеер. И решил сделать для него в...   Jan 2 2009, 19:53
-=CHE@TER=-   Кто-нибудь знает, как можно проверить сокет на дох...   Jun 25 2009, 04:10
-=CHE@TER=-   Однако! Первая строчка с получением 0 байт у м...   Dec 5 2009, 16:36
Siberian GRemlin   Обычно указывается драйвер вызвавший эту ошибку. Е...   Jun 25 2009, 06:22
-=CHE@TER=-   Обычно указывается драйвер вызвавший эту ошибку. Е...   Jun 25 2009, 11:56
Siberian GRemlin   Полезную статейку нашёл. Даже если ошибка на чужом...   Nov 2 2009, 10:11
-=CHE@TER=-   Товарищи, объясните мне кто-нибудь такой феномен: ...   Jan 15 2010, 19:26
Grom PE   -=CHE@TER=- Ну дык, процессор так работает, x shr...   Jan 16 2010, 07:46
-=CHE@TER=-   Думаю, что это лучше здесь разместить, чем в ссылк...   Jan 23 2010, 18:35
Siberian GRemlin   Может не в тему, но есть ли готовый модуль\би...   Feb 15 2010, 15:45
Axsis   пара ссылок с первой страницы гугла: http://www.de...   Feb 15 2010, 16:10
-=CHE@TER=-   Чтобы долго не писать чего да как - приведу [/cut]...   Apr 22 2010, 10:05
-=CHE@TER=-   Иногда бывает надо при распаковке игровых архивов ...   Jun 1 2010, 17:46
-=CHE@TER=-   Блин, ставил по работе на удалённый сайт Joomla - ...   Jul 27 2010, 17:38
-=CHE@TER=-   Вчерась ковырял одну игрушку, где данные были упак...   Aug 10 2010, 14:27
-=CHE@TER=-   Вчерась ковырял одну игрушку, где данные были упак...   Mar 7 2012, 20:37
Siberian GRemlin   Сегодня у меня был очередной сеанс мозгофилии. При...   Jan 7 2011, 15:20
-=CHE@TER=-   1) Либо Inno: AnsiString -> WideString; Delphi:...   Jan 7 2011, 23:20
Siberian GRemlin   Собственно, я и спрашивал как правильно перегнать ...   Jan 8 2011, 10:49
-=CHE@TER=-   Locale - это, грубо так говоря, язык установленный...   Jan 8 2011, 12:35
-=CHE@TER=-   Ковырял тут по просьбе CMS одну. Собственно, были ...   Jan 9 2011, 16:01
Siberian GRemlin   Не подскажите ка можно на JavaScript вставить (гип...   Apr 14 2011, 16:49
-=CHE@TER=-   Если тебе просто что-то надо вставить, а не файл, ...   Apr 14 2011, 18:26
Siberian GRemlin   Мне нужно было именно на JS или jQ, ибо для AJAX н...   Apr 15 2011, 11:12
-=CHE@TER=-   Поставил я тут новый colorer для FAR и моя тачка з...   Jul 23 2011, 13:01
Siberian GRemlin   Намедни столкнулся с тем что IE не понимает InnerH...   Jul 28 2011, 03:05
-=CHE@TER=-   У Delphi такой смешной оптимизатор (компилирую про...   Nov 11 2011, 15:15
-=CHE@TER=-   Siberian GRemlin! До меня, кажется, дошло, по...   Nov 14 2011, 13:41
-=CHE@TER=-   У Delphi такой смешной оптимизатор (компилирую про...   Mar 12 2012, 09:13
Siberian GRemlin   для каждой строки писать String[кол-во_символов] =...   Mar 12 2012, 11:07
Siberian GRemlin   Как я понимаю при конкатенации (дурацкое слово) ст...   Nov 11 2011, 15:25
-=CHE@TER=-   Похоже долго ты на Java писал. (*улыбается*) Нет,...   Nov 11 2011, 20:39
-=CHE@TER=-   Писал я недавно патч для включения крови в German ...   Jan 14 2012, 13:26
Siberian GRemlin   Кто-нибудь знает где можно взять готовый код под P...   Mar 24 2012, 09:13
-=CHE@TER=-   Вот тут (за номером 7 самый простой, и ниже - до к...   Mar 24 2012, 11:58
-=CHE@TER=-   В Си есть такая замечательная функция, как sprintf...   Apr 14 2012, 15:39
-=CHE@TER=-   И ещё о нескольких устаревших (по мнению MSDN, где...   Apr 15 2012, 10:32
-=CHE@TER=-   Проводя очередную чистку системы, натолкнулся на ф...   Apr 19 2012, 13:23
Grom PE   Сам у себя встречал такие файлы. Полюбопытствовал,...   Apr 19 2012, 19:05
-=CHE@TER=-   В очередной раз зайдя на сайт товарища Siberian GR...   Apr 24 2012, 12:14
Siberian GRemlin   Я так понимаю, ты знаешь способ создания динамичны...   Apr 24 2012, 13:16
-=CHE@TER=-   Я так понимаю, ты знаешь способ создания динамичны...   Apr 24 2012, 15:37
Siberian GRemlin   Месяц назад я только договорился с админом и мне в...   Apr 24 2012, 15:49
-=CHE@TER=-   О, блин, 4-ый PHP это уже здорово, чем вообще ниче...   Apr 24 2012, 16:19
-=CHE@TER=-   Нашёл в Delphi 7 охрененный косяк, который вынес м...   May 30 2012, 10:22
-=CHE@TER=-   Все, наверное, помнят, что в .BMP формате строки и...   Sep 6 2012, 20:32
jTommy   Ради интереса полез в свою "библию" - кн...   Sep 8 2012, 20:52
-=CHE@TER=-   Ты имеешь ввиду GFF? Я нашёл там вот такое описани...   Sep 9 2012, 12:43
jTommy   Да, она самая, издание от 1997 года.   Sep 9 2012, 21:25
-=CHE@TER=-   Поделюсь двумя вещами. 1) Во-первых, в Delphi 7 к...   Dec 15 2012, 09:29
-=CHE@TER=-   Товарищи, у меня вопрос - может кто-нибудь помочь?...   Apr 6 2013, 18:25
-=CHE@TER=-   Нашёл вот такую штуку: Это из исходных кодов ста...   Apr 9 2013, 16:17
-=CHE@TER=-   Исходные коды можно нагуглить, могу выложить, если...   Apr 18 2013, 16:48
-=CHE@TER=-   Я, походу, перестану скоро Delphi пользоваться, во...   Apr 27 2013, 15:06
Siberian GRemlin   Моя прога по работе использует TTimer и пока пробл...   Apr 29 2013, 13:48
-=CHE@TER=-   P. S. С получением текста помочь не могу, к сожале...   Apr 30 2013, 11:40
-=CHE@TER=-   Ну, ладно, пока никто с получением текста не помог...   May 1 2013, 11:54
-=CHE@TER=-   Сделал себе замечательный srvrun.bat для перезапус...   Jun 6 2013, 17:11
Siberian GRemlin   Возникла внезапная потребность использовать socks ...   Jun 22 2013, 08:06
-=CHE@TER=-   Мне не так давно было ещё одно откровение, которым...   Jun 28 2013, 11:09
-=CHE@TER=-   Часто пишу программы, которые со временем довольно...   Sep 14 2013, 14:32
-=CHE@TER=-   Пишу в последнее время на Си, так что недавно мне ...   Nov 23 2013, 17:38
-=CHE@TER=-   Недавно я тут писал про утилиту COMPRESS.EXE, сжим...   Nov 27 2013, 15:42
-=CHE@TER=-   Натолкнулся на то, что в нескольких играх использу...   Feb 13 2014, 14:49
2 Страниц V  1 2 >


Reply to this topicStart new topic
27 чел. читают эту тему (гостей: 27, скрытых пользователей: 0)
Пользователей: 0 -

 



Упрощённая версия Сейчас: 26th May 2024 - 15:32