Add(MainForm,2953706,168,91)
{
Width=685
Height=472
Caption="1859"
link(onCreate,1693625:doFind,[])
}
Add(WinEnum,1693625,238,98)
{
link(onFindWindow,12898770:doEnumChildWindows,[(282,104)(282,156)(185,156)(185,209)])
link(Caption,1366170:Text,[])
}
Add(WinEnum,12898770,231,182)
{
Point(doEnumChildWindows)
Point(onEnumChildWindows)
Point(ParentHandle)
link(onEnumChildWindows,16531181:doStr,[])
link(ParentHandle,1693625:Handle,[])
}
Add(VisualStrings,1366170,238,49)
{
Lines=#23:Диспетчер задач Windows|
Width=144
}
Add(SendMessage,15421399,357,511)
{
Message=9
LParam=1
Point(Message)
link(onSend,9279906:doValue,[])
link(Handle,12600793:Var,[])
link(WParam,2601413:Var3,[(370,478)(282,478)(282,549)])
link(LParam,14189995:Memory,[(377,495)(489,495)])
link(Message,10497072:Var,[])
}
Add(MemoryStream,14189995,469,448)
{
Point(Memory)
Point(doSize)
Point(Position)
}
Add(DataToFile,13414976,469,504)
{
Type=6
link(onGet,7811580:doString,[])
link(Stream,14189995:Stream,[])
}
Add(Hub,8233292,315,497)
{
OutCount=5
link(onEvent2,5834539:doData,[(364,510)(364,468)])
link(onEvent3,15421399:doSendMessage,[])
link(onEvent4,14189995:doClear,[(399,524)(399,461)])
link(onEvent5,3453558:doSendMessage,[(341,531)(341,608)(254,608)(254,685)])
}
Add(GlobalVar,12600793,357,350)
{
@Color=16755285
Name="handle"
}
Add(MT_String,16531181,287,196)
{
link(onResult,150237:doAdd,[])
}
Add(StringTable,150237,343,196)
{
Left=10
Top=10
Width=305
Height=90
Columns=#13:Название=100;|18:Идентификатор=100;|14:Заголовок=100;|
Redaction=1
link(onClick,8450245:doSplit,[])
}
Add(MultiStrData,8450245,413,196)
{
link(Str,150237:Select,[(419,184)(387,184)(387,240)(356,240)])
link(onPart2,3396396:doWork2,[])
}
Add(GlobalVar,10882181,476,203)
{
@Color=16755285
Name="handle"
link(onValue,3550636:doEvent1,[])
}
Add(LineBreakEx,13506788,84,490)
{
@Color=5635925
Caption="Текст"
Type=1
link(OnEvent,14626141:doEvent1,[])
}
Add(Hub,3550636,539,203)
{
OutCount=5
link(onEvent3,7619058:doWork,[])
link(onEvent4,11741915:doClear,[(588,230)(588,286)])
link(onEvent5,4496556:doEnumChildWindows,[(565,237)(565,261)(457,261)(457,286)])
}
Add(LineBreakEx,7619058,567,217)
{
@Color=5635925
Caption="Текст"
}
Add(Memo,14411687,721,504)
{
Top=365
Width=677
Align=4
AddType=1
ScrollBars=2
}
Add(WinEnum,4496556,469,259)
{
Point(doEnumChildWindows)
Point(onEnumChildWindows)
Point(ParentHandle)
link(onEnumChildWindows,7687947:doStr,[])
link(ParentHandle,10882181:Var,[])
}
Add(StringTable,11741915,623,273)
{
Left=10
Top=105
Width=305
Height=240
Columns=#13:Название=100;|18:Идентификатор=100;|14:Заголовок=100;|
Redaction=1
link(onClick,10467780:doSplit,[])
}
Add(MT_String,7687947,546,273)
{
link(onResult,11741915:doAdd,[])
}
Add(MultiStrData,15641027,742,84)
{
Count=3
link(onPart1,5670364:doValue,[])
}
Add(GlobalVar,5670364,791,84)
{
@Color=16755285
Name="sms"
link(onValue,2547826:doWork,[])
}
Add(LineBreakEx,2547826,847,84)
{
@Color=5635925
Caption="Текст"
}
Add(MultiStrData,10467780,672,273)
{
link(Str,11741915:Select,[(678,261)(657,261)(657,317)(636,317)])
link(onPart2,3396396:doWork3,[(716,286)(716,249)(459,249)])
}
Add(HubEx,3396396,455,203)
{
link(onEvent,10882181:doValue,[])
}
Add(ListBox,1606663,686,77)
{
Left=407
Width=270
Height=365
Align=3
Strings=#13:13;WM_GETTEXT|18:4100;LB_GETTEXTLEN|14:393;LB_GETTEXT|17:4211;GetItemTextW|17:4141;GetItemTextA|
DataType=1
Point(doSelect)
Point(onSelect)
link(onClick,15008752:doWork2,[])
link(onSelect,15008752:doWork3,[(725,97)])
}
Add(For,14827891,203,497)
{
End=40
link(onEvent,8233292:doEvent1,[])
}
Add(GlobalVar,10497072,378,378)
{
@Color=16755285
Name="sms"
}
Add(HubEx,15008752,721,84)
{
link(onEvent,15641027:doSplit,[])
}
Add(Timer,6283041,637,105)
{
Interval=1
AutoStop=1
link(onTimer,1606663:doSelect,[])
}
Add(Hub,14626141,147,490)
{
OutCount=5
link(onEvent1,10207242:doWork,[(179,496)(179,482)])
link(onEvent2,14827891:doFor,[])
link(onEvent3,8093015:doGetListViewHeader,[(182,510)(182,762)])
link(onEvent4,8093015:doGetListViewRow,[(175,517)(175,769)])
}
Add(LineBreakEx,4747630,672,511)
{
@Color=5635925
Type=1
link(OnEvent,14411687:doClear,[])
}
Add(LineBreakEx,10207242,196,476)
{
@Color=5635925
}
Add(FormatStr,7811580,623,504)
{
DataCount=4
Mask="%1 %2 %3 %4"
link(onFString,9313423:doWork2,[])
link(Str1,2601413:Var1,[(629,436)(244,436)])
link(Str3,9279906:Value,[(643,492)(560,492)(560,565)(419,565)])
}
Add(GetDataEx,2601413,238,544)
{
Angle=3
link(Data,14827891:Position,[(209,549)])
}
Add(Memory,9279906,413,511)
{
link(onData,13414976:doGet,[])
}
Add(DoData,5834539,399,462)
{
Data=Integer(100000)
link(onEventData,14189995:doSize,[])
}
Add(InlineCode,8093015,203,756)
{
WorkPoints=#19:doGetListViewHeader|16:doGetListViewRow|
EventPoints=#8:onHeader|5:onRow|
DataPoints=#8:inHandle|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|29:uses kol,windows,Share,Debug;|0:|5:const|27: HDM_FIRST = $1200;|27: LVM_FIRST = $1000;|36: LVM_GETHEADER = LVM_FIRST + 31;|35: HDM_GETITEMCOUNT = HDM_FIRST + 0;|27: HDI_TEXT = $0002;|27: HDF_STRING = $4000;|2: |35: LVM_GETITEMCOUNT = LVM_FIRST + 4;|1: |4:type|19: HD_ITEM = record|19: Mask: Cardinal;|17: cxy: Integer;|23: pszText: PAnsiChar;|17: hbm: HBITMAP;|24: cchTextMax: Integer;|17: fmt: Integer;|19: lParam: LPARAM;|22: iImage: Integer; |22: iOrder: Integer; |7: end; |2: |4:type|18: LV_ITEM = record|15: mask: UINT;|19: iItem: Integer;|22: iSubItem: Integer;|16: state: UINT;|20: stateMask: UINT;|23: pszText: PAnsiChar;|24: cchTextMax: Integer;|20: iImage: Integer;|19: lParam: LPARAM;|21: iIndent: Integer;|8: end; |1: |0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|25: onHeader:THI_Event;|22: onRow:THI_Event;|25: inHandle:THI_Event;|3: |50: procedure GetListViewHeader(ALVHandle: HWND);|47: procedure GetListViewRow(ALVHandle: HWND);|59: procedure doGetListViewHeader(var dt:TData; idx:word);|56: procedure doGetListViewRow(var dt:TData; idx:word);|5: end;|0:|14:implementation|0:|46:function ListView_GetHeader(hwnd: HWND): HWND;|5:begin|51: Result := SendMessage(hwnd, LVM_GETHEADER, 0, 0);|4:end;|0:|52:function Header_GetItemCount(Header: HWnd): Integer;|5:begin|56: Result := SendMessage(Header, HDM_GETITEMCOUNT, 0, 0);|4:end;|0:|79:function Header_GetItem(Header: HWnd; Index: Integer; var Item: HD_ITEM): Bool;|5:begin|76: Result := Bool( SendMessage(Header, HDM_GETITEM, Index, Longint(@Item)) );|4:end;|0:|52:function ListView_GetItemCount(hWnd: HWND): Integer;|5:begin|54: Result := SendMessage(hWnd, LVM_GETITEMCOUNT, 0, 0);|4:end;|0:|42:procedure THiAsmClass.doGetListViewHeader;|18:var hwnd:Cardinal;|5:begin|35: hwnd := ReadInteger(dt,inHandle);|24: if hwnd = 0 then exit;|26: GetListViewHeader(hwnd);|4:end;|0:|39:procedure THiAsmClass.doGetListViewRow;|18:var hwnd:Cardinal;|5:begin|35: hwnd := ReadInteger(dt,inHandle);|24: if hwnd = 0 then exit;|23: GetListViewRow(hwnd);|4:end;|0:|57:procedure THiAsmClass.GetListViewHeader(ALVHandle: HWND);|6:const |49: cchTextMax=148; // максимальная длина заголовка|5:var |20: hProcess: THandle;|21: dwProcessID: DWORD;|18: dwWriten: DWORD;|17: dwCount: DWORD;|17: pszText: PChar;|22: svText: ShortString;|18: HDItem: HD_ITEM;|20: pHDItem: ^HD_ITEM;|29: i, j, nTextLength: Integer;|17: lvHeader: HWND;|14: stmp:string;|5:begin|0:|38: // Получаем хендл заголовка ListView|44: lvHeader := ListView_GetHeader(ALVHandle);|0:|35: // Получаем количество заголовков|43: dwCount := Header_GetItemCount(lvHeader);|27: if dwCount = 0 then Exit;|0:|25: // Получаем ID процесса|19: dwProcessID := 0;|51: GetWindowThreadProcessId(lvHeader, @dwProcessID);|0:|25: if dwProcessID = 0 then|28: ExitProcess(GetLastError);|0:|22: // Открываем процесс|16: hProcess := 0;|65: hProcess := OpenProcess(PROCESS_ALL_ACCESS, True, dwProcessID);|22: if hProcess = 0 then|28: ExitProcess(GetLastError);|0:|48: // Выделяем в нем память под текстовый буффер |54: pszText := VirtualAllocEx(hProcess, nil, cchTextMax,|72: MEM_COMMIT or MEM_TOP_DOWN, PAGE_READWRITE);|48: // Выделяем в нем память под структуру HDITEM|59: pHDItem := VirtualAllocEx(hProcess, nil, SizeOf(HD_ITEM),|72: MEM_COMMIT or MEM_TOP_DOWN, PAGE_READWRITE);|0:|24: // Заполняем структуру|39: ZeroMemory(@HDItem, SizeOf(HD_ITEM));|26: HDItem.mask := HDI_TEXT;|28: HDItem.pszText := pszText;|34: HDItem.cchTextMax := cchTextMax;|0:|45: // Заполняем информацию о каждом заголовке.|30: for i := 0 to dwCount - 1 do|7: begin|0:|41: // Пишем в память удалённого процесса|57: if not WriteProcessMemory(hProcess, pHDItem, @HDItem,|57: SizeOf(HD_ITEM), dwWriten) then Exit;|0:|30: // Получаем итем заголовка|60: SendMessage(lvHeader, HDM_GETITEM, i, Longint(pHDItem));|0:|23: // Читаем заголовки|36: ZeroMemory(@svText, cchTextMax);|66: if not ReadProcessMemory(hProcess, HDItem.pszText, @svText[1],|54: cchTextMax, dwWriten) then Exit;|22: |30: // Выодим их из переменной|44: _hi_onEvent(onHeader,PChar(@svText[1]));|6: end;|0:|34: // Освобождаем выделенную память|51: VirtualFreeEx(hProcess, pszText, 0, MEM_RELEASE);|51: VirtualFreeEx(hProcess, pHDItem, 0, MEM_RELEASE);|0:|33: // Закрываем описатель процесса|24: CloseHandle(hProcess);|4:end;|0:|0:|54:procedure THiAsmClass.GetListViewRow(ALVHandle: HWND);|5:const|17: cchTextMax=255;|3:var|20: hProcess: THandle;|21: dwProcessID: DWORD;|18: dwWriten: DWORD;|32: LVItemCount, dwCount: Integer;|29: i, j, nTextLength: Integer;|20: pLVItem: ^LV_ITEM;|18: LVItem: LV_ITEM;|17: pszText: PChar;|22: svText: ShortString;|14: sTmp:string;|17: lvHeader: HWND;|5:begin|29: if ALVHandle = 0 then Exit;|30: // Получаем количество строк|52: LVItemCount := ListView_GetItemCount(ALVHandle); |38: // Получаем хендл заголовка ListView|44: lvHeader := ListView_GetHeader(ALVHandle);|35: // Получаем количество заголовков|44: dwCount := Header_GetItemCount(lvHeader); |2: |62: // Получаем ID процесса, которому принадлежит найденное окно|19: dwProcessID := 0;|52: GetWindowThreadProcessId(ALVHandle, @dwProcessID);|24: if dwProcessID = 0 then|28: ExitProcess(GetLastError);|22: // Открываем процесс|16: hProcess := 0;|65: hProcess := OpenProcess(PROCESS_ALL_ACCESS, True, dwProcessID);|22: if hProcess = 0 then|28: ExitProcess(GetLastError);|47: // Выделяем в нем память под текстовый буффер|54: pszText := VirtualAllocEx(hProcess, nil, cchTextMax,|72: MEM_COMMIT or MEM_TOP_DOWN, PAGE_READWRITE);|47: // Выделяем в нем память под структуру LVITEM|59: pLVItem := VirtualAllocEx(hProcess, nil, SizeOf(LV_ITEM),|81: MEM_COMMIT or MEM_TOP_DOWN, PAGE_READWRITE);|0:|24: // Заполняем структуру|39: ZeroMemory(@LVItem, SizeOf(LV_ITEM));|27: LVItem.mask := LVIF_TEXT;|28: LVItem.pszText := pszText;|34: LVItem.cchTextMax := cchTextMax;|0:|21: // Считываем строки|34: for i := 0 to LVItemCount - 1 do|7: begin|25: LVItem.iSubItem := 0;|44: // Пишем ее в память удаленного процесса|57: if not WriteProcessMemory(hProcess, pLVItem, @LVItem,|54: SizeOf(LV_ITEM), dwWriten) then Exit;|58: nTextLength := SendMessage(ALVHandle, LVM_GETITEMTEXT,|52: i, Integer(pLVItem));|23: // Читаем результат|36: ZeroMemory(@svText, cchTextMax);|59: ReadProcessMemory(hProcess, LVItem.pszText, @svText[1],|46: nTextLength, dwWriten);|4: |35: sTmp := ''; |42: sTmp := PChar(@svText[1]); |0:|22: //Считываем столбцы|31: for j := 1 to dwCount - 1 do|9: begin|27: LVItem.iSubItem := j;|46: // Пишем ее в память удаленного процесса|59: if not WriteProcessMemory(hProcess, pLVItem, @LVItem,|69: SizeOf(LV_ITEM), dwWriten) then Exit;|60: nTextLength := SendMessage(ALVHandle, LVM_GETITEMTEXT,|54: i, Integer(pLVItem));|25: // Читаем результат|38: ZeroMemory(@svText, cchTextMax);|49: ReadProcessMemory(hProcess, LVItem.pszText,|59: @svText[1], nTextLength, dwWriten);|26: // добавляем столбцы|45: sTmp := sTmp + ';' + PChar(@svText[1]);|8: end;|29: _hi_onEvent(onRow, sTmp);|6: end;|0:|40: // Освобождаем ранее выделенную память|51: VirtualFreeEx(hProcess, pszText, 0, MEM_RELEASE);|51: VirtualFreeEx(hProcess, pLVItem, 0, MEM_RELEASE);|33: // Закрываем описатель процесса|24: CloseHandle(hProcess);|4:end;|0:|4:end.|
link(onRow,16572225:doAdd,[])
link(inHandle,6270945:Var,[])
}
Add(GlobalVar,6270945,203,721)
{
@Color=16755285
Name="handle"
}
Add(RichEdit,16572225,259,763)
{
Top=504
Width=503
Height=69
Align=4
ModeSp=1
ScrollBars=3
}
Add(SendMessage,3453558,266,679)
{
Message=9
Point(Message)
link(onSend,7969102:doString,[])
link(Handle,14885923:Var,[])
link(WParam,6376330:Var2,[(279,616)(244,616)])
link(Message,16475226:Var,[])
}
Add(GlobalVar,14885923,266,623)
{
@Color=16755285
Name="handle"
}
Add(GlobalVar,16475226,287,651)
{
@Color=16755285
Name="sms"
}
Add(HubEx,9313423,658,504)
{
link(onEvent,14411687:doAdd,[])
}
Add(FormatStr,7969102,343,679)
{
link(onFString,9313423:doWork3,[(662,685)])
link(Str1,6376330:Var3,[(349,558)])
}
Add(GetDataEx,6376330,238,553)
{
link(Data,2601413:Var2,[])
}
Add(InfoTip,2477739,42,336)
{
Info=#36:Получение строк списка из Диспетчера|
Font=[Arial,11,0,16711680,204]
Frame=2
Width=820
Height=487
}
Этот топик читают: Гость
Ответов: 52
Рейтинг: 0
|
|||
Всем привет. Проблема в получении списка строк из Диспетчера задач через сообщения окну. По моей схеме я получаю только надпись "Процессы".
|
|||
карма: 0 |
|
Ответов: 820
Рейтинг: 178
|
|||
atutunnik94 писал(а): Проблема в получении списка строк из Диспетчера задач
Редактировалось 1 раз(а), последний 2021-10-09 17:17:37 |
|||
карма: 16 |
|
Ответов: 52
Рейтинг: 0
|
|||
Ваш ответ отличный, только мне нужно понять как получить список через "Сообщение окну" из диспетчера, и не только процессы потом буду вытягивать, а и сервис, и пользователей. Спасибо за ваш вариант тоже, а рыть буду дальше по теме. Уже столько документации начитал, а найти не могу ответа
![]() Gunta писал(а): atutunnik94 писал(а):Проблема в получении списка строк из Диспетчера задач Add(MainForm,1998830,245,154) { Width=504 Height=444 link(onCreate,13023946:doConsoleExec,[]) } Add(WinExec,13023946,308,154) { FileName="powershell" Param="-nologo -noprofile -command "& {Get-Process clip}"" Mode=0 Point(doConsoleExec) Point(onConsoleResult) } Add(Memo,10667612,308,238) { Width=488 Height=405 Align=5 Font=[Lucida Console,8,0,0,204] ScrollBars=3 } Add(ClipboardHook,4449285,245,238) { link(onChange,10667612:doAdd,[]) } | Редактировалось 1 раз(а), последний 2021-10-10 02:36:13 |
|||
карма: 0 |
|
Ответов: 5227
Рейтинг: 587
|
|||
Работает всё хорошо и без таких наворотов
Вот и вся схема. |
|||
карма: 4 |
|
Ответов: 5227
Рейтинг: 587
|
|||
atutunnik94, как успехи?
|
|||
карма: 4 |
|
Ответов: 52
Рейтинг: 0
|
|||
andrestudio писал(а): atutunnik94, как успехи?Я не могу знать, что у вас написано в IC коде ![]() Прошу приложить схему) Потому что, примерно скопировав вашу схему, на глаз, у меня вот такой результат: ![]() Пустые строки, и колонки Редактировалось 2 раз(а), последний 2021-10-12 17:43:43 |
|||
карма: 0 |
|
Ответов: 5227
Рейтинг: 587
|
|||
atutunnik94 писал(а): Я не могу знать, что у вас написано в IC коде А что тут не знать, взял твою схему, узнал свой IC (вряд ли вы помните авторов когда только просто качаете в свою копилку труды других форучан не предавая этому никакого значения), переделал схему по своему (сократил элементы) и дал удочку. И? atutunnik94 писал(а): Потому что, примерно скопировав вашу схему, на глаз, у меня вот такой результат:Я и так понимаю что это развод. Но есть что сказать. Ну, что тёска, я же говорил "завязывайте с игрушками" и вы меня дружно послали ![]() ![]() Можно сделать ещё оптимальней (для твоей копилки)
atutunnik94 писал(а): Прошу приложить схему)Ну ты уж прости, это не мои слова, но в тему (тут такие говорить нельзя) |
|||
карма: 4 |
|
Ответов: 52
Рейтинг: 0
|
|||
andrestudio писал(а): Ну, что тёска, я же говорил "завязывайте с игрушками" и вы меня дружно послали. Не мы тебя послали, а ты сам вышел по собственному желанию, по своим личным причинам. ![]() andrestudio писал(а): Ну ты уж прости, это не мои слова, но в тему (тут такие говорить нельзя) Я попросил помощи, потому что у меня не получается сделать желаемое, и есть заданный вопрос. Зачем устраивать личную расправу в форуме? У меня все равно пустые строки: ![]() Подскажите в чем может быть причина?
Редактировалось 1 раз(а), последний 2021-10-13 17:47:27 |
|||
карма: 0 |
|
Ответов: 5227
Рейтинг: 587
|
|||
atutunnik94 писал(а): Подскажите в чем может быть причина?Выходные точки которые от IC идут к таблице поменяй местами Я их поменял для удобства подключения, читай когда что то подключаешь от точки а до точки б |
|||
карма: 4 |
|
Ответов: 52
Рейтинг: 0
|
|||
andrestudio писал(а): atutunnik94 писал(а):
Подскажите в чем может быть причина? Выходные точки которые от IC идут к таблице поменяй местами Я их поменял для удобства подключения, читай когда что то подключаешь от точки а до точки б Я смотрел и код, и точки, это нормально, просто как бы не тыкал, строки пустые приходят, только делиметры содержат. Так же было когда я это делал штатными компонентами, приходили пустые строки. Что может быть такого, что не дает получить строку? ![]() |
|||
карма: 0 |
|
Ответов: 820
Рейтинг: 178
|
|||
atutunnik94, Не могу ответить тебе в Telegram, постараюсь ответить здесь.
Смею предположить, что у тебя Windows10/64. Попробуй запустить Диспетчер задач Windows набрав в поле Выполнить "LaunchTM.exe" А свою программ откомпилируй и запусти от имени администратора. Всё должно получится. ![]() |
|||
карма: 16 |
|
Ответов: 52
Рейтинг: 0
|
|||
Смею предположить, что у тебя Windows10/64. Извиняюсь что указал ранее, Windows 7/64.Всем кто помогал спасибо большое! Вот пишет такие подсказки, просто, все варианты перебранные нами, возвращают пустые строки. ![]() Компоновка проекта... Command line: dcc32.exe "D:\HiAsm_Build\Elements\delphi\code\main.dpr" "-UD:\#HiAsm\НетФильма\." -Q Borland Delphi Version 12.0 Copyright (c) 1983,98 Inprise Corporation D:\HiAsm_Build\Elements\delphi\code\hiInlineCode_3ADD1B0.pas(130) Hint: Value assigned to 'hProcess' never used D:\HiAsm_Build\Elements\delphi\code\hiInlineCode_3ADD1B0.pas(110) Hint: Variable 'j' is declared but never used in 'ThiInlineCode_3ADD1B0.GetListViewHeader' D:\HiAsm_Build\Elements\delphi\code\hiInlineCode_3ADD1B0.pas(110) Hint: Variable 'nTextLength' is declared but never used in 'ThiInlineCode_3ADD1B0.GetListViewHeader' D:\HiAsm_Build\Elements\delphi\code\hiInlineCode_3ADD1B0.pas(112) Hint: Variable 'stmp' is declared but never used in 'ThiInlineCode_3ADD1B0.GetListViewHeader' D:\HiAsm_Build\Elements\delphi\code\hiInlineCode_3ADD1B0.pas(207) Hint: Value assigned to 'hProcess' never used Редактировалось 6 раз(а), последний 2021-10-17 13:42:38 |
|||
карма: 0 |
|
Ответов: 820
Рейтинг: 178
|
|||
atutunnik94, Как это ни покажется странным, но от того, как ты запускаешь Диспетчер задач Windows зависит то, сможешь ты читать SysListView32 или нет. Я сам очень сильно удивился от такой новости, когда стал разбираться почему у меня не читаются данные из SysListView32 и тоже возвращаются пустые строки.
Вот ссылки на объяснение этого феномена: https://superuser.com/questions/753556/taskmgr-exe-called-with-an-argument-by-windows-7 https://www.hexacorn.com/blog/2018/07/22/taskmgr-exe-slashing-numbers/ Вот схема, на которой я экспериментировал(все InlineCode из этой темы):
--- Добавлено в 2021-10-17 14:29:31 atutunnik94 писал(а): Вот пишет такие подсказки, У меня тоже самое. Это просто сообщения о неиспользуемых переменных. Редактировалось 5 раз(а), последний 2021-10-17 16:55:32 |
|||
карма: 16 |
|
Ответов: 52
Рейтинг: 0
|
|||
Спасибо большое пользователям форума Gunta и andrestudio за помощь в решении вопроса. Вопрос решен.
Мое костыльное решение: У меня не работает получение строки из списка, а все остальные "сообщение окну" работают идеально. Я решил вопрос скриншотом окна, и распознание его текста, далее присвоением индексов, так я и получил желаемое. Вывод: Цель достигнута, путь фиговый. ![]() Редактировалось 2 раз(а), последний 2021-10-20 01:01:13 |
|||
карма: 0 |
|
Ответов: 820
Рейтинг: 178
|
|||
atutunnik94 писал(а): Я решил вопрос скриншотом окна, и распознание его текста,Из всех возможных вариантов получения необходимых данных ты выбрал, как мне кажется, самый сложный и неоднозначный. Советую почитать документацию к консольной утилите Wmic.exe которая присутствует во всех версиях Windows начиная с XP. Вот несколько небольшых примеров:
Редактировалось 1 раз(а), последний 2021-10-22 20:00:54 |
|||
карма: 16 |
|
15