Автор Тема: Узнать PID окна  (Прочитано 102 раз)

0 Пользователей и 1 Гость просматривают эту тему.

iggi

  • Зашел в гости
  • *
  • Сообщений: 4
    • Просмотр профиля
Узнать PID окна
« : Октябрь 11, 2018, 05:51:18 am »
Можно ли с помощью clickermann как то узнать PID окна?
Для чего мне это нужно:
имеется три окна нокса, в скрипте кликермана надо закрыть только одно из них.
Если использовать для этого TASKKILL, то надо указывать PID, в конструкции типа
EXECUTE("TASKKILL","/F /PID код_процесса")

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3196
  • Котэ
    • Просмотр профиля
Re: Узнать PID окна
« Ответ #1 : Октябрь 11, 2018, 07:26:12 am »
Получаем PID по HWNDу окна
Код: Clickermann
  1. $pid = HGETPID(12345)

iggi

  • Зашел в гости
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Узнать PID окна
« Ответ #2 : Октябрь 11, 2018, 03:56:44 pm »
Спасибо!

iggi

  • Зашел в гости
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Узнать PID окна
« Ответ #3 : Октябрь 11, 2018, 07:31:29 pm »
Но задуманное это выполнить не помогло.
Во второй строке $pid не интерпретируется как число и окно не закрывается.
Кстати здесь на форуме $pid во второй строке подсвечивается синим, а в кликермане нет.
Код: Clickermann
  1. $pid=HGETPID(WNDFIND("NoxPlayer3")) //определение PID окна c заголовком NoxPlayer3 и занесение значения в $pid
  2. EXECUTE("TASKKILL","/F /PID $pid ") //попытка завершить процесс
  3. HALT
  4.  



dramster

  • Герой форума
  • *****
  • Сообщений: 727
    • Просмотр профиля
Re: Узнать PID окна
« Ответ #4 : Октябрь 11, 2018, 07:53:59 pm »
правильно:
Код: Clickermann
  1. EXECUTE("TASKKILL",STRCONCAT("/F /PID ", $pid ))

kiril

  • Герой форума
  • *****
  • Сообщений: 1201
    • Просмотр профиля
Re: Узнать PID окна
« Ответ #5 : Октябрь 11, 2018, 07:55:47 pm »
Соблюдайте самый элементарный синтаксис, не надо так извращённо  насиловать интерпритатор кода.
Кроме того, задуманное вами не самое лучшее решение , для закрытия окна есть много простых и естественных способов.

iggi

  • Зашел в гости
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Узнать PID окна
« Ответ #6 : Октябрь 11, 2018, 10:42:25 pm »
правильно:
Код: Clickermann
  1. EXECUTE("TASKKILL",STRCONCAT("/F /PID ", $pid ))
Да, так работает, спасибо.

Соблюдайте самый элементарный синтаксис, не надо так извращённо  насиловать интерпритатор кода.
Я неопытен в этих делах, и совсем не программист. Сидел с кликерманом 4.11 и пытался по справке писать скрипты.
Когда здесь мне сказали о HGETPID, только тогда увидел что в кликермане 4.13 появилась эта команда и несколько новых шаблонов.

Кроме того, задуманное вами не самое лучшее решение , для закрытия окна есть много простых и естественных способов.
Можно пару примеров?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3196
  • Котэ
    • Просмотр профиля
Re: Узнать PID окна
« Ответ #7 : Октябрь 12, 2018, 06:58:11 am »
Можно пару примеров?

Например через SENDMESSAGE. Закрывает окно естественным образом, как если бы был нажат крестик. Но окно может не поддерживать такое.
Код: Clickermann
  1. SENDMESSAGE(WNDFIND("NoxPlayer3",0),0x0010,0,0)
  2. HALT
« Последнее редактирование: Октябрь 12, 2018, 06:59:46 am от Oraven »