Вверх ↑
Ответов: 759
Рейтинг: 165
#1: 2024-07-17 15:56:13 ЛС | профиль | цитата
Чтение версии (ProductVersion) компонента Version из самой программы
1.Вариант VBJScript

Add(Version,3197922,322,126)
{
Version="123.456.789"
Description="Моя тестовая программа"
AddHint(85,-19,75,13,Version)
}
Add(MainForm,14681279,161,182)
{
Width=414
Height=202
Caption="Version"
link(onCreate,8685428:doWork,[])
}
Add(Memo,7717528,322,196)
{
Width=398
Height=163
Align=5
Font=[Consolas,20,0,0,204]
ScrollBars=3
}
Add(Application,9986502,217,147)
{
}
Add(VBJScript,8685428,217,196)
{
WorkPoints=#6:doWork|
EventPoints=#7:onEvent|
DataPoints=#8:filename|
Script=#23:Sub doWork(Data, Index)|133:sys.onEvent CreateObject("Shell.Application").Namespace(0).ParseName(sys.filename).ExtendedProperty("System.Software.ProductVersion")|7:End Sub|
UseName=0
link(onEvent,5856165:doEvent1,[])
link(filename,9986502:AppFileName,[])
}
Add(Hub,5856165,280,196)
{
link(onEvent1,7717528:doAdd,[])
link(onEvent2,6875291:doString,[(305,209)(305,258)])
}
Add(FormatStr,6875291,322,252)
{
Mask="Version - %1"
link(onFString,14681279:doCaption,[(371,258)(371,299)(151,299)(151,188)])
}

2.Вариант Powershell

Add(Version,3197922,350,133)
{
Version="987.654.321"
Description="Моя тестовая программа"
AddHint(85,-19,75,13,Version)
}
Add(MainForm,14681279,126,189)
{
Width=414
Height=202
Caption="Version"
link(onCreate,2145135:doString,[])
}
Add(Memo,7717528,350,203)
{
Width=398
Height=163
Align=5
Font=[Consolas,20,0,0,204]
ScrollBars=3
}
Add(Application,9986502,189,154)
{
}
Add(Hub,5856165,308,203)
{
link(onEvent1,7717528:doAdd,[])
link(onEvent2,6875291:doString,[(333,216)(333,265)])
}
Add(FormatStr,6875291,350,259)
{
Mask="Version - %1"
link(onFString,14681279:doCaption,[(392,265)(392,317)(116,317)(116,195)])
}
Add(FormatStr,2145135,189,203)
{
DataCount=1
Mask="((Get-Item '%1').VersionInfo).ProductVersion"
link(onFString,10162556:doConsoleExec,[])
link(Str1,9986502:AppFileName,[])
}
Add(WinExec,10162556,245,189)
{
FileName="powershell"
Mode=0
Action="runas"
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
link(onConsoleResult,5856165:doEvent1,[])
}

3.Вариант Стандартные компоненты

Add(MainForm,2953706,77,140)
{
link(onCreate,1196495:doEvent1,[])
}
Add(Memo,8673971,490,196)
{
Left=550
Top=160
Align=5
Font=[MS Sans Serif,12,0,0,1]
ScrollBars=3
}
Add(FileStream,3596279,154,154)
{
Point(doPosition)
link(onLoad,11044859:doConvert,[])
link(FileName,4704021:AppFileName,[])
}
Add(StreamConvertor,11044859,203,154)
{
link(onResult,10547939:doSearch,[])
}
Add(Hub,1196495,119,154)
{
link(onEvent1,3596279:doOpen,[])
link(onEvent2,3596279:doClose,[])
}
Add(BlockFind,10547939,252,154)
{
IncludeBlock=1
StartBlock="500072006F006400750063007400560065007200730069006F006E000000"
EndBlock="000000"
Point(doStartBlock)
link(onSearch,16595443:doConvert,[])
}
Add(StreamConvertor,16595443,301,154)
{
Mode=1
link(onResult,12853486:doConvert,[])
}
Add(Charset,15901636,399,154)
{
Type=9
link(onCharset,4812633:doEvent1,[])
}
Add(StreamConvertor,12853486,350,154)
{
Mode=6
link(onResult,15901636:doCharset,[])
}
Add(Version,13400622,245,84)
{
Version="111.222.333"
AddHint(70,-30,75,13,Version)
}
Add(Application,4704021,154,105)
{
}
Add(Hub,4812633,448,154)
{
link(onEvent1,1199672:doString,[])
link(onEvent2,8673971:doAdd,[(480,167)(480,202)])
}
Add(FormatStr,1199672,490,154)
{
DataCount=1
Mask="ProductVersion - %1"
link(onFString,10823412:In,[])
}
Add(LineBreak,16212590,28,140)
{
link(Out,2953706:doCaption,[])
Primary=[10823412,504,14]
}

Можно изменить версию любым редактором ресурсов в скомпилированных программах и убедится, что всё работает.
Пример изменения версии программы в Hiasm.

Add(MainForm,8697800,35,154)
{
link(onCreate,4071763:doEvent1,[])
}
Add(FileStream,3596279,231,182)
{
Point(doPosition)
link(onLoad,11044859:doConvert,[])
link(FileName,4704021:AppFileName,[(237,173)(223,173)(223,299)(244,299)])
}
Add(StreamConvertor,11044859,280,182)
{
link(onResult,10547939:doSearch,[])
}
Add(BlockFind,10547939,399,182)
{
IncludeBlock=1
Delete=0
StartBlock="500072006F006400750063007400560065007200730069006F006E000000"
EndBlock="0000"
Point(doReplaceStr)
link(onEndSearch,16595443:doConvert,[])
}
Add(StreamConvertor,16595443,448,189)
{
Mode=1
link(onResult,9609342:doCopyFromStream,[])
}
Add(Version,13400622,161,56)
{
Version="111.222.333"
Description="Hi HiAsm"
InternalName="Моя программа на HiAsm"
E-mail="aaa@bbb.ccc"
AddHint(70,-30,75,13,Version)
}
Add(Application,4704021,238,259)
{
}
Add(FileStream,9609342,511,175)
{
Mode=1
AutoCopy=0
Point(doCopyFromStream)
link(FileName,4265297:Var2,[])
}
Add(ODialog,4485907,84,133)
{
Filter="exe|*.exe|All|*.*"
}
Add(VisualStrings,5600990,231,84)
{
Lines=#11:333.222.111|
Width=88
}
Add(Charset,8196451,231,133)
{
Type=10
link(onCharset,7451832:doConvert,[])
link(Text,5600990:Text,[])
}
Add(StreamConvertor,7451832,280,133)
{
Mode=2
link(onResult,2244579:doDelete,[])
}
Add(Hub,4071763,133,168)
{
OutCount=6
link(onEvent1,1672175:doDelete,[(158,174)(158,153)])
link(onEvent2,8196451:doCharset,[(214,181)(214,139)])
link(onEvent3,3596279:doOpen,[])
link(onEvent4,3596279:doClose,[])
link(onEvent5,1354917:doWork,[(214,202)(214,223)])
link(onEvent6,8697800:doClose,[(158,209)(158,223)(25,223)(25,181)])
}
Add(FileTools,1672175,168,133)
{
FileName="test.exe"
link(FileName,4265297:Var1,[(174,117)])
}
Add(Delete,2244579,329,133)
{
Count=2
Direction=1
link(onDelete,10547939:doReplaceStr,[(368,139)(368,195)])
}
Add(VBJScript,1354917,546,217)
{
WorkPoints=#6:doWork|
DataPoints=#8:filename|
Script=#22:Sub doWork(Data,Index)|71: With CreateObject("Scripting.FileSystemObject").GetFile(sys.filename)|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
link(filename,4265297:Var3,[(552,117)])
}
Add(VisualStrings,5490968,511,77)
{
Lines=#20:modified_version.exe|
Width=123
}
Add(GetDataEx,4265297,511,112)
{
link(Data,5490968:Text,[])
}

карма: 15

0