powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / PowerBuilder9 и Version проекта
8 сообщений из 8, страница 1 из 1
PowerBuilder9 и Version проекта
    #32276998
Georg@Murka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hi, All

Обнаружена в PB9 возможность вносить информацию о версии проекта (правда в Internal name все равно продолжает лепить PB9, но это все равно лучше чем то что было) Кто может подсказать как получить информацию о версии и тд силами билдера??
...
Рейтинг: 0 / 0
PowerBuilder9 и Version проекта
    #32278877
Sergey Rijkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно поподробнее. О какой версии ты говоришь

GetContextService("ContextInformation", ci)
А дальше через контекст (GetFixesVersion итд), не то ?

-------------
Сергей Рыжков
http://pbl.narod.ru (PowerBuilder + Oracle)
...
Рейтинг: 0 / 0
PowerBuilder9 и Version проекта
    #32279052
Georg@Murka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
по поводу GetFixesVersion и тд скажу, что если внимательнее читать хелп то можно вычитать "Returns the fix level for the current PowerBuilder execution context" Версия проекта и версия компилера по смыслу немного отличаются.

теперь подробнее:
PowerBuilder Version 9.0 Build 5507

открываю Project, в разделе Version заполняю необходимые пункты
дальше в одном из окон на событие типа нажатия кнопки делаю:

ContextInformation ci
String version, nm, Company, HostObject, ShortName
int FixesVersion,MajorVersion,MinorVersion
this.GetContextService("ContextInformation", ci)

ci.GetCompanyName(Company)
ci.GetFixesVersion(FixesVersion)
ci.GetMajorVersion(MajorVersion)
ci.GetMinorVersion(MinorVersion)
ci.GetName(nm)
ci.GetShortName(ShortName)
ci.GetVersionName(version)
messagebox("info","Company="+Company+"~n"+"FixesVersion="+String(FixesVersion)+"~n" &
+"HostObject="+HostObject+"~n"+"MajorVersion="+String(MajorVersion)+"~n"+"MinorVersion="+String(MinorVersion)+"~n"+"Name="+nm+"~n"&
+"ShortName="+ShortName+"~n"+"Version="+version)

в результате получаю:
Company=Sybase, Inc.
FixedVersion=0
HostObject=
MajorVersion=9
MinorVersion=0
Name=PowerBuilder Runtime
ShortName=PBRun
Version=9.0.0

что и требовалось доказать.

Не катит этот вариант!
...
Рейтинг: 0 / 0
PowerBuilder9 и Version проекта
    #32279077
Georg@Murka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
конкретизируем вопрос методом аналогий:
есть ли в PowerBuilder функция аналогичная функции GetFileVersionInfo в Delphi?
...
Рейтинг: 0 / 0
PowerBuilder9 и Version проекта
    #32279275
Sergey Rijkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
по поводу GetFixesVersion и тд скажу, что если внимательнее читать хелп то можно вычитать "Returns the fix level for the current PowerBuilder execution context" Версия проекта и версия компилера по смыслу немного отличаются.
Собственно это я и хотел уточнить

конкретизируем вопрос методом аналогий:
есть ли в PowerBuilder функция аналогичная функции GetFileVersionInfo в Delphi?
А при чем тут дельфи, может подойдет так

Автор: Николай Шушкин !!!

[external function]
FUNCTION integer GetFileVersionInfoA &
( REF string lpFilename, REF ulong lpdwHandle, ulong dwLen, REF string lpData ) &
LIBRARY "version.dll"

[pb script]


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
ulong  					dwHandle, dwLength
string 					ls_Buff, ls_key
integer 					li_rc
long   					ll_pointer
uint   					lui_length

dwLength = GetFileVersionInfoSizeA( as_filename, dwHandle )
IF dwLength <=  0  THEN
   return - 1 
END IF

ls_Buff = Space( dwLength )
li_rc = GetFileVersionInfoA( as_filename, dwHandle, dwLength, ls_Buff )
IF li_rc =  0  THEN
   return - 2 
END IF

ls_key =  "\StringFileInfo\040904e4\FileVersion" 
IF NOT VerQueryValueA( ls_buff, ls_key, ll_pointer, lui_length ) OR lui_length <=  0  THEN
   return - 3 
ELSE
   as_versioninfo = String(ll_pointer,  "address" )
END IF

return  1 


Ну и дальше парсишь

-------------
Сергей Рыжков
http://pbl.narod.ru (PowerBuilder + Oracle)
...
Рейтинг: 0 / 0
PowerBuilder9 и Version проекта
    #32279580
Georg@Murka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
возник вопрос:
как объявлять VerQueryValueA??

BOOL VerQueryValue(

const LPVOID pBlock, // address of buffer for version resource
LPTSTR lpSubBlock, // address of value to retrieve
LPVOID *lplpBuffer, // address of buffer for version pointer
PUINT puLen // address of version-value length buffer
);
...
Рейтинг: 0 / 0
PowerBuilder9 и Version проекта
    #32279602
Sergey Rijkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сорри, забыл

Код: plaintext
1.
2.
3.
4.
FUNCTION ulong GetFileVersionInfoSizeA ( REF string lpFilename, REF ulong lpdwHandle ) LIBRARY  "version.dll" 
   
FUNCTION integer GetFileVersionInfoA ( REF string lpFilename, REF ulong lpdwHandle, ulong dwLen, REF string lpData ) LIBRARY  "version.dll" 
   
FUNCTION boolean VerQueryValueA ( REF string lpBlock, string lpSubBlock, REF long lpBuffer, REF uint puLen )  LIBRARY  "version.dll"  


-------------
Сергей Рыжков
http://pbl.narod.ru (PowerBuilder + Oracle)
...
Рейтинг: 0 / 0
PowerBuilder9 и Version проекта
    #32279693
Georg@Murka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Болшое спасибо за помошь. Все заработало

С уважением, Юрий
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / PowerBuilder9 и Version проекта
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]