ANTICHAT Forum
HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
НОВЫЕ ТОРГОВАЯ НОВОСТИ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 19.04.2010, 13:05
FlyBird
Познающий
Регистрация: 14.10.2007
Сообщений: 47
С нами: 9775862

Репутация: 18
По умолчанию

Похоже на то, что мне нужно. Спасибо, буду дальше махиначить
 
Ответить с цитированием

  #12  
Старый 22.04.2010, 11:00
FlyBird
Познающий
Регистрация: 14.10.2007
Сообщений: 47
С нами: 9775862

Репутация: 18
По умолчанию

И все же это чуточку не то.
У него такого же рода проблема. Список констант, которые вроде пашут, а вроде и нет.
 
Ответить с цитированием

  #13  
Старый 22.04.2010, 12:07
ViLKaa
Новичок
Регистрация: 24.07.2009
Сообщений: 9
С нами: 8841798

Репутация: 10
По умолчанию

Эм...
SendKeys.Send("{F1}");

или я что то не понимаю)
 
Ответить с цитированием

  #14  
Старый 23.04.2010, 18:57
FlyBird
Познающий
Регистрация: 14.10.2007
Сообщений: 47
С нами: 9775862

Репутация: 18
По умолчанию

Что-то тогда не ясно, как отправить это окну, которое в фокусе.
 
Ответить с цитированием

  #15  
Старый 23.04.2010, 20:27
FlyBird
Познающий
Регистрация: 14.10.2007
Сообщений: 47
С нами: 9775862

Репутация: 18
По умолчанию

Решение найдено.
Вилка прав(а)
http://msdn.microsoft.com/en-us/library/ms171548.aspx
 
Ответить с цитированием

  #16  
Старый 17.05.2010, 10:21
FlyBird
Познающий
Регистрация: 14.10.2007
Сообщений: 47
С нами: 9775862

Репутация: 18
По умолчанию

Что-то замучала эта задачка.
Когда идет посылка SendKeys.Send("{F1}"); приходится ждать ответа.
А я хочу слать кажду секунду сообщение о нажатой кнопке .
 
Ответить с цитированием

  #17  
Старый 17.05.2010, 10:51
W!z@rD
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
С нами: 10653446

Репутация: 836


По умолчанию

DDoS какой-то.

надо учитывать что SendKeys отправляет сообщение активному окну.

чтобы не ждать "ответа" нужно асинхронно посылать сообщения.
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
 
Ответить с цитированием

  #18  
Старый 17.05.2010, 10:52
FlyBird
Познающий
Регистрация: 14.10.2007
Сообщений: 47
С нами: 9775862

Репутация: 18
По умолчанию

Неее... можно выставить, что типо окно в фокусе и слать ему сообщения, хотя ты его сам активным не делаешь.
 
Ответить с цитированием

  #19  
Старый 17.05.2010, 15:48
alexey-m
Познающий
Регистрация: 15.07.2009
Сообщений: 71
С нами: 8854881

Репутация: 35
По умолчанию

Цитата:
Сообщение от FlyBird  
Что-то замучала эта задачка.
Когда идет посылка SendKeys.Send("{F1}"); приходится ждать ответа.
А я хочу слать кажду секунду сообщение о нажатой кнопке .
FlyBird, если не охота ждать то посылай сообщения через PostMessage, так сообщения ставятся в очередь и ты сразу получишь управления после вызова функции, при использовании SendMessage сообщения отправляются на прямую, и тебе придется ждать...
Раз ты проверял все на блокноте то небольшой пример, правда на Delphi
Код:
 procedure TFormMain.Button1Click(Sender: TObject);
var
  hWnd,hChild: THandle;
begin
// Ещем окно с классом 'Notepad'
  hWnd:= FindWindowA('Notepad',nil);
  if hWnd<>0 then begin
    hChild:= FindWindowExA(hWnd,0,'Edit',nil);       // Ищем текстовое поле
    if hChild<>0 then begin
      SendMessage(hChild, WM_CHAR, Word('-'), 0);    // Посылаем символ "-"
      PostMessage(hChild, WM_KEYDOWN, VK_RETURN, 0); // Переводим строку
    end;
    PostMessage(hWnd, WM_KEYDOWN, VK_F5, 0); // Посылаем главному окну о нажатии клавиши F5
  end else
    ShowMessage('Notepad not found');
end;
 
Ответить с цитированием

  #20  
Старый 20.05.2010, 11:17
FlyBird
Познающий
Регистрация: 14.10.2007
Сообщений: 47
С нами: 9775862

Репутация: 18
По умолчанию

Цитата:
Сообщение от alexey-m  
FlyBird, если не охота ждать то посылай сообщения через PostMessage, так сообщения ставятся в очередь и ты сразу получишь управления после вызова функции, при использовании SendMessage сообщения отправляются на прямую, и тебе придется ждать...
Раз ты проверял все на блокноте то небольшой пример, правда на Delphi
Код:
 procedure TFormMain.Button1Click(Sender: TObject);
var
  hWnd,hChild: THandle;
begin
// Ещем окно с классом 'Notepad'
  hWnd:= FindWindowA('Notepad',nil);
  if hWnd<>0 then begin
    hChild:= FindWindowExA(hWnd,0,'Edit',nil);       // Ищем текстовое поле
    if hChild<>0 then begin
      SendMessage(hChild, WM_CHAR, Word('-'), 0);    // Посылаем символ "-"
      PostMessage(hChild, WM_KEYDOWN, VK_RETURN, 0); // Переводим строку
    end;
    PostMessage(hWnd, WM_KEYDOWN, VK_F5, 0); // Посылаем главному окну о нажатии клавиши F5
  end else
    ShowMessage('Notepad not found');
end;
Спасибо большое за ответ.
За пару дней до вашего я все же достиг того, что нужно. Помогли на одном форуме. Я что-то совсем про ПОСТ забыл.
Даже был вариант самому себе посылать подтверждение, но потом напомнили про ПОСТ. WipAPI только в инсте проходил и ни шагу дальше.
Пример кода.


Код:
if (hWnd == IntPtr.Zero)
            {
                MessageBox.Show("Процесс не найден", "FlyBird(Ошибка)");
                return;
            }
            IntPtr hEdit = FindWindowEx(hWnd, IntPtr.Zero, "Edit", "");
            if (hEdit == IntPtr.Zero)
            {
                MessageBox.Show("Not found child", "Error");
                return;
            }

            IntPtr t1 = (IntPtr)ComBoxSelectItem_1;
            IntPtr nul = IntPtr.Zero;

            //PostMessage(hWnd, WM_KEYUP, t1, nul);
            PostMessage(hWnd, WM_KEYDOWN, t1, nul);
Теперь проблема в том, как достучаться до меню сторонний программы и отправить команду на выполнения поункта меню и дальше вбить в TextBox нужные символы и нажать Button.
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
my.mail.ru отправка сообщений. GreenBear Социальные сети 0 10.03.2010 21:15



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.