1 место PM+WinApi или управление окнами любых других приложений

а и не создавал темы. И поддерживать никого не собираюсь, ибо :-) жаден и ленив.
Извиняюсь, я позже потом заметил что тема не твоя и думал что исправил своё сообщение, а тут оказывается мой косячок )))
 
  • Спасибо
Реакции: Дармидонт
Отдал свой голос за эту и парочку других тем.
 
Что это значит и как решить эту проблему?
Код:
Развернуть Свернуть Копировать
Тип    Время    Сообщение
    16:04:41    Компиляция кода  Ошибка в действии "CS0122" ""ZennoLab.OwnCode.CommonCode.FindWindow(string, string)" недоступен в силу его уровня защиты". [Строка: 0; Cтолбец: 26]
 
Скорее всего у него стоит приватный модификатор доступа- private, его нужно сменить на public
 
все норм тут. Приложение Bluestack
Скорее всего у него стоит приватный модификатор доступа- private, его нужно сменить на public
Код:
Развернуть Свернуть Копировать
public class CommonCode
    {
        /// <summary>
        /// Lock this object to mark part of code for single thread execution
        /// </summary>
        public static object SyncObject = new object();
 
все норм тут. Приложение Bluestack

Код:
Развернуть Свернуть Копировать
public class CommonCode
    {
        /// <summary>
        /// Lock this object to mark part of code for single thread execution
        /// </summary>
        public static object SyncObject = new object();
На строке где объявляется функция: FindWindow
 
Автор а не подскажешь как послать ctrl + d
по очереди они посылаются вот так,

Код:
Развернуть Свернуть Копировать
CommonCode.SendMessage(hwnd, CommonCode.WM_KEYDOWN, (IntPtr)CommonCode.VK_CONTROL, (IntPtr)(CommonCode.MapVirtualKey(CommonCode.VK_CONTROL, 0)<<16|1));
CommonCode.SendMessage(hwnd, CommonCode.WM_KEYDOWN, (IntPtr)CommonCode.VK_KEY_D, (IntPtr)(CommonCode.MapVirtualKey(CommonCode.VK_KEY_D, 0)<<16|1));
а вот как одновременно

просто это клик по номеронаберателю с автофокусировкой на номере.

а то мышка у меня чё-то через раз нажимается
 
Я конечно решил вопрос через keybd_event

Код:
Развернуть Свернуть Копировать
SetForegroundWindow(hWnd);
            keybd_event(VK_CONTROL,0,0,0);
            keybd_event (0x44, 0, 0, 0 ); //Send the D key (44 is "D")
            keybd_event (0x44, 0, KEYEVENTF_KEYUP, 0);
            keybd_event (VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);// 'Left Control Up

но он работает только при активном окне, а вот как послать комбинацию, используя sendmessage?
 
b522d366841e4f60aa4607109e18cd23.png


Вот с таким столкнулся, это на этапе "нажать ОК". У кого-нибудь было? До этого момента всё шло по плану.
 
Автор а не подскажешь как послать ctrl + d
по очереди они посылаются вот так,

Код:
Развернуть Свернуть Копировать
CommonCode.SendMessage(hwnd, CommonCode.WM_KEYDOWN, (IntPtr)CommonCode.VK_CONTROL, (IntPtr)(CommonCode.MapVirtualKey(CommonCode.VK_CONTROL, 0)<<16|1));
CommonCode.SendMessage(hwnd, CommonCode.WM_KEYDOWN, (IntPtr)CommonCode.VK_KEY_D, (IntPtr)(CommonCode.MapVirtualKey(CommonCode.VK_KEY_D, 0)<<16|1));
а вот как одновременно

просто это клик по номеронаберателю с автофокусировкой на номере.

а то мышка у меня чё-то через раз нажимается
Для этого нужно в Spy++ посмотреть как выглядят сообщения в момент нажатия комбинации клавиши и от этого уже танцевать, если сможете сделать скрин этих сообщений из spy++ я вам подкину функцию =)
 
b522d366841e4f60aa4607109e18cd23.png


Вот с таким столкнулся, это на этапе "нажать ОК". У кого-нибудь было? До этого момента всё шло по плану.
Это значит такого окна не нашел, нужно по другим критериям искать, либо просто обнови список окон в spy++
 
  • Спасибо
Реакции: Sanekk
Для этого нужно в Spy++ посмотреть как выглядят сообщения в момент нажатия комбинации клавиши и от этого уже танцевать, если сможете сделать скрин этих сообщений из spy++ я вам подкину функцию =)

-Ul1M4-9QQM0lpKXOqXantU1Cz6toc8oBSUuQ9lcnOUc9VwT3B4vYaad6QUPyIOax3Xwv2GYo2S3KU7Z5qZkvA%3D%3D


заранее спасибо
 
статья натолкнула на новые идеи и на пути развития,автору+ жаль что проголосовать не успел
 
Кто-нить пробовал приручить меню Skype?
 

Вложения

  • 1.jpg
    1.jpg
    15,3 KB · Просмотры: 610
по скайпу в прошлом конкурсе была хорошая статья с удобной либой для работы http://zennolab.com/discussion/threads/zennoposter-i-skype-desktop-versija.23980/
Спасибо конечно, но разобраться надо, так как уже столкнулся с тем же, но при попытке обуздать другую программу. Как же приручить это системное меню.
 
Автор однозначно красавчик.Но это не метод использования зеннопостера.

Давайте еще задачи вешать на зенно , например дамп mysql по часам. Зачем нам cron ?
 
по скайпу в прошлом конкурсе была хорошая статья с удобной либой для работы http://zennolab.com/discussion/threads/zennoposter-i-skype-desktop-versija.23980/
Только она во первых исключительно для скайпа, в отличии от этой статьи где автор показал как работать с любым десктопным приложением.
А во вторых по той статье ни хрена не работает:(
 
Вот как бы ещё брать ответы показал бы.
И как колёсиком мышки крутить. Мне на другом приложении нужно. (ДругВокруг).
 
Вот как бы ещё брать ответы показал бы.
И как колёсиком мышки крутить. Мне на другом приложении нужно. (ДругВокруг).
Для прокрутки колесиком мыши есть сообщение WM_MOUSEWHEEL, его так же хорошо видно в SPY++
Для ДругВокру бот я давным давно делал и там оно работает отлично:
 
  • Спасибо
Реакции: Naemnick
WM_MOUSEWHEEL Я понял что это но знаний не хватает за пользовать. Вот и попросил пример кода.
В рамках проекта кликать то что надо я написал и отлично работает. За что благодарность большая.

Вот как бы ещё брать ответы или парсить строчки. тоже не хватает знаний.
В рамках проекта по VIBER всё это тоже нужно.
 
WM_MOUSEWHEEL Я понял что это но знаний не хватает за пользовать. Вот и попросил пример кода.
В рамках проекта кликать то что надо я написал и отлично работает. За что благодарность большая.

Вот как бы ещё брать ответы или парсить строчки. тоже не хватает знаний.
В рамках проекта по VIBER всё это тоже нужно.
Из самых просых способов это инжектить нажатие кнопки TAB - выделит нужное сообщение и потом инжектить отправку Ctrl+C и вуаля в буфере обмена весь текст)
 
Интересно, а сможет ли эта связка работать с приложениями запущенными на серваке? Сейчас используется AutoIt и MouseRobot и когда rdp подключения активно - все работает. Но когда нет подкл. или оно свернуто, у этих программ возникают проблемы с активацией(выделением) конкретного окна. Никто не знает как поведет себя в такой ситуации этот способ?
 
Интересно, а сможет ли эта связка работать с приложениями запущенными на серваке? Сейчас используется AutoIt и MouseRobot и когда rdp подключения активно - все работает. Но когда нет подкл. или оно свернуто, у этих программ возникают проблемы с активацией(выделением) конкретного окна. Никто не знает как поведет себя в такой ситуации этот способ?
Как он поведет зависит полностью от вас) Если вы прошлете все сообщения с WM_MOUSEACTIVATE и WM_MOUSEMOVE , то все будет без проблем работать в свернутом состоянии
 
  • Спасибо
Реакции: durovino943 и Dmitry Rudin
Как он поведет зависит полностью от вас) Если вы прошлете все сообщения с WM_MOUSEACTIVATE и WM_MOUSEMOVE , то все будет без проблем работать в свернутом состоянии
Спасибо за быстрый ответ) сейчас буду пробовать..
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)