[wpkg-users] Registry Status Message

Michael J. Kidd wpkg at linuxkidd.com
Tue Jan 23 20:37:49 CET 2007

I have 2 requests for the WPKG Project ( ok.. there's more than that,
but here's the most pressing! :) )

My desire is for the WPKG Installer to delay logon as long as the
WPKG.js process is still running.. Not just X configurable minutes (
maybe an option to do either is in order ).  And, I would love it if the
User message that's displayed has feedback on what WPKG.js is currently
doing ( along with how long it's been doing it ).

My solution:
The delay dilemma  can be addressed by watching the
HKLM\Software\WPKG\running Registry Key ( already supplied by WPKG.js ).
The feedback could be address by adding a new key to the WPKG.js
proccess.. ( I propose HKLM\Software\WPKG\current ).

The timer could be easily managed by adding a time since last change
variable in the WPKG Installer code, and output that every second to the
status screen it displays.  Suggesting a 'previous_message' comparison
to 'current_message' and then resetting the timer when those two don't
match, as well as updating the status message when they change to
reflect the new task.

I've done the easy part... I added the registry key code to wpkg.js.
But, I've gotta admit.. my Win32 C++ skills are a lil rusty..  Would
greatly appreciate the WPKG-Installer maintainer adapting the code to
accommodate this request before I dig out some C++ reference material
and hack it up.. :)

Michael J. Kidd

Patch against 0.9.10 version of wpkg.js follows:

--- wpkg-orig.js        2007-01-23 14:17:29.000000000 -0500
+++ wpkg.js     2007-01-23 14:22:52.000000000 -0500
@@ -147,6 +147,7 @@
var sRegPath = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall";
// here we indicate our running state
var sRegWPKG_Running = "HKLM\\Software\\WPKG\\running";
+var sRegWPKG_Current = "HKLM\\Software\\WPKG\\current";

@@ -973,6 +974,18 @@
     return val;

+function setCurrentState(statename) {
+    var WshShell = new ActiveXObject("WScript.Shell");
+    var val;
+    try {
+        val = WshShell.RegWrite(sRegWPKG_Current, statename);
+    } catch (e) {
+        val = null;
+    }
+    return val;

  * Scans uninstall list for given name.
@@ -2291,6 +2304,7 @@
  * Logs or presents an info message depending on interactivity.
function info(message) {
+    setCurrentState(message);
     if (quiet) {
         log(4, message);
     } else {

wpkg-users mailing list
wpkg-users at lists.wpkg.org

More information about the wpkg-users mailing list