Orion9
|
Posted: Sun Dec 01, 2024 01:10 Post subject: |
|
|
AkulaBig
Кстати, в Autorun есть и своя подсказка, которую можно не только отображать, но и задавать ей другие стили. Вот пара примеров (вызов по F11 и Ctrl+F11):
Hidden text Code: | SetHotkeyAction /H:F11 TridHint 0
SetHotkeyAction /K:C /H:F11 ShowConsoleHint
Func TridHint(lParam)
Local p, n, f, stdout, line, hint, i = 1
Static trid = %COMMANDER_PATH% & "\Plugins\wdx\TrID\TrID\trid.exe"
If Not FileExist(trid) Then
ShowHint("Не найден " & trid)
Return
Endif
p = RequestCopyDataInfo("SP")
n = RequestCopyDataInfo("SN")
f = p & n
If Not FileExist(f) Then
ShowHint("Файл не существует " & f)
Return
Endif
If StrPos(FileGetAttr(f), "D") Then
ShowHint("Каталог")
Return
Endif
ShowHint("Analyzing...")
ProcessExecGetOutput stdout %trid% '"%f%"'
while 1
line=StrPart(stdout, auCRLF, i)
If ERROR = 1 Then Break
If StrLen(StrTrim(line)) = 0 Then
i = i + 1
Continue
Endif
hint = hint & auCR & line
i = i + 1
Wend
ShowHint(StrMid(hint, 2))
EndFunc
Func ShowConsoleHint()
Local f, p, n, out, hint, i
Local uwdx = %COMMANDER_PATH% & "\Plugins\uwdx\uwdx.exe"
If Not FileExist(uwdx) Then
ShowHint("Не найден " & uwdx)
Return
Endif
p = RequestCopyDataInfo("SP")
n = RequestCopyDataInfo("SN")
f = p & n
If Not FileExist(f) Then
ShowHint("Файл не существует " & f)
Return
Endif
SetHintParam("ShowHint", "Font", 9, "Consolas")
SetHintParam("ShowHint", "BackColor", 0x000000)
SetHintParam("ShowHint", "Text", 0xFFFFFF)
ShowHint("Analyzing...")
ProcessExecGetOutput /OEM icacls %COMSPEC% "/c icacls ""%f%"" /q" %p%
icacls = StrReplace(icacls, f)
i=1
while 1
line = StrPart(icacls, auLF, i)
If ERROR = 1 Then Break
out = out & StrTrim(line) & auLF
i = i + 1
Wend
ProcessExecGetOutput /C:1251 links %uwdx% "/C:1251 /E /I /X:Obj_RealPath /X:Obj_RealSize NTLinks.wdx ""%f%"""
out = out & "+" & auLF & links
ProcessExecGetOutput stream %uwdx% "/C:1251 /I NTFSFileStreams.wdx ""%f%"" ""Streams Count"""
If stream > 0 Then
ProcessExecGetOutput streams %uwdx% "/C:1251 /I /E /X:8 /X:9 NTFSFileStreams.wdx ""%f%"""
Else
streams = "-------- No NTFS Streams -------- "
EndIf
out = out & auLF & streams
ProcessExecGetOutput /C:1251 filex %uwdx% "/C:1251 /E /I /X:2 /X:8 /X:9 /X:10 /X:11 /X:12 /X:19 /X:20 /X:21 /X:22 FileX.wdx ""%f%"""
out = out & auLF & filex
i=1
while 1
line=StrPart(out, auLF, i)
If ERROR = 1 Then Break
If StrLen(StrTrim(line)) = 0 Or StrPos(line, 'All non-empty') > 0 _
Or StrPos(line, 'не удалось') > 0 Or StrPos(line, ' All') > 0 Then
i = i + 1
Continue
Endif
hint = hint & line & auLF
i = i + 1
Wend
i = StrLen(hint) - 2
ShowHint(StrMid(hint, 1, i))
Sleep(1000)
SetHintParam("ShowHint", "Reload")
EndFunc
|
Переделал сейчас эти две функции под новые реалии: c RequestCopyDataInfo смотрится очень аккуратно и приятно для глаз, но вторую функцию еще надо дорабатывать или вовсе переделывать, пока это только демо.
В общем, Autorun - это больше, чем плагин. Почитав последнюю справку к нему, я просто прифигел сколько новых возможностей было добавлено. Считаю, что иметь навыки программирования и не пользоваться этими возможностями - это просто преступление против ТС
AkulaBig wrote: | Вот времени и нет. Тем более мне надо очень много времени, чтобы с чем-то разобраться. |
Не займет долго, главное - начать. Оглянуться не успеете, как начнете клепать функции на Autorun как горячие пирожки для своей сборки |
|