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 |