Гость_Serg |
Отправлено: 08.09.2003, 15:38 |
|
Не зарегистрирован
|
Подсткажите плиз, как решить задачку:
Хочу перехватить нажатия на либую клавишу, если фокус в ComboBox.
и не передавать эту клавишу (char) в ComboBox->Items..., а оставить так.
Понятно, кажется...
Combobox->Style=DropDownList не подходит.
С уважением,
Serg.
|
|
LeeMouse |
Отправлено: 09.09.2003, 09:36 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 79
|
void __fastcall TMainForm::ComboBox1KeyPress(TObject *Sender, char &Key)
{
if( Key == что_то )
{
// делаем что-то
Key = 0;
} // if
} |
|
Георгий |
Отправлено: 09.09.2003, 10:17 |
|
Почетный железнодорожник
Группа: Модератор
Сообщений: 874
|
а лучше сделать так (это и будет, наверное полным ответом на вопрос)
CODE | if( ComboBox1->Focused() )
{
<тот кусок, который LeeMouse привёл>
} | |
|
LeeMouse |
Отправлено: 09.09.2003, 15:02 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 79
|
хихи... это совсем не лучше. А просто лишняя проверка. Мой кусок будет вызван только если фокус на контроле |
|
Гость_Serg |
Отправлено: 09.09.2003, 19:32 |
|
Не зарегистрирован
|
Сорри, господа.
Я не хочу, чтобы в ComboBox что-то писалось. Видимо нужен хук, чтобы перехватить клаву, но как ето сделать?...
rgrds,
Serg.
|
|
Георгий |
Отправлено: 09.09.2003, 20:18 |
|
Почетный железнодорожник
Группа: Модератор
Сообщений: 874
|
LeeMouse
О! Верно. Это я, наверное, спросонья не заметил...
пользовался бы ты тегом CODE — былобы проще читать.
Serg
А ты проверь, что, как работает то, что LeeMouse тебе в своём первом ответе написал, а потом о всяких хуках рассуждай... |
|
Serg |
Отправлено: 11.09.2003, 11:29 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 8
|
CODE | Да............. Спасибо! | |
|
Orifiel |
Отправлено: 15.09.2003, 12:20 |
|
Не зарегистрирован
|
Имеется процедура хука:
//процедура хука
DWORD CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
static int iCount;
char lParamString[30], Buffer[255];
//файл для контроля за тем, как работает хук
ofstream outfile ("C:\\Projects\\FloppyDriveOper\\Viarum\\Log.txt",ios::out|ios::app);
//зануляем lParam, в котором отображаются коды клавиш
if(lParam!=0)lParam=0;
//дальнейшие действия лишь для контроля
itoa(abs(lParam),lParamString,10);
if((strlen(lParamString)==10)||(strlen(lParamString)==9))
{
GetKeyNameText(lParam,Buffer,sizeof Buffer);
if((iCount!=0)&&(iCount%100==0))outfile<<" "<
else outfile<<" "<
iCount++;
}
//передача управления следующим хукам
return CallNextHookEx(hHook,nCode,wParam,lParam);
}
Но в чем собственно проблема. Такой код скрывает символы лишь в моем файле, кейлоггеру же на этот код глубоко наплевать.
Как обмануть кейлоггер, подскажите, плз... |
|