Как получить PID процесса? Windows [требует правки]

365
13 января 2017, 08:22

Один человек навёл меня на PID. Это поможет модифицировать мою программу. Мне нужно узнать, как получить PID у процессов Windows, затем, как с помощью PID переключаться между окнами и посылать нажатия клавиш.

Answer 1

Получить список процессов несложно, это можно сделать, например, с использованием утилиты tasklist, входящей в Windows (на Linux есть своя подобная):

public static void main(String[] args) {
  String line;
  try {
    Process p = Runtime.getRuntime().exec(System.getenv("windir")  
                                          + "\\system32\\tasklist.exe");
    BufferedReader input =  new BufferedReader(
                              new InputStreamReader(p.getInputStream()));
    while ((line = input.readLine()) != null) System.out.println(line);
    input.close();
  } catch (Exception x) { x.printStackTrace(); }
}

Подобным же образом можно запустить любую другую программу. А вот управлять окнами других, уже работающих, приложений (переключать фокус, открывать/закрывать) из программы на Java не так просто. Это можно делать с помощью стандартного JNI, или более продвинутого JNA, но в двух словах описать процесс сложно. Читайте соотв. документацию. Добавлю, что на мой взгляд, это задача не для начинающего.

READ ALSO
Spring Boot: Выбор шаблонизатора [требует правки]

Spring Boot: Выбор шаблонизатора [требует правки]

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

454
Intellij IDEA 2016.2 как ускорить компиляцию?

Intellij IDEA 2016.2 как ускорить компиляцию?

Столкнулся с такой проблемой, если подключен LTE модем, то проект компилируется около 2 с половиной минуты, а когда отключен, то 4-6 секундыМожно...

586
Как установить шапку группы через VK API?

Как установить шапку группы через VK API?

Для начала вот, что такое шапка группы: В документации API не сказано абсолютно ничего про загрузкуВылазки через неофициальные клиенты больше...

680
Проблемы с методом File.isDirectory()

Проблемы с методом File.isDirectory()

Проблема заключается в том, что в папке есть файлы со следующим названием

275