Hi Karen,

thank you for your contribution. It is really helpful for me.

I have a question:
Can it be that PowerPro ignores ConsoleWindows?
I'd like to make PP set a console window topmost whenever one opens 
but PP doesnt get a notification when a console window opens.
Or do I missed something?

Cheers,
Mark

--- In [email protected], miinx <[EMAIL PROTECTED]> wrote:
>
> Howdy list,
> 
> As mentioned, some tips for using HookWindowEvents.  These are not 
> actually my tips, but things from the archives & the PowerPro Help 
manual.
> 
> 
> == 1. ======================
> The first is from Ted Wall -- and it is a godsend for when you are 
> working on a hook script, enabling you to easily stop the script 
should 
> get stuck in an error loop, as well as see what values the args 
are 
> taking on for each window event.
> 
> Ted's original message is here:  
> http://article.gmane.org/gmane.comp.windows.power-pro/16503
> 
> Stick the following at the start of your hook script:
> ;----------
> if (not bHookOn) do
>     quit
> elseif (bHookOn==2)
>     win.debug(           ;;+
>       "arg(1)="++arg(1), ;;+
>       "arg(2)="++arg(2), ;;+
>       "arg(3)="++arg(3), ;;+
>       "arg(4)="++arg(4))
>     quit
> endif
> ;----------
> 
> Then create a hotkey (I use Win+space) with the following as the 
command:
>    bHookOn=ifelse(bHookOn==0,1,ifelse(bHookOn==1,2,0))
> 
> And finally, set a Scheduler event for Start up to run the 
following:
>    global bHookOn = 1
> 
> Now, you can cycle through 3 bHookOn states, where if:
>   bHookOn=1, your hook script will be called for each window event
>   bHookOn=2, arg values will be output to the debugger &
>              hook script is not run
>   bHookOn=0, hooks are off
> 
> 
> 
> == 2. ======================
> Make use of the "Quit" statement throughout your script, so that 
> PowerPro doesn't continue processing it after your window event 
has been 
> processed.  Place a Quit statement at the end of each section, 
before 
> the "endif".
> 
> e.g.  (from my own hook script)
> 
> ;-- -- -- -- -- -- -- -- -- -- -- --
> ; Check for ashQuick closing & if xplorer2's
> ; console2 is open, close that too
> ;-- -- - -- -- -- -- -- -- -- -- --
> if (arg(1)==4 && arg(4)=="avast! Quick Scanner") do
>     window.close_("console*")
>     quit
> endif
> 
> ;-- -- - -- -- -- -- -- -- -- -- --
> ; an empty example of another section
> ;-- -- - -- -- -- -- -- -- -- -- --
> if (arg(1)==3 && arg(4)=="*Firefox") do
>     ; do stuff
>     quit
> endif
> 
> Notice the "quit" 's before the close of each "section" there.
> 
> 
> 
> == 3. ======================
> Once you've saved your hook script, create a PowerPro note with 
the 
> following information:
> 
> ----------------------
> FileHook(arg(1), arg(2), arg(3), arg(4))
> ----------------------
> THE ARGUMENTS
>   arg(1) - integer event number from below
>   arg(2) - the window handle
>   arg(3) - the window class
>   arg(4) - the window caption
>          arbitrary when window first created: arg(1) = 3
> 
> ----------------------
> ARG(1) VALUES
>   0 = A moving or sizing operation is completed using the GUI
>   1 = A window is maximized or restored to normal using the GUI
>   2 = A window is minimized using the GUI.
>   3 = A new window is created.
>   4 = A window is destroyed.
>   5 = A window is activated (i.e. given focus)
> ----------------------
> 
> Set the category of the note to "!captionlist" where captionlist 
matches 
> your hook script file when you're editing it.  Use a + instead of 
an * 
> for the caption wildcard.
> 
> So, mine is: "!+FileHook.powerpro - metapad"  which has a wildcard 
in 
> 2nd spot there to cover times when I'm actually editing the file & 
> metapad puts an asterisk in the window caption to indicate such.
> 
> Now, whenever you open your hook script, PowerPro will open your 
helper 
> note, too.
> 
> See "PowerPro Help CHM > Built-in Commands > *Note > *Note Command 
> 
> Showing Notes when specified programs or documents are active" for 
more 
> info on this great PowerPro feature.
> 
> 
> 
> == 4. ======================
> Ok, this last one actually is my own tip.  Not a great tip, but a 
tip, 
> nonetheless.
> 
> I like to grab the window's exe name at each event for use in 
subsequent 
> arg() comparisons, so I define a global variable, exe, at PowerPro 
> startup that I then set each time my hook script is called, with 
the 
> following line at the start:
> 
>    exe = win.exename(arg(2))
> 
> I also include that in my debug output from Ted's script in tip 1, 
too.
> 
> 
> 
> And that's it!  Hope they help someone.  :)
> 
> Cheers
> Karen
>


Reply via email to