[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