Author Topic: Узнать PID окна  (Read 1649 times)

0 Members and 1 Guest are viewing this topic.

iggi

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

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Узнать PID окна
« Reply #1 on: October 11, 2018, 07:26:12 AM »
Получаем PID по HWNDу окна
Code: (clickermann) [Select]
$pid = HGETPID(12345)

iggi

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
Re: Узнать PID окна
« Reply #2 on: October 11, 2018, 03:56:44 PM »
Спасибо!

iggi

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
Re: Узнать PID окна
« Reply #3 on: October 11, 2018, 07:31:29 PM »
Но задуманное это выполнить не помогло.
Во второй строке $pid не интерпретируется как число и окно не закрывается.
Кстати здесь на форуме $pid во второй строке подсвечивается синим, а в кликермане нет.
Code: (clickermann) [Select]
$pid=HGETPID(WNDFIND("NoxPlayer3")) //определение PID окна c заголовком NoxPlayer3 и занесение значения в $pid
EXECUTE("TASKKILL","/F /PID $pid ") //попытка завершить процесс
HALT



dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Узнать PID окна
« Reply #4 on: October 11, 2018, 07:53:59 PM »
правильно:
Code: (clickermann) [Select]
EXECUTE("TASKKILL",STRCONCAT("/F /PID ", $pid ))

iggi

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
Re: Узнать PID окна
« Reply #5 on: October 11, 2018, 10:42:25 PM »
правильно:
Code: (clickermann) [Select]
EXECUTE("TASKKILL",STRCONCAT("/F /PID ", $pid ))
Да, так работает, спасибо.

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

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

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Узнать PID окна
« Reply #6 on: October 12, 2018, 06:58:11 AM »
Можно пару примеров?

Например через SENDMESSAGE. Закрывает окно естественным образом, как если бы был нажат крестик. Но окно может не поддерживать такое.
Code: (clickermann) [Select]
SENDMESSAGE(WNDFIND("NoxPlayer3",0),0x0010,0,0)
HALT
« Last Edit: October 12, 2018, 06:59:46 AM by Oraven »