Author Topic: Не перетаскивается панель "Удаленный рабочий стол Chrome"  (Read 9177 times)

0 Members and 1 Guest are viewing this topic.

Evgenij_M

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Здравствуйте все  ;)

Кто может подсказать способ решения вот какой проблемы?..
Пишу первый свой скрипт.
Кроме всего прочего, он должен бы контролировать использование удаленного доступа от гугловского "Удаленный рабочий стол Chrome" на стороне компьютера, К КОТОРОМУ ОСУЩЕСТВЛЯЕТСЯ ДОСТУП.
Дело в том, что пользователь, который подключается к компу, забывает от него отключиться после завершения работы.

Но, я споткнулся о то, что, прекрасно перетаскивающая всё остальное, комбинация команд

LDOWN(35, 35)
WAIT(1)
LUP(100, 100)

ни за что не желает перетаскивать панельку контроля/закрытия этого самого удаленного хромовского доступа  :o

Что можно сделать?.. Куда искать?..
(в любом случае - заранее всем благодарен  :) )
« Last Edit: June 30, 2017, 04:36:39 PM by Evgenij_M »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Возможно нужно не резко дергать мышь а более плавно перемещать курсор по точкам.
Воспользуйся скриптом плавного перемещения.
Code: (clickermann) [Select]
// подпрограмма обязательно выше вызова
SUB(mouse_move,$MOVE_END_X,$MOVE_END_Y)
   $MOVE_SPEED = 3  // множитель скорости
   
   $MOVE_Start_X = $_xmouse
   $MOVE_Start_Y = $_ymouse
   $MOVE_X = $MOVE_Start_X
   $MOVE_Y = $MOVE_Start_Y
   
   $dist = DIST($MOVE_END_X,$MOVE_END_Y,$MOVE_Start_X,$MOVE_Start_Y)
   
   $MOVE_SPEEDVAR = INT((SQRT($dist))/$MOVE_SPEED)
   
   IF($MOVE_SPEEDVAR < 1)
      $MOVE_SPEEDVAR = 1
   END_IF
   
   $MOVE_step=($dist-1)/$MOVE_SPEEDVAR
   $MOVE_X_step = ($MOVE_END_X-$MOVE_Start_X)/$MOVE_step
   $MOVE_Y_step = ($MOVE_END_Y-$MOVE_Start_Y)/$MOVE_step

   FOR($MOVE_i=0, $MOVE_i<INT($MOVE_step))
      $MOVE_X = $MOVE_X + $MOVE_X_step
      $MOVE_Y = $MOVE_Y + $MOVE_Y_step
      MOVE(ROUND($MOVE_X,0), ROUND($MOVE_Y,0))
      WAITMS(1)
   END_CYC
   
   MOVE($MOVE_END_X, $MOVE_END_Y) //Передвинуть окончательно в заданную точку
END_SUB


LDOWN(35,35)
mouse_move(100,100) // вызов перемещения от текущей координаты в указанную
LUP(100,100)
WAITMS(500)

HALT // стоп


Evgenij_M

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Ни-фи-га  :(

... даже с увеличением паузы в цикле в 100 раз  :(

И xStarter тоже не может двигать эту панель  :( ... По ходу, тут "собака" глубоко в "Удаленном рабочем столе..." зарыта  :(
« Last Edit: June 30, 2017, 07:00:43 PM by Evgenij_M »

Evgenij_M

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Уважаемые,.. а может существует способ осуществить "нажатие" кнопки "Закрыть доступ" БЕЗ КЛИКА МЫШКОЙ по ней?..

После подключения, удаленный пользователь перетаскивает панель практически полностью за край экрана, чтобы она не мешала работать. Кнопка закрытия доступа оказывается не видна (за пределами экрана).

Может кто-нибудь посоветует (без кода, простым человеческим языком) логику, порядок выполнения операций, которые позволили бы выполнить "закрытие доступа" без клика по кнопке мышкой? Может быть можно как-нибудь узнать HWND и PID кнопки в условиях, когда мышью управляет удаленный пользователь и кликеру двигать её никак не желательно?..  :(

Evgenij_M

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Блин, мужики, да что это за панель такая?!.  :o

Нифига её не берёт: ни клики, ни сообщения... Это что ж - шансов управлять ею с помощью кликера у меня нет, что ли?..  :(

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
А функцией WNDPOS твою панель можно двигать?
Code: (clickermann) [Select]
WNDPOS(12345,10,10) // 12345 - HWND 10,10 - координатаЛибо по заголовку окна.
Code: (clickermann) [Select]
WNDPOS(WNDFIND("Заголовок окна", 0),10,10)
Можно попробовать кликать по кнопкам в режиме привязки.
Code: (clickermann) [Select]
HSET(WNDFIND("Заголовок окна", 0),1) // привязываемся к окну по заголовку
LCLICK(10,10)

Вообще я не знаю что там за "Удаленный рабочий стол Chrome"
Можно ведь использовать TeamViewer или Ammyy Admin
« Last Edit: July 02, 2017, 09:55:50 AM by Oraven »

Evgenij_M

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
По HWND воздействовать на панель не удаётся: ни кликнуть по кнопке; ни передвинуть  :(

По заголовку - результат тот же.

В режиме привязки - пока на пробовал, потому как не представляю себе, как смогу включить привязку автоматически в условиях управления курсором удалённым пользователем.

А "Удаленный рабочий стол Chrome" - это официальное приложение от Гугла, которое очень удобно позволяет мне управлять из любого моего любым моим устройством, привязанным к моему гугл-аккаунту. Гуглу я как-то легче доверяю, чем другим разработчикам ПО удалённого доступа  ::)

И остаётся тогда такой вопрос: отключение ПРОЦЕССА этого приложения - это будет корректным, или НЕ корректным способом разрыва связи между устройствами?..

Evgenij_M

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Тогда, у меня вот какая идея:..

когда на управляемом компе первый кликер определяет, что курсор не двигается уже 10 минут, он создаёт пустой текстовой файл с таким же именем ("10 минут")... и помещает его в папку Гугл-драйва компа.

Гугл-драйв синхронизирует внесённое изменение в этой же папке, но уже УПРАВЛЯЮЩЕГО компа,.. и второй кликер (на управляющем компе) во время очередной проверки папки замечает появление файла с именем "10 минут".

Заметив появление этого файла, второй кликер выводит на экран управляющего компа окно с сообщением, мол, "Что за дела?.. А разъединять Удалённый Доступ кто будет - Вася Пупкин, что ли?"  ;D ... и записывает в этот текстовой файл текст-сигнал, что послание управляемого компа принято.

В случае, если пользователь, в ответ на напоминание, разрывает соединение, первый кликер (на управляемом компе) удаляет текстовой файл... и всё дальше идёт своим чередом.
А если же разрыва соединения не производится, то, обмениваясь сообщениями через файл, оба кликера могут "усиливать своё давление на нерадивого пользователя",.. ориентируясь ситуации  8)

Что скажете?..  :)
Может чего лучше подскажете?..

Qwerry

  • Активный участник
  • ***
  • Posts: 117
    • View Profile
Загляну-то тоже к Вам в гости.

Думаю, лишь вы можете проверить насколько корректным будет отключение ПРОЦЕССА  приложения  "Удаленный рабочий стол Chrome"   (предположим через запуск Диспетчера Задач, причем опробовать стоит как через "снять задачу", так и "завершение процесса"). Может быть защита от закрытия этой программы удалённо продумана до мелочей?  Ну или выяснять это на гугловском форуме надо.

Кроме того, можно посмотреть, не проще ли заставить кликер управляЕМОГО компа отключать этот процесс (допустим не автоматически, а после того, как пользователь не отозвался на напоминалку, а управляющий комп выяснил это и подтвердил команду закрыть). На а чтобы не бросать работающий кликер на оставленном без присмотра устройстве (управляемом), кликеру можно потом выключаться самому (есть же команда HALT(1)  - Стоп и закрыть кликер).

[spoiler=по поводу доверять)] Как показала практика, Google тот ещё Большой брат :D Даже если пользователь старается не складировать все свои данные, один раз где-то на его сервисах засветившийся телефон или почта быстро оказываются связаны с основным аккаунтом, и начинают неожиданно всплывать в вариантах автозаполнения с любого устройства (в общем, всё для нашего удобства)))
А контекстная реклама (опять же как показала практика) иногда задается просто координатами, где этот андроид побывать успел. К примеру, в ночь музеев  в печатном списке того, куда можно сходить, увидели, что синагога приглашает на экскурсию. Т.к. проходили мимо - вздумалось зайти. Повторюсь, вся инфа была в печатном виде,  ничего не гуглили и маршрут по gps не прокладывали. Так все равно следующие 2 недели гугл активно предлагал выучить иврит  ;D 

Единственное, искренне сомневаюсь, что при возможности доступа ко всей этой информации, любая другая организация сдержалась и не стала бы всё собирать/анализировать. В любом случае, по крайней мере им мы пользуемся и сильного вреда от слежки вроде нет, так что смысла менять (вернее "заводить" еще и второго такого же Большого брата) не вижу. [/spoiler]

Если же брать вариант с напоминалками - а вы не усложняете задачу?  Кроме того, а принципиально, чтоб напоминалка исходила от управляЮЩего компа? + раз уж решили давать кликеру права создания/редактирования в папке Гугл-драйва, то почему бы не создать файл, где каждая строчка будет через 0/1 отвечать за что-то, или же файл-отчет_о_работе. Если уж нужна "защита от дурака", то допустим с мудреным названием и не совсем понятным для пользователя содержанием, к примеру, хранящим в строчках лишь нули и единицы.

 В общем, расскажите, что (и почему) при выполнении этой задачи важнее всего. А там уже и лучшие способы решения подбирать легче будет)

Evgenij_M

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Спасибо всем за участие  ::)

Если подробнее, то ситуация следующая.
Моя супруга - инженер-строитель. Конкретно - сметчик.
Используя "Удаленный рабочий стол Chrome", она спокойно (без упрёков, что бесплатно  ;D ) работает на двух компах (рабочем и домашнем), как на одном. Установленный на компы десктопный вариант Гугл-диска позволяет использовать его, как обычную папку, доступную на обоих компах одновременно (как майкрософтовский OneDrive. Но, OneDrive - привязан к моему аккаунту... и поэтому не доступен супруге на работе)

Но, как и полагается женщине, моя супруга не в силах себя заставить вручную разорвать соединение,.. если не известно, появится необходимость снова подключаться через 5 минут  ;D или нет... и потому бросает Удалёнку неотключенной на любое неопределённое время  :) . А это - 24 мегабита в секунду трафика из 100 доступных по нашему тарифному плану  ??? (между прочим)

Учитывая важность работы моей жены с цифрами... и ЧУЖИМИ,.. очень большими деньгами, я не возьмусь делать скрипт, перехватывающий управление мышью на её рабочем компе для автоматического отключения Удалёнки. Максимум, на что я решаюсь, это вывести, поверх всех окон, окно с напоминанием.

А обмен между двумя Кликерами информацией по Гугл-диску в фоновом режиме мне кажется делом вполне безопасным.

Что скажете?..  :)

Qwerry

  • Активный участник
  • ***
  • Posts: 117
    • View Profile
Хмм, наверное у меня всё-таки осталась пара вопросов:

1.А просто попросить ее поиграться с настройками виндовс, чтобы система уходила в спящий режим, гибернацию или попросту выходила в "Сменить пользователя"  (и все отключит, и очень быстро обратно загрузится) при 10 минутном простое - не думали?
Или то, что она отошла от компа(не движется курсор), еще не значит, что комп не выполняет какие-то вычисления и т.д...

2. Она потенциально согласна, что у неё на компе работать будет кликер? Если да, то самое простое ему-же и поручить кидать напоминалку. Вот тут он ни мышку, ни клавиатуру отнимать пытаться не будет, просто кинет сообщение (то, как он перед этим будет проверять, а не отключен ли уже удаленный доступ - решите сами).
[spoiler=код]
Code: (clickermann) [Select]
SUB(напоминалка, $par1,$par2)
   $Time= $par2*60
   $A_x=$_xmouse
   $A_y=$_ymouse
   $check=0
   while($check<$par1)
      If (($A_x=$_xmouse)&($A_y=$_ymouse))
         INC($check)
      Else
         $check=0
         $A_x=$_xmouse
         $A_y=$_ymouse
      End_if
      wait($Time/$par1)
      Print($check)
   End_cyc
////////////////////////////////////////////////////////////////////////////////////////////////////
   $dialog = DIALOGBOX("Родная, а может отключить Удаленный доступ, раз уж пока что он тебе не нужен?", 4, 0)       
    wait(2)
/////////////////////////////////////////////////////////////////////////////////////////////////////   
END_SUB

напоминалка(3, 0.1)    /// 0.1 - время проверки в минутах (тестовое 6 секунд), 3 - количество сверок положения курсора, которые провести надо за это время.
halt
[/spoiler]

3. Если дело в некотором недоверии к программе, то (может быть я плохо  разбираюсь) точно ли есть принципиальная разница между простым запуском на том компе даже и без скрипта и запуском кликера с написанным ВАМИ скриптом, двигающим мышью или создающим/запускающим блокнот? Ведь какого-то отдельного наделения Кликерманна подобными правами на мышь/клаву - нет (он по умолчанию имеет доступ к клавиатуре и мыши, и собственно на анализе положения курсора  и построена программа). И причиной случайных кликов может быть лишь недоработка скрипта, не более.

4. Другое дело, если наш удаленный пользователь не сильно в курсе происходящего- там да, её кликер должен маскировался под вас.
[spoiler] Ох и ругаться она будет за такой гиперконтроль и нарушение ее границ, когда выяснит!! подобное очень попортит отношения, пара раз - и до развода недалеко [/spoiler] Но можно заменить в конце подпрограммы диалогбокс на открытие блокнота и набор текста туда.
[spoiler=тыц]
Code: (clickermann) [Select]
If( WNDFIND("Безымянный", 0)=0)
EXECUTE("notepad")
end_if
WNDBUMP (WNDFIND("Безымянный"))
   WNDPOS(WNDFIND("Безымянный", 0),200,200)  
$mess= "Что за дела?.. А разъединять Удалённый Доступ кто будет - Вася Пупкин, что ли?"
   KEYSTRING($mess) //следите, чтоб в редакторе кликерманна на момент исполнения проги язык был Русским!
KEYPRESS(#ENTER)
[/spoiler]
или
[spoiler=клик]
Code: (clickermann) [Select]
If( WNDFIND("Безымянный", 0)=0)
EXECUTE("notepad")
end_if
WNDBUMP (WNDFIND("Безымянный"))
   WNDPOS(WNDFIND("Безымянный", 0),200,200)  
$mess= "Что за дела?.. А разъединять Удалённый Доступ кто будет - Вася Пупкин, что ли?"
TOCLIP($mess)
KEYDOWN(#CTRL)   
waitms(20)
KEYPRESS(#V)
waitms(20)
KEYUP(#CTRL)
KEYPRESS(#ENTER)
[/spoiler]

5. В целом, возможно же и запустить Кликер лишь на вашем компе, чтоб он анализировал экран удаленного компа (сделать можно по-разному, просто совпадение картинки, или поиск курсора - вероятно всех его разновидностей- и анализ его координат). Достаточно будет воспользоваться привязкой, чтобы можно было задвинуть этот экран куда подальше и самому спокойно работать.

6. Тот вариант с 2 кликерами тоже вполне возможен, но я всё еще думаю, что с этим вы "перемудрили")
« Last Edit: July 05, 2017, 07:27:56 PM by Qwerry »

Evgenij_M

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Если Вы позволите, то я буду уточнять подробности в стиле "неспешной беседы для удовольствия"  :D

Ещё несколько уточнений по ситуации:..
По пункту первому.
Итак, супруга находится в офисе... за рабочим компом.
Дома... её комп включен постоянно. Все гипернации и спящие режимы отключены, ибо замечено, что выход из них НЕ ВСЕГДА происходит безошибочно  :( (что недопустимо при работе сметной программы).
Включены гашение экрана и остановка жесткого диска,.. а за наличием интернета следит скрипт Clickermann-а, на который мне и вздумалось повесить "дополнительную ответственность" ( ;D ) за отключение неиспользуемой Удалёнки.

Модуль контроля за использованием Удалёнки действительно следит за неподвижностью курсора домашнего компа. Но, его неподвижность означает не то, что жена отошла от рабочего компа в офисе, а то, что она "выскочила" из окна Удалёнки... и шпарит уже что-то по работе в одном из десятка других, открытых у неё там, окон, наверняка уже даже забыв, что Удалёнка вообще существует во Вселенной  :o

(продолжение по другим пунктам - следует...)

Evgenij_M

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Исходя из уточнения по первому пункту, второе будет выглядеть так:..

Скрипт НА РАБОЧЕМ компе мне как-то не очень уютно использовать для определения, эксплуатируется сейчас Удалёнка, или нет.
Я стараюсь нагрузить его по-минимуму: проверил наличие сигнала от скрипта с домашнего компа - и вывел сообщение. Всё (по возможности  :o )

(третий пункт - далее...)

Evgenij_M

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
По третьему пункту,.. мне кажется, что, когда у тебя "дурдом" на работе, спешка, галдёж, постоянные звонки... и все от тебя что-то требуют,.. и это - при работе с цифрами... ЧУЖИХ денег  :o , то помехи со стороны скрипта, производства твоего любимого мужа, должны быть минимальными... Я лично очень (!)... очень хотел бы сделать так, чтобы отключение Удалёнки происходило совершенно незаметно  :-[

Незаметно - это, пока-что:
1) "убить" процесс на стороне домашнего компа. Но, пока не известно, корректно ли завершает программу такой способ;
2) незаметно закрыть "Удалённый рабочий стол..." на стороне рабочего компа, послав сообщение окну. Ну, тут мне понадобится помощь, ибо я абсолютный новичок в таком деле;
3) и, наконец, "убить" процесс "Удалённого рабочего стола..." на стороне рабочего компа. Проблема корректности - та же  :o

Ну, типа, вот как видится проблема мне... Надо что-то из этого выбрать (если ещё кто-нибудь чего-то не посоветует)  ???
Если кто подскажет, где я тут ошибаюсь - я буду очень благодарен  :)
« Last Edit: July 05, 2017, 10:32:45 PM by Evgenij_M »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
В чем проблема, прибей.
Code: (clickermann) [Select]
EXECUTE("TASKKILL","/F /IM chrome.exe") // убить процесс
HALT

После этого браузер запустится с сообщением что в прошлый раз он был завершен некорректно. Будет доступна кнопка восстановить предыдущую сессию.