Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2018, 14:56   #1
selevo
Пользователь
 
Аватар для selevo
 
Регистрация: 06.07.2008
Сообщений: 10
По умолчанию хендл предыдущего окна ?

В общем суть такая.
Я пишу текст, мне надо вставлять "рандомное" число иногда,я запускаю
по комбинации клавиш программку, она берет число с сайта и вставляет.
Но пока не вставляет конечно.

Я так понял когда я нажимаю комбинацию клавиш, окно в котором я писал,браузер например, перестает быть активным и когда я беру хендл окна в программе своей, естественно получаю хендл своей ,а не той в которой текст писал.

Как быть ?

Последний раз редактировалось selevo; 10.10.2018 в 19:44.
selevo вне форума Ответить с цитированием
Старый 10.10.2018, 15:05   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Взять AutoHotkey/AutoIt и не париться.

Цитата:
Сообщение от selevo Посмотреть сообщение
когда я нажимаю комбинацию клавиш, окно в котором я писал перестает быть активным
Смотря как и какое, но вообще с чего вдруг?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 10.10.2018, 19:42   #3
selevo
Пользователь
 
Аватар для selevo
 
Регистрация: 06.07.2008
Сообщений: 10
По умолчанию

ну с того, что моя программа не вставляет текст в то место где я пишу.

Я же вижу что фокус браузер теряет при запуске моей проги по комбинации клавиш и нормально это, для любой обычной программы при старте.
если фокус потерялся, куда текст-то вставится ?
В никуда.

Мне не надо никакие хоткеи и автоиты, фисло формируется моей программой с помощью парсинга страницы
Это для вас оно случайное, чтоб писать меньше было.
selevo вне форума Ответить с цитированием
Старый 10.10.2018, 20:15   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Не запускайте каждый раз или не создавайте окна, консоль и т.п.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 10.10.2018, 20:16   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Ну так не запускайте свою программу. Пусть висит в фоне и реагирует.
p51x вне форума Ответить с цитированием
Старый 10.10.2018, 20:19   #6
selevo
Пользователь
 
Аватар для selevo
 
Регистрация: 06.07.2008
Сообщений: 10
По умолчанию

а как мне текст вставить в итоге ?
Я же не знаю куда

Последний раз редактировалось selevo; 10.10.2018 в 21:32.
selevo вне форума Ответить с цитированием
Старый 10.10.2018, 22:32   #7
selevo
Пользователь
 
Аватар для selevo
 
Регистрация: 06.07.2008
Сообщений: 10
По умолчанию

Если моя программа запущена...
и в ней стоит перехват сочетания контрол+шифт+Ё
То текст всё равно не вставляется в окно другой программы.
я пробовал имитировать нажатия

Код:
keybd_event(VK_LCONTROL, 0, 0, 0); //Нажатие левого Ctrl.
  keybd_event(Ord('v'), 0, 0, 0); //Нажатие 'v'.
      keybd_event(Ord('v'), 0, KEYEVENTF_KEYUP, 0); //Отпускание 'v'.
  keybd_event(VK_LCONTROL, 0, KEYEVENTF_KEYUP, 0); //Отпускание левого Ctrl.
потом я попробовал на время отработки кода программы обнулить нажатия так как правые контрол и шифт уже нежаты при старте...
Код:
keybd_event(VK_RCONTROL, 0, KEYEVENTF_KEYUP, 0); //Отпускание правого Ctrl.
  keybd_event(VK_RSHIFT, 0, KEYEVENTF_KEYUP, 0); //Отпускание правого RSHIFT.

   keybd_event(VK_LCONTROL, 0, 0, 0); //Нажатие левого Ctrl.
  keybd_event(Ord('v'), 0, 0, 0); //Нажатие 'v'.
      keybd_event(Ord('v'), 0, KEYEVENTF_KEYUP, 0); //Отпускание 'v'.
  keybd_event(VK_LCONTROL, 0, KEYEVENTF_KEYUP, 0); //Отпускание левого Ctrl.

  keybd_event(VK_RCONTROL, 0, 0, 0); //нажатие правого Ctrl.
  keybd_event(VK_RSHIFT, 0, 0, 0); //нажатие правого RSHIFT.
тоже нет вставки
selevo вне форума Ответить с цитированием
Старый 11.10.2018, 02:06   #8
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

Цитата:
Сообщение от selevo Посмотреть сообщение
Как быть ?
В общем случае никак. Но совет Alex11223 может натолкнуть на грамотное решение. Если, конечно, вы пишите программу сами, а не конструируете её из мусора найденного на всемирной помойке.
northener вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хендл окна Михаил Юрьевич Общие вопросы Delphi 5 23.02.2015 12:40
хендл окна Михаил Юрьевич Общие вопросы Delphi 13 31.03.2013 22:29
хендл окна сообщения vanektoo Общие вопросы Delphi 3 07.11.2008 22:41
Как зная хендл окна закрыть его SeRhy Общие вопросы Delphi 1 24.08.2008 11:02
Получаю хендл окна виндовского калькулятора Lich Win Api 8 01.07.2008 10:43