Author Topic: CTRL + V и .т.д. Неужели нету решения нормальной работы горячих клавиш???  (Read 6470 times)

0 Members and 1 Guest are viewing this topic.

melkichelik

  • Освоившийся
  • **
  • Posts: 28
    • View Profile
Всё пересмотрел, но так и не смог найти решения, как нормально реализовать нажать горячие клавиши по типу CTRL + V, CTRL + С, CTRL + U и. т.д. при этом, что бы в это время на машине можно было делать свои дела.

Через POSTMESSAGE не вариант т.к. там зажатие не работает, через привязку тоже не вариант, там тоже зажатия не работает, включать и отключать привязку тоже не вариант, потому что, если в этом время играть в игру то персонаж будет нажимать постоянно эту CTRL....
Кто подскажет как решить проблему, есть ли вообще решение?

ya12

  • Активный участник
  • ***
  • Posts: 165
    • View Profile
Посылка комбинации: Alt+F5, Shift+F1, Ctrl+ на игрушке не проверял, за не нужностью.
Code: (clickermann) [Select]
     
      postmessage($_hwnd, 0x0104,#ALT,#lpALT)      //Alt нажать
      postmessage($_hwnd, 0x0104,#F5,#lpAF5)      //F5 нажать
      waitms(RND(160,180))
      postmessage($_hwnd, 0x0105,#F5,#lp_AF5)      //F5 отпустить
      postmessage($_hwnd, 0x0101,#ALT,#lp_ALT)      //Alt отпустить
      waitms(RND(160,180))

      postmessage($_hwnd, 0x0100,#SHIFT,#lpSHIFT)      //shift нажать
      postmessage($_hwnd, 0x0100,#F1,#lpF1)             //F1 нажать
      waitms(RND(160,180))
      postmessage($_hwnd, 0x0101,#F1,#lp_F1)           //F1 отпустить
      postmessage($_hwnd, 0x0101,#SHIFT,#lp_SHIFT)      //shift отпустить
      waitms(RND(160,180))


Константы можно взять в этой теме
http://crapware.aidf.org/forum/index.php?topic=5249.msg34058#msg34058
« Last Edit: January 22, 2021, 09:29:13 AM by ya12 »

melkichelik

  • Освоившийся
  • **
  • Posts: 28
    • View Profile
Посылка комбинации: Alt+F5, Shift+F1, Ctrl+ на игрушке не проверял, за не нужностью.
Code: (clickermann) [Select]
     
      postmessage($_hwnd, 0x0104,#ALT,#lpALT)      //Alt нажать
      postmessage($_hwnd, 0x0104,#F5,#lpAF5)      //F5 нажать
      waitms(RND(160,180))
      postmessage($_hwnd, 0x0105,#F5,#lp_AF5)      //F5 отпустить
      postmessage($_hwnd, 0x0101,#ALT,#lp_ALT)      //Alt отпустить
      waitms(RND(160,180))

      postmessage($_hwnd, 0x0100,#SHIFT,#lpSHIFT)      //shift нажать
      postmessage($_hwnd, 0x0100,#F1,#lpF1)             //F1 нажать
      waitms(RND(160,180))
      postmessage($_hwnd, 0x0101,#F1,#lp_F1)           //F1 отпустить
      postmessage($_hwnd, 0x0101,#SHIFT,#lp_SHIFT)      //shift отпустить
      waitms(RND(160,180))


Константы можно взять в этой теме
http://crapware.aidf.org/forum/index.php?topic=5249.msg34058#msg34058
Спасибо, вчера долго пытался найти ответ, для браузера работает, но хотел бы узнать у вас случаем констант для простых букв нету? А то тут только для F1-F12, а CTRL + V нету.

ya12

  • Активный участник
  • ***
  • Posts: 165
    • View Profile
Code: (clickermann) [Select]
      postmessage($_hwnd, 0x0100,#CTRL,#lpCTRL)      //Ctrl нажать
      postmessage($_hwnd, 0x0100,0x56,0x2F0001)      //v нажать
     
      postmessage($_hwnd, 0x0105,0x56,0xC02F0001)      //v отпустить
      postmessage($_hwnd, 0x0101,#CTRL,#lp_CTRL)      //Ctrl отпустить

В проге Microsoft Spy++ 11 можно коды посмотреть:

В разделе SPY выставляешь что смотреть (окна, процессы, потоки). Смотрим процессы. Правой кнопкой мыши выбираешь процесс. Нажимаешь Message, получаешь лог сообщений. В опциях лога выбираешь какие сообщения тебе нужны(клава, мышь и тд). Переходишь в изучаемый процесс. Жмешь клавиши. В логе все сообщения получаемые процессом отражаются. На каждое сообщение можно посмотреть properties.
Для примера. Фильтр сообщений - Клава. Нажал F2.
В логе 2 сообщения:

Нажал F2
(Хендл окна. Сообщение 0100(не системно нажал).  wParam(код F2). lParam(003C0001))

Отпустил F2
(Хендл окна. Сообщение 0101(не системно отпустил).  wParam(код F2). lParam(C03C0001))

melkichelik

  • Освоившийся
  • **
  • Posts: 28
    • View Profile
Code: (clickermann) [Select]
      postmessage($_hwnd, 0x0100,#CTRL,#lpCTRL)      //Ctrl нажать
      postmessage($_hwnd, 0x0100,0x56,0x2F0001)      //v нажать
     
      postmessage($_hwnd, 0x0105,0x56,0xC02F0001)      //v отпустить
      postmessage($_hwnd, 0x0101,#CTRL,#lp_CTRL)      //Ctrl отпустить

В проге Microsoft Spy++ 11 можно коды посмотреть:

В разделе SPY выставляешь что смотреть (окна, процессы, потоки). Смотрим процессы. Правой кнопкой мыши выбираешь процесс. Нажимаешь Message, получаешь лог сообщений. В опциях лога выбираешь какие сообщения тебе нужны(клава, мышь и тд). Переходишь в изучаемый процесс. Жмешь клавиши. В логе все сообщения получаемые процессом отражаются. На каждое сообщение можно посмотреть properties.
Для примера. Фильтр сообщений - Клава. Нажал F2.
В логе 2 сообщения:

Нажал F2
(Хендл окна. Сообщение 0100(не системно нажал).  wParam(код F2). lParam(003C0001))

Отпустил F2
(Хендл окна. Сообщение 0101(не системно отпустил).  wParam(код F2). lParam(C03C0001))
Понятно, спасибо за ответ, это я сообщение видел, думал есть уже готовые данные.
Как я понимаю Microsoft Spy++ 11 это вот эта программа https://github.com/westoncampbell/SpyPlusPlus?
Или это что-то, что идет с Visual Studio?
« Last Edit: January 22, 2021, 02:45:40 PM by melkichelik »

ya12

  • Активный участник
  • ***
  • Posts: 165
    • View Profile
Да. Были бы готовые, в константы бы записал.

ps Все коды перебирать было лень. Народу - кому не надо, а кому надо - защита postmessage режет.
Мне сначала тоже резала, а потом дырочку нашел.
« Last Edit: January 22, 2021, 02:57:37 PM by ya12 »

melkichelik

  • Освоившийся
  • **
  • Posts: 28
    • View Profile
Code: (clickermann) [Select]
      postmessage($_hwnd, 0x0100,#CTRL,#lpCTRL)      //Ctrl нажать
      postmessage($_hwnd, 0x0100,0x56,0x2F0001)      //v нажать
     
      postmessage($_hwnd, 0x0105,0x56,0xC02F0001)      //v отпустить
      postmessage($_hwnd, 0x0101,#CTRL,#lp_CTRL)      //Ctrl отпустить
Ругается на postmessage($_hwnd, 0x0105,0x56,0xC02F0001), ошибка при интерпретации строки, так же когда сам нажимаю там стоит 0x0101 а не 0x0105.
Может я не то, что-то сделал? Да вроде всё верно, скачал Clickermann 4.13, закинул новые const.txt, скопировал, вставил, по идеи должно не то, что работать, но хотя бы ошибку не выдавать.

Так же в postmessage($hwnd, 0x0100,0x56,0x2F0001) записано 0x002F0001 а не 2F0001 или так можно сокращать?
И вместо 0x56 можно же использовать стандартную переменную #V?

В Microsoft Spy++ 11 нажал журнал, выбрал окно Firefox, поставил галку - все окна в системе, во вкладке - сообщения, оставил только - Клавиатуру, переключился на  Firefox, нажал CTRL + V, смотрю логи.

Вот так у меня выглядит CTRL + V, к сожалению не работает и ругается на postmessage($hwnd, 0x0101,0x56,0xC02F0001).
Code: [Select]
      postmessage($_hwnd, 0x0100,0x11,0x001D0001) //WM_KEYDOWN
      postmessage($_hwnd, 0x0100,0x56,0x002F0001) //WM_KEYDOWN
      postmessage($_hwnd, 0x0102,0x16,0x002F0001) //WM_CHAR     
      postmessage($_hwnd, 0x0101,0x56,0xC02F0001) //WM_KEUP
      postmessage($_hwnd, 0x0101,0x11,0xC01D0001) //WM_KEUP

Но даже если в констанды добавит следующие:

Code: [Select]
#lpA1      0x56
#lpA2   0x2F0001
#lpA3    0xC02F0001

И запустить код вида, где $hwnd - это окно браузера:

Code: [Select]
postmessage($hwnd, 0x0100,#CTRL,#lpCTRL)      //Ctrl нажать
postmessage($hwnd, 0x0100,#lpA1,#lpA2)      //v нажать
postmessage($hwnd, 0x0105,#lpA1,#lpA3)      //v отпустить
postmessage($hwnd, 0x0101,#CTRL,#lp_CTRL)      //Ctrl отпустить
То вставляться из буфера ничего не будет, будет писаться V, словно сочетания не видно.

Хотя даже если вот это:
Code: [Select]
      postmessage($_hwnd, 0x0100,#SHIFT,#lpSHIFT)      //shift нажать
      postmessage($_hwnd, 0x0100,#F1,#lpF1)             //F1 нажать
      waitms(RND(160,180))
      postmessage($_hwnd, 0x0101,#F1,#lp_F1)           //F1 отпустить
      postmessage($_hwnd, 0x0101,#SHIFT,#lp_SHIFT)      //shift отпустить
      waitms(RND(160,180))
Заменить вот на это:
Code: [Select]
      postmessage($_hwnd, 0x0100,#SHIFT,#lpSHIFT)      //shift нажать
      postmessage($_hwnd, 0x0100,#F7,#lpF7)             //F7 нажать
      waitms(RND(160,180))
      postmessage($_hwnd, 0x0101,#F7,#lp_F7)           //F7 отпустить
      postmessage($_hwnd, 0x0101,#SHIFT,#lp_SHIFT)      //shift отпустить
      waitms(RND(160,180))
То работать так же не будет...
« Last Edit: January 23, 2021, 05:50:20 AM by melkichelik »

melkichelik

  • Освоившийся
  • **
  • Posts: 28
    • View Profile
Посылка комбинации: Alt+F5, Shift+F1, Ctrl+ на игрушке не проверял, за не нужностью.
Хотя нет, видимо ошибся я, не работает это всё с браузерами...
« Last Edit: January 24, 2021, 11:58:00 AM by melkichelik »

Cleoss

  • Активный участник
  • ***
  • Posts: 260
  • Автоматизируй это!
    • View Profile
Тема интересная, я конечно не спец по месседжам, но может там вейт вставлять мс так в 300 (или рандомно варьировать для антидетекта) между постМесседжами?

Мне сначала тоже резала, а потом дырочку нашел.
Да, а шо за дырочка такая?