[wpkg-users] Vista and WPKG

Rainer Meier r.meier at wpkg.org
Tue May 20 11:08:27 CEST 2008


Hi Frank,

Dr. Frank Lee wrote:
> I've got a few Vista machines to support now, alas, so I've been giving 
> some thought to how to get some information about what WPKG is doing to 
> the users. This mail is me "thinking aloud" so that people get a chance to 
> direct my efforts - or maybe offer assistance!

I am maintaining XP and Vista clients too. That's why I made some 
enhancements for full Vista and also 64-bit support in wpkg.js.


> The current WPKG client uses winlogon hooks to display its user message. 
> These hooks have been removed from Vista so we need to use a different 
> method. So far I've coded up a proof-of-concept executable which uses the 
> WTSSendMessage API to put a message on the session attached to the 
> physical console of the system (works under Vista Enterprise and XP Pro).

You're right - I never tried the "logon delay" feature on Vista. So you 
say I don't have to try ;-)
In fact I don't like the logon delay feature so much as I do not want to 
keep users waiting. I am installing the package in background while the 
user logs on. My experience is that WPKG finishes its work (even when 
some smaller packages are installed) before the user actually gets the 
chance to run some applications.
And even if the user already started applications - in worst case 
installation fails and it will be re-tried on next start until it 
succeeds. Some (most?) installers can also handler the case when the 
application is currently running. Either by closing it or by scheduling 
file replacements for next windows start.


> I'm using named pipes to communicate - the intention is that wpkg.js will 
> be able to send information down the named pipe to communicate to the 
> user. WTSSendMessage just displays a message box to the user with at least 
> an "OK" button, so what I think I need to do is have a thread monitoring 
> whether the user has dismissed the message box or whether the message 
> box has timed-out, and immediately produce another one with the latest 
> message. Another thread will monitor the named pipe and put the latest 
> message into a buffer for display. (That's today's job!)

As already outlined when we discussed about displaying some progress 
information when using logon delay: I did not find a way to use named 
pipes by JScript. There seems to be no way as it is impossible to open a 
named pipe by JScript. That's why WPKG 1.1 is writing status information 
to STDOUT in order to allow re-directing of STDOUT and parsing its 
output. That's currently the most reliable way I was able to figure out.

Well if we find a better way it might be quite simple to implement. 
Current WPKG architecture would allow to exchange the STDOUT printing 
with any output module. But remember, it needs to be very reliable and 
stable - I will not accept proposals which require "hacks" or external 
programs or other unreliable and complicated work-arounds as I consider 
this feature to be much less important than stability.


> I think this means that there's no guarantee that the message from WPKG 
> will actually get seen by the user (message A might get displayed, message 
> B might be over-written by message C while message A is displayed, then 
> message C is displayed) but perhaps offers some information about what is 
> going on.

I am quite sure a thread could pick up the messages fast enough. However 
named pipes might not work - see above. Capturing WPKG STDOUT to a 
buffer might work better.


br,
Rainer



More information about the wpkg-users mailing list