Автор Тема: Поиск запущенного окна/процесса по расположению  (Прочитано 242 раз)

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

Оффлайн rybik [?]

  • Новичок
  • *
  • Сообщений: 52
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Необходимо найти правильный процесс или окно оринтируясь на расположение файла. Например:

C:\Program Files (x86)\folder1\1.exe
C:\Program Files (x86)\folder2\1.exe
C:\Program Files (x86)\folder3\1.exe
C:\Program Files (x86)\folder4\1.exe
C:\Program Files (x86)\folder5\1.exe

То есть название процесса будет одинаковым, 1.exe и поэтому нужно определить из какого места он запущен.

Русское сообщество AutoIt


Помечен как лучший ответ пользователем rybik Отправлен Июнь 09, 2018, 22:43:07

Онлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 398
  • Репутация: 92
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Код: AutoIt [Выделить]
#include <WinAPIProc.au3>
#include <ProcessConstants.au3>
#include <Array.au3>

Local $aProcList = ProcessList("1.exe")
If @error Then Exit -1

_ArrayColInsert($aProcList, 2)
For $i = 1 To $aProcList[0][0]
    $aProcList[0][1] = _WinAPI_OpenProcess(BitOR($PROCESS_QUERY_LIMITED_INFORMATION, $PROCESS_VM_READ), 0, $aProcList[$i][1])
    $aProcList[$i][2] = _WinAPI_GetModuleFileNameEx($aProcList[0][1])
    _WinAPI_CloseHandle($aProcList[0][1])
Next
$aProcList[0][1] = Null
_ArrayDisplay($aProcList)
 

« Последнее редактирование: Июнь 09, 2018, 21:21:42 от Tempo »

Оффлайн rybik [?]

  • Новичок
  • *
  • Сообщений: 52

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Код: AutoIt [Выделить]
#include <WinAPIProc.au3>
#include <ProcessConstants.au3>
#include <Array.au3>

Local $aProcList = ProcessList("1.exe")
If @error Then Exit -1

_ArrayColInsert($aProcList, 2)
For $i = 1 To $aProcList[0][0]
    $aProcList[0][1] = _WinAPI_OpenProcess(BitOR($PROCESS_QUERY_LIMITED_INFORMATION, $PROCESS_VM_READ), 0, $aProcList[$i][1])
    $aProcList[$i][2] = _WinAPI_GetModuleFileNameEx($aProcList[0][1])
    _WinAPI_CloseHandle($aProcList[0][1])
Next
$aProcList[0][1] = Null
_ArrayDisplay($aProcList)
 


Все работает, единственное надо добавить #RequireAdmin. Если файл был запущен от администратора.

Русское сообщество AutoIt

Re: Поиск запущенного окна/процесса по расположению
« Ответ #2 Отправлен: Июнь 09, 2018, 22:42:57 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
0 Ответов
6256 Просмотров
Последний ответ Декабрь 13, 2009, 01:29:04
от bic
2 Ответов
6215 Просмотров
Последний ответ Март 30, 2011, 12:13:09
от joiner
6 Ответов
2910 Просмотров
Последний ответ Август 26, 2011, 01:09:46
от madmasles
4 Ответов
5694 Просмотров
Последний ответ Август 30, 2011, 19:37:57
от axlwor
22 Ответов
10742 Просмотров
Последний ответ Декабрь 16, 2013, 07:26:17
от BoaConstrictor-FENIX
5 Ответов
4000 Просмотров
Последний ответ Май 19, 2012, 23:06:52
от sngr
5 Ответов
3178 Просмотров
Последний ответ Июнь 14, 2013, 14:18:13
от Garrett
0 Ответов
1431 Просмотров
Последний ответ Июнь 14, 2013, 12:52:35
от madmasles
0 Ответов
608 Просмотров
Последний ответ Февраль 18, 2016, 08:30:08
от sokolovska
8 Ответов
3318 Просмотров
Последний ответ Июнь 10, 2016, 06:38:18
от Grx-Lin