Вверх ↑
Разработчик
Ответов: 26066
Рейтинг: 2120
#1: 2018-11-12 15:56:02 ЛС | профиль | цитата
Короче, вот тебе парсер на скорую руку

Схема

Add(MainForm,9982853,77,140)
{
Width=741
Height=264
}
Add(WinExec,385351,175,77)
{
FileName="driverquery.exe"
Mode=0
Point(doConsoleExec)
Point(doConsoleInput)
Point(onConsoleResult)
link(onConsoleResult,16628860:doCharset,[])
}
Add(Button,9958066,77,84)
{
Left=325
Top=200
link(onClick,3199062:doEvent1,[])
}
Add(Charset,16628860,238,91)
{
link(onCharset,1062029:doStrCatDlm,[])
}
Add(Hub,3199062,126,84)
{
OutCount=3
link(onEvent1,1062029:doClear,[(151,90)(151,69)(277,69)(277,104)])
link(onEvent2,385351:doConsoleExec,[])
link(onEvent3,9446271:doTimer,[(158,104)(158,146)])
}
Add(ArrayRW,304584,406,259)
{
Index=Integer(2)
link(onRead,2857252:doSplit,[(445,265)(445,97)])
link(Array,9758948:Var2,[])
}
Add(Timer,9446271,175,140)
{
Enable=1
AutoStop=1
link(onTimer,5668561:doEvent1,[])
}
Add(StringTable,14516997,833,448)
{
Left=5
Top=5
Width=713
Height=190
Font=[Courier,10,0,0,204]
Columns=#10:Модуль=120|12:Название=220|16:Тип драйвера=130|15:Дата ссылки=220|
Point(doEnsureVisible)
Point(EndIdx)
}
Add(StrCatDelim,1062029,392,91)
{
Point(doClear)
link(Str1,10427497:Var1,[(398,82)(384,82)(384,131)])
}
Add(GetDataEx,10427497,392,126)
{
link(Data,1062029:Result,[])
}
Add(Hub,5668561,224,140)
{
OutCount=8
link(onEvent1,11998545:doText,[(368,146)(368,195)])
link(onEvent2,304584:doRead,[(359,153)(359,265)])
link(onEvent3,6486934:doWork1,[(291,160)])
link(onEvent4,9976784:doWork1,[(284,167)])
link(onEvent5,9976784:doWork2,[(277,174)(277,188)])
link(onEvent6,13112648:doEnum,[(270,181)(270,321)])
link(onEvent7,600651:doData,[(263,188)(263,524)])
link(onEvent8,1951999:doString,[(256,195)(256,573)])
}
Add(MultiStrData,2857252,469,91)
{
Char=" "
Count=4
link(onPart1,15773544:doLength,[])
link(onPart2,11269905:doLength,[(536,104)(536,167)])
link(onPart3,15163764:doLength,[(529,111)(529,230)])
link(onPart4,205461:doLength,[(522,118)(522,279)])
}
Add(VisualStrings,7005235,308,182)
{
Lines=#1:0|
Point(doText)
Point(onText)
link(onText,11998545:doDelete,[])
}
Add(ArrayEnum,13112648,371,315)
{
link(onItem,13264563:doEvent1,[])
link(Array,9758948:Var1,[(377,236)])
}
Add(GetDataEx,9758948,406,231)
{
link(Data,11998545:Array,[])
}
Add(Length,15773544,560,91)
{
link(onLength,882078:doOperation,[])
}
Add(Math,882078,623,91)
{
Op2=2
ResultType=0
}
Add(FormatStr,2744193,770,448)
{
DataCount=4
Mask="%1;%2;%3;%4"
link(onFString,14516997:doAdd,[])
link(Str1,9919733:Value,[])
link(Str2,16609988:Value,[(783,397)(790,397)])
link(Str3,8020019:Value,[(790,439)(804,439)])
}
Add(Length,11269905,609,161)
{
link(onLength,11549349:doOperation,[])
}
Add(Math,4529045,770,161)
{
Op2=1
ResultType=0
}
Add(Copy,4262830,546,315)
{
Position=1
link(onCopy,9919733:doValue,[])
link(Count,15773544:Result,[])
}
Add(Copy,2525696,581,357)
{
link(onCopy,16609988:doValue,[])
link(Position,8546385:Var1,[(594,145)])
link(Count,11269905:Result,[(601,201)(615,201)])
}
Add(Hub,13264563,490,315)
{
OutCount=4
link(onEvent1,4262830:doCopy,[])
link(onEvent2,2525696:doCopy,[(536,328)(536,363)])
link(onEvent3,11636668:doCopy,[(529,335)(529,405)])
link(onEvent4,5747740:doCopy,[(522,342)(522,454)])
}
Add(Length,15163764,630,224)
{
link(onLength,5427601:doOperation,[])
}
Add(Math,7843728,728,224)
{
Op2=1
ResultType=0
}
Add(Copy,11636668,616,399)
{
link(onCopy,8020019:doValue,[])
link(Position,9832520:Var2,[(629,264)(776,264)])
link(Count,15163764:Result,[])
}
Add(Math,11549349,658,161)
{
ResultType=0
link(onResult,4529045:doOperation,[])
link(Op1,8546385:Var3,[(664,145)])
}
Add(GetDataEx,8546385,623,140)
{
link(Data,882078:Result,[])
}
Add(Math,5427601,679,224)
{
ResultType=0
link(onResult,7843728:doOperation,[])
link(Op1,9832520:Var1,[(685,208)])
}
Add(GetDataEx,9832520,770,203)
{
link(Data,4529045:Result,[])
}
Add(Copy,5747740,665,448)
{
link(onCopy,2744193:doString,[])
link(Position,7843728:Result,[(678,439)(734,439)])
link(Count,205461:Result,[])
}
Add(Length,205461,679,273)
{
}
Add(HubEx,6486934,287,182)
{
link(onEvent,7005235:doText,[])
}
Add(HubEx,9976784,280,182)
{
link(onEvent,6486934:doWork2,[])
}
Add(Memory,9919733,770,315)
{
}
Add(Memory,16609988,784,357)
{
}
Add(Memory,8020019,798,399)
{
}
Add(StrList,11998545,392,168)
{
link(Str,10427497:Var2,[])
}
Add(DoData,600651,672,518)
{
link(onEventData,14516997:doEnsureVisible,[(711,524)(711,489)])
link(Data,6312405:Var1,[(678,502)])
}
Add(StatusBar,1763416,833,567)
{
}
Add(FormatStr,1951999,749,567)
{
DataCount=1
Mask="Найдено модулей -- %1"
link(onFString,1763416:doText,[])
link(Str1,6312405:Var2,[])
}
Add(GetDataEx,6312405,749,497)
{
Angle=1
link(Data,14516997:EndIdx,[(853,502)])
}


Проверь несколько раз, если не всегда отображает до конца, то увеличь время таймера. Вроде секунды должно хватать. Это все из-за того, что нет события конца завершения консольной команды. Можешь использовать этот парсер и для чтения полученного файла driver-list.txt.

WinExec обнови, у него появился скрытый режим консоли.
карма: 22

0
Редактировалось 6 раз(а), последний 2018-11-12 16:08:33