Вверх ↑
Ответов: 724
Рейтинг: 154
#1: 2023-11-12 08:46:09 ЛС | профиль | цитата
Пример получения расширенных свойств файла.

Add(MainForm,14681279,98,119)
{
Width=665
Height=432
Caption="Получение всех не пустых свойст файла"
link(onCreate,9650908:doExecute,[])
}
Add(WinExec,13614633,266,119)
{
FileName="powershell.exe"
Mode=0
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
link(onConsoleResult,13388704:doWork2,[])
link(onConsoleError,13388704:doWork3,[(319,146)])
}
Add(Memo,7717528,399,133)
{
Width=649
Height=393
Align=5
Font=[Consolas,12,0,0,204]
ScrollBars=3
}
Add(Charset,12271718,343,133)
{
link(onCharset,7717528:doAdd,[])
}
Add(HubEx,13388704,315,133)
{
link(onEvent,12271718:doCharset,[])
}
Add(FormatStr,3924364,203,133)
{
DataCount=1
Mask="$objShell = New-Object -ComObject Shell.Application\r\n$folder = Split-Path '%1'\r\n$file = Split-Path '%1' -Leaf\r\n\r\n$objFolder = $objShell.Namespace((Get-Item $folder).FullName)\r\n\r\n$filenameWithExtension = $file\r\n\r\n$objFile = $objFolder.ParseName($filenameWithExtension)\r\n$fileMeta = [ordered]@{}\r\nfor($id = 0; $id -le 500; $id++){\r\n if($objFolder.GetDetailsOf($objFile, $id)){\r\n $fileMeta[\r\n $($objFolder.GetDetailsOf($objFolder, $id))\r\n ] = $($objFolder.GetDetailsOf($objFile, $id))\r\n }\r\n}\r\n\r\n# print ordered hashtable\r\n$fileMeta"
link(onFString,13614633:doConsoleExec,[])
}
Add(ODialog,9650908,154,133)
{
link(onExecute,3924364:doString,[])
}


Которые можно посмотреть в диалоге свойств (правая кнопка мыши -> Свойства) вкладки: Общие и Подробно.
Или вызвать так.

Add(MainForm,2953706,105,112)
{
Caption="Программно вызвать окно свойств"
link(onCreate,14245307:doExecute,[])
}
Add(ODialog,14245307,182,126)
{
link(onExecute,15981963:doEvent1,[])
link(onCancel,735059:doWork1,[(228,139)])
}
Add(VBJScript,1354917,287,126)
{
WorkPoints=#6:doWork|
Script=#22:Sub doWork(Data,Index)|63: With CreateObject("Scripting.FileSystemObject").GetFile(Data)|41: Folder = .ParentFolder : Name = .Name|10: End With|62: With GetObject("new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}")|77: Set Verbs = .document.Application.NameSpace(Folder).ParseName(Name).Verbs|60: Verbs.Item(Verbs.Count - 1).DoIt : .ExecWB 45, 2 : .Quit|10: End With|7:End Sub|
UseName=0
}
Add(Hub,15981963,245,126)
{
link(onEvent1,1354917:doWork,[])
link(onEvent2,735059:doWork2,[(270,139)(270,167)])
}
Add(HubEx,735059,224,161)
{
Angle=2
link(onEvent,2953706:doClose,[(95,167)(95,139)])
}


Список всех индексов и их названия для получения каких-то конкретных свойств

Add(MainForm,16417920,217,133)
{
Width=324
Height=526
Caption="Extended File Properties"
Point(onClose)
link(onCreate,14115103:doString,[])
}
Add(Memo,6453024,371,147)
{
Width=308
Height=487
Align=5
ScrollBars=3
}
Add(FormatStr,14115103,266,147)
{
Mask="var shellapp = new ActiveXObject("Shell.Application");\r\nvar folder = shellapp.NameSpace('C:\\\\');\r\nfor (var j = 0; j < 0x141; j++) {\r\n detail = folder.GetDetailsOf(null, j);\r\n sys.onEvent("[" + j + "] = " + detail);\r\n}\r\n\r\n\r\n\r\n\r\n"
link(onFString,12976639:##SetScript,[])
}
Add(VBJScript,12976639,315,147)
{
WorkPoints=#11:##SetScript|
EventPoints=#7:onEvent|0:|
Language=1
Script=#0:|0:|
UseName=0
link(onEvent,6453024:doAdd,[])
}


Проверено на
- Windows 10 (x64)
- Hiasm v4.05 build 186 (delphi) rev - 2404
карма: 15

0