Форум: "Начинающим";
Текущий архив: 2008.01.06;
Скачать: [xml.tar.bz2];
Внизсемитировать ввод в поле с клавиатуры Найти похожие ветки
← →
Петр (2007-12-08 14:16) [0]здравствуйте, подскажите пожалуйста как семитировать ввод в поле с клавиатуры.....
← →
Dib@zol © (2007-12-08 14:19) [1]Что сделать? Может, сЫмитировать? Увожайте рускей изыг, таваищи!
А по теме - SendMessage + WM_CHAR + (WM_KEYDOWN+WM_KEYUP)
← →
Петр (2007-12-08 14:20) [2]спасибо а можно пожалуйста поподробнее
← →
{RASkov} © (2007-12-08 14:24) [3]> [2] Петр (08.12.07 14:20)
> можно пожалуйста поподробнее
Послать сообщение(WM_CHAR)второй параметр) окну(!)(первый параметр)
WM_CHAR
chCharCode = (TCHAR) wParam; // character code
lKeyData = lParam; // key data
Еще подробнее в Ф1.
← →
Петр (2007-12-08 14:30) [4]у меня к сожалению не работает справка... подскажите какие параметры в SendMessage();
← →
{RASkov} © (2007-12-08 14:31) [5]> [4] Петр (08.12.07 14:30)
> параметры в SendMessage();
LRESULT SendMessage(
HWND hWnd, // handle of destination window
UINT Msg, // message to send
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
Parameters
hWnd
Identifies the window whose window procedure will receive the message. If this parameter is HWND_BROADCAST, the message is sent to all top-level windows in the system, including disabled or invisible unowned windows, overlapped windows, and pop-up windows; but the message is not sent to child windows.
Msg
Specifies the message to be sent.
wParam
Specifies additional message-specific information.
lParam
Specifies additional message-specific information.
← →
{RASkov} © (2007-12-08 14:35) [6]> [4] Петр (08.12.07 14:30)
> у меня к сожалению не работает справка...
В делфи в меню есть пункт Help в нем есть пункт Windows SDK "вылезет" окошко хелпа, там есть закладка "Предметный Указатель" вводишь туда SendMessage
нажатие F1 - он не всегда почему-то работает по АПИ функциям, по крайней мере у меня так....(
← →
Петр (2007-12-08 14:38) [7]1 спасибо а как получить handle of destination window для окна?
2 что писать в message to send
3 первый параметр напиать WM_CHAR?
4 второй тоже WM_CHAR?
зарание большое спасибо!
← →
Петр (2007-12-08 14:39) [8]и он говорит что справка не поддерживается в windows vista
← →
{RASkov} © (2007-12-08 14:44) [9]> [7] Петр (08.12.07 14:38)
поле ввода чье? твое? если да то в одном приложении или из одного приложения хочешь послать в другое(но оба твои)?
Или поле "чужое"? Давай подробнее вопрос.... И, самое главное, для чего тебе это нужно???
> [8] Петр (08.12.07 14:39)
:)
Кто? дядя Вася?
Вообще по этой функции(она АПИ) есть онлайн хелп и независит от ОС :)
← →
Dib@zol © (2007-12-08 14:44) [10]> [7] Петр (08.12.07 14:38)
Первым параметром нужно проставить не WM_CHAR (в отличие от второго) а хендл того окна, кому ты собсна посылаешь этот WM_CHAR. Определить хендл можно многими способами, однако я рекомендую FindWindowEx.
FindWindowEx [Quick info] [Overwiew] [Group]
The FindWindowEx function retrieves the handle to a window whose class name and window name match the specified strings. The function searches child windows, beginning with the one following the given child window.
HWND FindWindowEx(
HWND hwndParent, // handle to parent window
HWND hwndChildAfter, // handle to a child window
LPCTSTR lpszClass, // pointer to class name
LPCTSTR lpszWindow // pointer to window name
);
Parameters
hwndParent
Identifies the parent window whose child windows are to be searched.
If hwndParent is NULL, the function uses the desktop window as the parent window. The function searches among windows that are child windows of the desktop.
hwndChildAfter
Identifies a child window. The search begins with the next child window in the Z order. hwndChildAfter must be a direct child window of hwndParent, not just a descendant window.
If hwndChildAfter is NULL, the search begins with the first child window of hwndParent.
Note that if both hwndParent and hwndChildAfter are NULL, the function searches all top-level windows.
lpszClass
Points to a null-terminated string that specifies the class name or is an atom that identifies the class-name string. If this parameter is an atom, it must be a global atom created by a previous call to the GlobalAddAtom function. The atom, a 16-bit value, must be placed in the low-order word of lpszClass; the high-order word must be zero.
lpszWindow
Points to a null-terminated string that specifies the window name (the window"s title). If this parameter is NULL, all window names match.
Return Values
If the function succeeds, the return value is the handle to the window that has the specified class and window names.
If the function fails, the return value is NULL. To get extended error information, call GetLastError.
← →
{RASkov} © (2007-12-08 14:44) [11].... может и решение проще найдется)
← →
Петр (2007-12-08 14:50) [12]необходимо заполнит анкету и наглядно продемонстрировать как это происходит тоесть напечатать текст за пользователя...если только одно окно то можно в 1 параметре HWND_BROADCAST?
← →
{RASkov} © (2007-12-08 14:54) [13]> [12] Петр (08.12.07 14:50)
> если только одно окно
Чьё оно???
> можно в 1 параметре HWND_BROADCAST?
Нет.
В первом параметре должен быть хендл поля ввода...
← →
Петр (2007-12-08 14:55) [14]форма не моя....
← →
Петр (2007-12-08 14:56) [15]как узнать хендл поля ввода? спасибо....
← →
Dib@zol © (2007-12-08 14:57) [16]Кинь сюда эту прогу, сам скажу как это делать. ей богу так легче будет.
← →
Dib@zol © (2007-12-08 14:59) [17]> сам скажу как это делать
тфу. я хотел сказать "Сделаю сам".
← →
Петр (2007-12-08 15:04) [18]нужно вайти в mail.ru тоесть ввести в поле логин и пароль соответственно.....
← →
{RASkov} © (2007-12-08 15:07) [19]> [18] Петр (08.12.07 15:04)
мдя... Мыло мочало...
Поля ввода уже оказываются на Вэб-странице? Если да, то у них нет хэндла(
← →
Петр (2007-12-08 15:08) [20]хотябы ввести логин если курсор уже установле в поле....
← →
Dib@zol © (2007-12-08 15:27) [21]> здравствуйте, подскажите пожалуйста как сЫмитировать ввод в поле с клавиатуры.....
> нужно вайти в mail.ru тоесть ввести в поле логин и пароль соответственно.....
Такой метод решения данной проблемы называется "лобовая атака". Грубо и неизящно. Тут, я так понимаю, нужно использовать скрипты, только вот как - без понятия. Никогда с сетями не работал и сайтов не делал.
← →
Петр (2007-12-08 15:30) [22]тут можно просто нажать кнопку как это делаетя для мыши просто
mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_leftDOWN, 218,67, 0, 0);
разве нет подобного для клавиатуры???
← →
{RASkov} © (2007-12-08 15:31) [23]> [22] Петр (08.12.07 15:30)
> разве нет подобного для клавиатуры???
ЕСть
keybd_event
но в твоем случае это плохое решение задачи(
← →
Петр (2007-12-08 15:33) [24]а почему же плохое?
← →
Петр (2007-12-08 15:38) [25]если это заработает то это уже хорошо))) подскажите как это использовать какие параметры?
← →
{RASkov} © (2007-12-08 15:38) [26]> [24] Петр (08.12.07 15:33)
> Такой метод решения данной проблемы называется "лобовая
> атака". Грубо и неизящно.
← →
{RASkov} © (2007-12-08 15:43) [27]> [25] Петр (08.12.07 15:38)
Эту ветку скорее закроют, так как в ней нет ничего полезного... "куски" хэлпа - они у всех есть кроме автора ветки....)
А автор так и не хочет более подробно рассказать чего же он хочет( где вообще находятся эти его поля ввода....
← →
Riply © (2007-12-08 15:45) [28]> [27] {RASkov} © (08.12.07 15:43)
> Эту ветку скорее закроют
Это как это закроют ? А я надеялась, что здесь весь MSDN распечатают :)
← →
Петр (2007-12-08 15:47) [29]Mail.ru, яж говорил, пожалуйста напишите синтаксис КибордИвента
← →
Dib@zol © (2007-12-08 15:49) [30]The keybd_event function synthesizes a keystroke. The system can use such a synthesized keystroke to generate a WM_KEYUP or WM_KEYDOWN message. The keyboard driver"s interrupt handler calls the keybd_event function.
VOID keybd_event(
BYTE bVk, // virtual-key code
BYTE bScan, // hardware scan code
DWORD dwFlags, // flags specifying various function options
DWORD dwExtraInfo // additional data associated with keystroke
);
Parameters
bVk
Specifies a virtual-key code. The code must be a value in the range 1 to 254.
bScan
Specifies a hardware scan code for the key.
dwFlags
A set of flag bits that specify various aspects of function operation. An application can use any combination of the following predefined constant values to set the flags:
Value Meaning
KEYEVENTF_EXTENDEDKEY If specified, the scan code was preceded by a prefix byte having the value 0xE0 (224).
KEYEVENTF_KEYUP If specified, the key is being released. If not specified, the key is being depressed.
dwExtraInfo
Specifies an additional 32-bit value associated with the key stroke.
Return Values
This function has no return value.
Remarks
Although keybd_event passes an OEM-dependent hardware scan code to Windows, applications should not use the scan code. Windows converts scan codes to virtual-key codes internally and clears the up/down bit in the scan code before passing it to applications.
An application can simulate a press of the PRINTSCREEN key in order to obtain a screen snapshot and save it to the Windows clipboard. To do this, call keybd_event with the bVk parameter set to VK_SNAPSHOT, and the bScan parameter set to 0 for a snapshot of the full screen or set bScan to 1 for a snapshot of the active window.
но опять же, это - в общем случае - не выход.
← →
Петр (2007-12-08 15:59) [31]приведите пример пожалуйста!
← →
Петр (2007-12-08 15:59) [32]приведите пример пожалуйста!
← →
{RASkov} © (2007-12-08 16:04) [33]> [28] Riply © (08.12.07 15:45)
> А я надеялась, что здесь весь MSDN распечатают :)
:)
Ну выходные еще впереди может и уложится все)
Например [30] Очень хочет тебе угодить :)
← →
Петр (2007-12-08 16:09) [34]подскажите пожалуйста что писать в:
1 BYTE bVk
2 BYTE bScan
3 DWORD dwFlags
4 DWORD dwExtraInfo
← →
{RASkov} © (2007-12-08 16:29) [35]> [34] Петр (08.12.07 16:09)
См [30]
Что тебе там не понятно????
Набери в любом поисковике(например в Яндексе) "keybd_event Примеры в Делфи", что ты как маленький :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.01.06;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.005 c