r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[SDK]

Robert
10-Nov-2006
[869]
How can I change/get rid of the REBOL word in the title?
Maxim
10-Nov-2006
[870x3]
depends if you are in view or not.
when not in view:  (on windows)  Graham posted this a while back:

win-lib: make object! [
	
	user-lib: load/library %user32.dll

	SetWindowText: make routine! [
		handle			[integer!]
		Title			[string!]
		return:			[integer!]
	] user-lib "SetWindowTextA"
	
	set 'WindowTitle func [
		Title [string!] 
	] [
		SetWindowText get-modes system/ports/system 'window Title
	]	
]
for view windows,  there is a title field in the encap part of the 
rebol header

rebol [
	encap: [title "NOT REBOL"]
]
Henrik
1-Dec-2006
[873]
are there ways to extract version information about an encapped binary 
from REBOL? I'm building a software update tool and want to read 
the version information about a specific binary.
Maxim
1-Dec-2006
[874]
not AFAICT cause its always the same wrapper, and the content is 
encrypted, so you can't just read and parse the binary  !
Henrik
1-Dec-2006
[875]
I guess it would be possible to do a checksum and correlate that 
against a version list.
Maxim
1-Dec-2006
[876]
but for that you have to have access to the version info from the 
outside, meaning you already know it... but I guess this is not such 
an issue depending on why you want version info..
Henrik
1-Dec-2006
[877]
yes, the app and updates come from me and so I'll know which version 
it is if I just have a checksum on the executable.
Maxim
1-Dec-2006
[878x2]
if you have full control on the app sources... using a resource editor 
(on windows), you could probably edit the rebol version data included 
in the binary metadata and then there are probably os calls to get 
that natively.
this has the added benefit of being precise within the icons and 
shortcuts... and may remove the reference to REBOL within which is 
a bit annoying when you release stuff and its not labeled as per 
your output names ' :-/
Henrik
1-Dec-2006
[880]
except it has to be fully automatic...
Maxim
1-Dec-2006
[881]
on encap you mean?
Henrik
1-Dec-2006
[882]
yes, no human involvement between initiating build and finished executable 
and knowing the version
Maxim
1-Dec-2006
[883x2]
well you know the version from the source, and as you say, can resolve 
a checksum from the output bin.  but you must keep a table of all 
the builds somewhere...   I wonder if there are any commandline resource 
hackers?
which would allow you to stamp the version (maybe) within the bin 
automagically.
Gregg
1-Dec-2006
[885x4]
You need to use the API to get the version resource from a PE file. 
It might be a standard resource , but I haven't touched that in a 
long time so I can't remember.


As an aside, this feature was so requested in the VB world, years 
ago, that Desaware created a commercial product called VersionStamper 
that did just that; and they sold a lot of them.
The UpdateResource API, and others, were added to later versions 
of Windows, but I've never used them. Might not be too hard, but 
I can't say.
GetFileVersionInfo info isn't a real simple API call either. Have 
to figure a few things out in order to call it from REBOL.
Ideally, you would be able to specify version info in the encap header 
and then query it from system/options later.
Maxim
1-Dec-2006
[889]
but this is to get version info outside of the executable.
Gregg
1-Dec-2006
[890]
Ah, I missed that part. Just need to map GetFileVersionInfo then 
I guess.
Henrik
1-Dec-2006
[891]
hmm. GetFileVersionInfo would be written how? I need to control that 
through encapsulation.
Gabriele
1-Dec-2006
[892]
Henrik, if you need to do automatic update, you might want to look 
at how the detective does it, it has worked *very* well so far, and 
it can update both the exe (if you change version of the interpreter) 
and the code only (to save download time). the autoupdate library 
is bsd.
Henrik
1-Dec-2006
[893]
gabriele, sounds lovely. where would I find the library?
Graham
1-Dec-2006
[894x2]
As I understand it, the detective usually just downloads compressed, 
encrypted, signed source code and runs it.
http://detective.surfnet.nl/en/index_en.html
Gregg
1-Dec-2006
[896]
GetFileVersionInfo is in %version.dll. First you call GetFileVersionInfoSize, 
then GetFileVersionInfo (using the size you got in the GetFileVersionInfoSize 
call. Then you ca VerQueryValue for each item you want.
Graham
1-Dec-2006
[897]
Doesn't look like Maarten has released the source code on https://www.uitwisselplatform.nl/projects/detective/
Henrik
1-Dec-2006
[898]
nope, looks pretty empty.
Graham
1-Dec-2006
[899]
I might have the old sources on my drive .. let me check.
Henrik
1-Dec-2006
[900]
hmm... is enface1248031.exe really the latest enface?
Graham
1-Dec-2006
[901]
Do you want the sources from 2004 ?
Henrik
1-Dec-2006
[902]
graham, I'm really only interested in the software update parts. 
if the 2004 sources contain that, then ok
Gregg
1-Dec-2006
[903]
I'm looking at the version stuff real quick Henrik.
Graham
1-Dec-2006
[904]
there's an autoupdate.r in the zip
Henrik
1-Dec-2006
[905x2]
graham, ok, I'll have a look at that
gregg: ok :-)
Graham
1-Dec-2006
[907]
sent.
Henrik
1-Dec-2006
[908]
received. thanks.
Graham
1-Dec-2006
[909]
henrik, there's a separate download for the latest sdk .. which should 
be later than 1248031
Henrik
1-Dec-2006
[910]
I don't see it in that directory...
Graham
1-Dec-2006
[911x3]
No, it's not there.
But as I recall, you don't have the sdk anyway.
http://www.rebol.net/builds/sdk/
Henrik
1-Dec-2006
[914x2]
well, things changed a bit since last time. why do you think I post 
so much in this group all of a sudden? :-)
thanks for the link
Gabriele
2-Dec-2006
[916]
Henrik: usual place: http://www.colellachiara.com/soft/libs/autoupdate.r
Henrik
2-Dec-2006
[917x2]
gabriele, thanks. reading now.
am I right that autoupdate.r requires rebol/command?