Вверх ↑
Этот топик читают: Гость
Ответов: 315
Рейтинг: 1
#1: 2017-12-03 09:35:15 ЛС | профиль | цитата
Как сначала присвоить версию exe-файла, а потом реализовать чтение версии исполняемого файла? Нужно для того, чтобы реализовать обновление программы.


Add(MainForm,2953706,462,133)
{
}
Add(FileAttributes,9168128,518,196)
{
Point(Build)
Point(Release)
Point(Minor)
Point(Major)
Point(FileSize)
Point(DateModifyReal)
Point(DateAccessReal)
Point(DateCreateReal)
link(onRead,606973:doEvent1,[(610,202)(610,248)(450,248)(450,293)])
}
Add(Version,16070741,574,133)
{
Version="10.0"
}
Add(Button,4865745,378,196)
{
Left=25
Top=130
link(onClick,3076346:doExecute,[])
}
Add(Label,11919850,525,273)
{
Left=240
Top=15
link(Text,9168128:Build,[(531,251)(545,251)])
}
Add(Label,14554646,560,308)
{
Left=235
Top=40
link(Text,9168128:Release,[(566,268)(552,268)])
}
Add(Label,1439110,595,343)
{
Left=235
Top=65
link(Text,9168128:Minor,[(601,285)(559,285)])
}
Add(Label,11265946,630,378)
{
Left=235
Top=85
link(Text,9168128:Major,[(636,303)(566,303)])
}
Add(Hub,606973,462,287)
{
OutCount=5
link(onEvent1,11919850:doText,[(500,293)(500,279)])
link(onEvent2,14554646:doText,[(518,300)(518,314)])
link(onEvent3,1439110:doText,[(536,307)(536,349)])
link(onEvent4,11265946:doText,[(553,314)(553,384)])
}
Add(ODialog,3076346,455,196)
{
link(onExecute,9168128:doRead,[])
}


карма: 0

0
Ответов: 2059
Рейтинг: 132
#2: 2017-12-03 12:04:47 ЛС | профиль | цитата
установка метки, или даты exe файла

Add(MainForm,2953706,21,105)
{
Width=381
Height=118
}
Add(PEAnalysis,12460838,378,189)
{
Point(doSetDateStamp)
Point(DateStamp)
link(onCheckPEFile,14346474:doCompare,[])
link(FileName,2898232:Text,[])
}
Add(ODialog,4356894,161,182)
{
link(onExecute,3278564:doEvent1,[])
}
Add(If_else,14346474,441,189)
{
Op2=Integer(1)
link(onTrue,12460838:doGetInf,[(485,195)(485,199)(366,199)(366,202)])
}
Add(Button,11431812,77,182)
{
Left=10
Top=10
Caption="файл"
link(onClick,4356894:doExecute,[])
}
Add(DoData,6905577,294,210)
{
link(onEventData,12460838:doSetDateStamp,[])
link(Data,124643:Text,[])
}
Add(Button,2737088,203,210)
{
Left=5
Top=40
Width=90
Caption="установка даты"
link(onClick,6905577:doData,[])
}
Add(Edit,2898232,378,112)
{
Left=115
Top=10
Width=240
}
Add(Hub,3278564,252,182)
{
link(onEvent1,2898232:doText,[(339,188)(339,118)])
link(onEvent2,12460838:doCheckPEFile,[])
}
Add(Edit,124643,294,119)
{
Left=115
Top=40
Width=240
Text="12345678"
DataType=1
}

чтение/сравнение метки, или даты exe файла

Add(MainForm,5226047,224,119)
{
Height=114
}
Add(PEAnalysis,12460838,581,203)
{
Point(doSetDateStamp)
Point(DateStamp)
link(onCheckPEFile,14346474:doCompare,[])
link(FileName,2898232:Text,[])
}
Add(ODialog,4356894,364,196)
{
link(onExecute,3278564:doEvent1,[])
}
Add(If_else,14346474,644,203)
{
Op2=Integer(1)
link(onTrue,12460838:doGetInf,[(688,209)(688,213)(569,213)(569,216)])
}
Add(Button,11431812,280,196)
{
Left=10
Top=10
Caption="файл"
link(onClick,4356894:doExecute,[])
}
Add(Edit,2898232,581,126)
{
Left=115
Top=10
Width=240
}
Add(Hub,3278564,455,196)
{
OutCount=3
link(onEvent1,2898232:doText,[(542,202)(542,132)])
link(onEvent2,12460838:doCheckPEFile,[])
link(onEvent3,1485099:doText,[(525,216)(525,279)])
}
Add(Edit,1485099,581,273)
{
Left=115
Top=40
Width=235
link(Str,12460838:DateStamp,[])
}

Лучше наверное устанавливать дату со временем, только с форматами времени разберись 2A425E19h -> 20/06/1992 01:22:17 .
Редактировалось 2 раз(а), последний 2017-12-03 12:07:50
карма: 6

0
Ответов: 315
Рейтинг: 1
#3: 2017-12-03 14:55:13 ЛС | профиль | цитата
flint2, хотелось бы на стандартных компонентах, ведь, по-идеи, компонент есть, только надо уметь им пользоваться
карма: 0

0
Ответов: 2059
Рейтинг: 132
#4: 2017-12-03 15:01:34 ЛС | профиль | цитата
хотелось бы на стандартных компонентах

Не получится!
Ведь мы в РЕ COFF таблицу лезем, а все стандартные компоненты содержат код только для компиляции.
Самая первая мысль была - завести переменную в схеме для этого дела, но не прокатит.

Если делать иначе, то нужно влезать в код "компиляции" (условно sha), ̶в̶ ̶к̶о̶м̶п̶и̶л̶я̶т̶о̶р̶ ̶d̶e̶l̶p̶h̶i̶ ̶в̶л̶е̶з̶т̶ь̶ ̶н̶е̶в̶о̶з̶м̶о̶ж̶н̶о̶,(и не надо!) а ключами это не лечится в Hiasm`е. Да и на принимающей стороне всё это дело как то надо вытащить.

Редактировалось 12 раз(а), последний 2017-12-03 15:49:32
карма: 6

0
Ответов: 315
Рейтинг: 1
#5: 2017-12-03 15:58:48 ЛС | профиль | цитата
flint2, Спасибо, буду пробовать! А хотя казалось все таким элементарным, даже стыдно было спросить))

Редактировалось 1 раз(а), последний 2017-12-03 16:03:09
карма: 0

0
Ответов: 2059
Рейтинг: 132
#6: 2017-12-03 16:13:38 ЛС | профиль | цитата
По моему разумению, нет разницы, порядковый номер на рукаве ставить в Time Date Stamp, или время, - по барабану, лиж-бы было не более 8 байт.

Редактировалось 4 раз(а), последний 2017-12-03 16:25:47
карма: 6

0
Главный модератор
Ответов: 2999
Рейтинг: 396
#7: 2017-12-03 18:00:48 ЛС | профиль | цитата
http://forum.hiasm.com/post/5172
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 2059
Рейтинг: 132
#8: 2017-12-03 20:03:28 ЛС | профиль | цитата
При условии, что программа работает, вариантов может быть очень много.
карма: 6

0
Главный модератор
Ответов: 2999
Рейтинг: 396
#9: 2017-12-03 21:21:53 ЛС | профиль | цитата
flint2 писал(а):
При условии, что программа работает


Перезалил архив примера с показом версии exe-файла.

Редактировалось 1 раз(а), последний 2017-12-03 21:23:19
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 2059
Рейтинг: 132
#10: 2017-12-03 21:26:39 ЛС | профиль | цитата
Nic, спасибо.
Это понятно, что программа сама себя может посмотреть любым образом, можно через about.
Я имел ввиду другое.
Я имел ввиду, чтобы другая программа смогла посмотреть другой exe, какого года он выпуска и какой версии, не запуская его.

Редактировалось 5 раз(а), последний 2017-12-03 21:46:52
карма: 6

0
Главный модератор
Ответов: 2999
Рейтинг: 396
#11: 2017-12-03 23:16:23 ЛС | профиль | цитата
Давно придумали запускать программу с ключом -version и выводом версии в консоль.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 2059
Рейтинг: 132
#12: 2017-12-04 00:09:39 ЛС | профиль | цитата
выводом версии в консоль.
Может и так удобней, всё зависит от обстоятельств.
Project33.exe - чем плохо?

Редактировалось 1 раз(а), последний 2017-12-04 01:31:10
карма: 6

0
Ответов: 315
Рейтинг: 1
#13: 2017-12-25 17:20:45 ЛС | профиль | цитата
Всем привет) Очень много результатов поиска по интересующему вопросу, поэтому спрошу тут. Как выдернуть код делфи, который в итоге компилируется? Где он сохраняется?
карма: 0

0
Ответов: 824
Рейтинг: 138
#14: 2017-12-25 19:40:02 ЛС | профиль | цитата
В прищепке, для себя делал, может пригодится.

--- Добавлено в 2017-12-25 20:19:07

Вот пример:


Add(MainForm,2953706,105,196)
{
Width=664
Height=443
Caption="Получение информации о exe и dll (пример)"
}
Add(ChildPanel,8701111,105,126)
{
link(onEvent1,410574:doEvent1,[])
}
BEGIN_SDK
Add(EditMulti,15166621,21,21)
{
EventCount=1
VarCount=1
Width=510
link(Var1,8164532:Text,[(27,145)(391,145)])
}
Add(Panel,8317531,35,105)
{
Width=645
Height=31
Align=2
}
Add(Edit,8164532,385,105)
{
Left=185
Top=10
Width=170
Layout="lay"
WidthScale=100
Text=""
}
Add(Button,8597930,161,105)
{
Left=360
Top=10
Width=40
Layout="lay"
Caption="..."
link(onClick,9666937:doBrowse,[])
}
Add(Label,6820746,105,105)
{
Left=15
Top=15
Width=139
Height=17
Layout="lay"
Caption="Каталог с exe, dll файлами"
}
Add(HBoxLayout,2220623,245,63)
{
Name="lay"
Space=2
Padding=5
}
Add(Browse,9666937,245,105)
{
NewStyle=0
NewDirButton=1
link(onBrowse,4371632:doEvent1,[])
}
Add(Hub,4371632,308,105)
{
link(onEvent1,8164532:doText,[])
link(onEvent2,15166621:onEvent1,[(333,118)(333,27)])
}
END_SDK
Add(MTStrTbl,5683477,546,182)
{
Top=31
Width=648
Height=374
Align=5
Name="FileTable"
Columns=#4:Файл|14:Внутреннее имя|22:Оригинальное имя файла|17:Название продукта|12:Версия файла|15:Версия продукта|18:Специальная сборка|16:Приватная сборка|25:Дата последнего изменения|26:Время последнего изменения|8:Компания|8:Описание|15:Авторские права|14:Торговая марка|10:Комментари|5:Email|
}
Add(FileInfo,5537393,329,182)
{
@Color=65535
Mask="%IName;%OFName;%PName;%FVersion;%PVersion;%SBuild;%PBuild;%Date;%Time;%Company;%Descrip;%Copyr;%TMarks;%Comm;%Email"
link(onGetInfo,16495474:doStrCatDlm,[])
}
Add(FileSearch,13740813,182,133)
{
SubDir=1
link(onSearch,9539186:doCheck,[])
link(onEndSearch,14702066:doConvert,[(221,146)(221,258)])
link(Dir,8701111:Var1,[(195,117)(97,117)(97,166)(111,166)])
}
Add(RE_Check,9539186,238,133)
{
Expression=".*\.(exe|dll)"
link(onMatch,12606910:doEvent1,[])
}
Add(FilePartElm,12039275,385,133)
{
Point(Part)
}
Add(Hub,12606910,287,133)
{
link(onEvent1,12039275:doPart,[])
link(onEvent2,5537393:doGetInfo,[(319,146)(319,188)])
}
Add(StrCatDelim,16495474,385,182)
{
Delimiter=";"
link(onStrCatDlm,12243801:doAdd,[])
link(Str1,12039275:Part,[])
}
Add(StrList,12243801,476,182)
{
}
Add(Hub,410574,147,126)
{
link(onEvent1,12243801:doClear,[(172,132)(172,111)(445,111)(445,195)])
link(onEvent2,13740813:doSearch,[])
}
Add(MST_Load,11295451,546,245)
{
ColNameHeader=1
MSTControl="FileTable"
}
Add(StreamConvertor,14702066,476,252)
{
Mode=7
Point(Data)
link(onResult,11295451:doLoadFromStream,[])
link(Data,12243801:Text,[])
}
Add(StyleXP,9236774,161,196)
{
}

Редактировалось 1 раз(а), последний 2017-12-25 20:19:07
карма: 1

0
файлы: 1FileInfo.zip [3.1KB] [490]
Ответов: 315
Рейтинг: 1
#15: 2017-12-26 10:05:08 ЛС | профиль | цитата
sashaoli, Спасибо! Испробую)
карма: 0

0
15
Сообщение
...
Прикрепленные файлы
(файлы не залиты)