Что нового

Диспетчер задач Windows - Процессы - Выбрать столбцы

SharkyEXE

Новичок
Сообщения
134
Репутация
0
Версия AutoIt: 3.3.14.0

Описание:

Всем здравствуйте.

1) Операционная система: Microsoft Windows 7 Professional Service Pack 1 x64
2) Контроль учетных записей: ВЫКЛючен

Пожалуйста, помогите, мне нужно

1) запустить Диспетчер задач Windows

2) найти по названию вкладку Процессы

Что значит "найти по названию вкладку Процессы"?

После запуска Диспетчер задач Windows мы можем находиться на вкладке Пользователи или Быстродействие или любая другая вкладка, кроме Процессы

3) нажать на вкладку Процессы

4) нажать Вид -> Выбрать столбцы...

5) в окне с заголовком Выбор столбцов страницы процессов , в появившемся списке найти по названию строку Путь к образу

6-1) если установлена птичка/галочка на строке Путь к образу : в окне с заголовком Выбор столбцов страницы процессов нажать кнопку Отмена

6-2) если не установлена птичка/галочка на строке Путь к образу :
- поставить птичку\галочку в строке Путь к образу
- в окне с заголовком Выбор столбцов страницы процессов нажать кнопку ОК

7) закрыть окно с заголовком Диспетчер задач Windows

Спасибо.

Примечания:

Отсутствуют
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Немного изменил алгоритм: окно выбора колонок вызывается при отсутствии колонки "Путь к образу".
На Win x64 нужно запускать через AutoIt3_x64.exe
Код:
#include <GuiTab.au3>
#include <GuiHeader.au3>
#include <GuiListView.au3>

; запуск
Run("taskmgr.exe")
$hWnd = WinWaitActive("Диспетчер задач Windows")

; активация вкладки "Процессы"
$hTab = ControlGetHandle($hWnd, "", "SysTabControl321")
_GUICtrlTab_SetCurFocus($hTab, _GUICtrlTab_FindTab($hTab, "Процессы"))

; поиск колонки "Путь к образу"
$hHeader = ControlGetHandle($hWnd, "", "SysHeader321")
For $i = 0 To _GUICtrlHeader_GetItemCount($hHeader) - 1
  If _GUICtrlHeader_GetItemText($hHeader, $i) = "Путь к образу" Then Exit WinClose($hWnd) * 0
Next

; включение отображения колонки
WinMenuSelectItem($hWnd, "", "&Вид", "В&ыбрать столбцы...")
$hDiag = WinWaitActive("Выбор столбцов страницы процессов")
$hLV = ControlGetHandle($hDiag, "", "SysListView321")
_GUICtrlListView_SetItemChecked($hLV, _GUICtrlListView_FindText($hLV, "Путь к образу"))

; закрытие окон
ControlClick($hDiag, "", "Button1")
WinWaitClose($hDiag)
WinClose($hWnd)
 
Автор
S

SharkyEXE

Новичок
Сообщения
134
Репутация
0
Всем здравствуйте.

Пожалуйста, тут вот какая бяка

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

DriveSetLabel ( C:\", "System" )
...

Однако, после отработки скрипта, команды
DriveSetLabel ( C:\", "System" )
...
не выполняются

Почему?

Потому что у меня в Диспетчер задач уже включен столбец Путь к образу

Поэтому, если включен столбец Путь к образу - то происходит выход из скрипта

If _GUICtrlHeader_GetItemText($hHeader, $i) = "Путь к образу" Then Exit WinClose($hWnd) * 0

Пожалуйста, помогите, поправьте код, чтобы и строка

If _GUICtrlHeader_GetItemText($hHeader, $i) = "Путь к образу" Then Exit WinClose($hWnd) * 0

была рабочей, и далее команды выполнялись бы
DriveSetLabel ( C:\", "System" )
...
 
Последнее редактирование:

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
В конце скрипта замените MsgBox() на свой код
Код:
#include <GuiTab.au3>
#include <GuiHeader.au3>
#include <GuiListView.au3>

; запуск
Run("taskmgr.exe")
$hWnd = WinWaitActive("Диспетчер задач Windows")

; активация вкладки "Процессы"
$hTab = ControlGetHandle($hWnd, "", "SysTabControl321")
_GUICtrlTab_SetCurFocus($hTab, _GUICtrlTab_FindTab($hTab, "Процессы"))

; поиск колонки "Путь к образу"
$hHeader = ControlGetHandle($hWnd, "", "SysHeader321")
$iCount = _GUICtrlHeader_GetItemCount($hHeader)
For $i = 0 To $iCount - 1
  If _GUICtrlHeader_GetItemText($hHeader, $i) = "Путь к образу" Then
    WinClose($hWnd)
    ExitLoop
  EndIf
Next

If $i = $iCount Then
  ; включение отображения колонки
  WinMenuSelectItem($hWnd, "", "&Вид", "В&ыбрать столбцы...")
  $hDiag = WinWaitActive("Выбор столбцов страницы процессов")
  $hLV = ControlGetHandle($hDiag, "", "SysListView321")
  _GUICtrlListView_SetItemChecked($hLV, _GUICtrlListView_FindText($hLV, "Путь к образу"))

  ; закрытие окон
  ControlClick($hDiag, "", "Button1")
  WinWaitClose($hDiag)
  WinClose($hWnd)
EndIf

MsgBox(0,'','')
 
Верх