VISTA BETA 2- ShowWindow

VISTA BETA 2- ShowWindow

Postby Otto » Wed Jul 26, 2006 6:07 pm

SW_SHOWMAXIMIZED = 3

ShowWindow(hWnd,3)

System hangs.


SW_RESTORE = 9
Works.


Regards
Otto
User avatar
Otto
 
Posts: 5998
Joined: Fri Oct 07, 2005 7:07 pm

Postby Antonio Linares » Thu Jul 27, 2006 9:31 am

Otto,

This code is properly working on Vista Beta 2 (5384):
Code: Select all  Expand view
#include "FiveWin.ch"

function Main()

   local oWnd
   
   DEFINE WINDOW oWnd TITLE "Test for Otto"
   
   ACTIVATE WINDOW oWnd MAXIMIZED
   
return nil 

MAXIMIZED uses ShowWindow(). Please provide a self contained sample to reproduce the error that you mention, thanks.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41276
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Otto » Thu Jul 27, 2006 6:20 pm

Here is my code.
Regards
Otto


func ziRechnung
LOCAL cHSTIni := ".\INI\WINHOTEL.INI"
LOCAL WIN_HOT_VER := ""
LOCAL nPos := ""
LOCAL hWnd := GetWindow( GetActiveWindow(), GHW_HWNDFIRST )
LOCAL cTask :=""
LOCAL ktowahlaufruf := 0
local cTest :=""
*--------------------------------------------


WIN_HOT_VER := GetPvProfString( "SETUPDATEN","VerzeichnisWinHotel" , "C:\WINHOT96" ,cHSTIni )
nPos := len(WIN_HOT_VER+"WHRG.EXE")


// cTest := UPPER(left(cTask,nPos))
// msginfo( cTest )



while hWnd != 0
cTask = GetModuleFileName( GetWindowWord( hWnd, GWW_HINSTANCE ) )
// msginfo( cTask )

if UPPER(left(cTask,nPos)) = UPPER(WIN_HOT_VER + "WHRG.EXE")
//msginfo("Vor show 9" + UPPER(left(cTask,nPos)))
ShowWindow(hWnd,9)
setFocus(hWnd)
SETFOREGRO(hWnd)
RETURN NIL
endif
hWnd = GetWindow( hWnd, GHW_HWNDNEXT )
end
winexec("WHRG.exe")
RETURN NIL
User avatar
Otto
 
Posts: 5998
Joined: Fri Oct 07, 2005 7:07 pm

Postby Antonio Linares » Thu Jul 27, 2006 6:33 pm

Otto,

Please provide a reduced and self contained sample. A PRG that can be copied, compiled and executed as it is with no changes. Its the only way to provide efficient tech support. Thanks.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41276
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Otto » Thu Jul 27, 2006 8:16 pm

User avatar
Otto
 
Posts: 5998
Joined: Fri Oct 07, 2005 7:07 pm

Postby Antonio Linares » Fri Jul 28, 2006 8:59 am

Otto,

Thanks. Would you mind to explain whats the purpouse of your code ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41276
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Otto » Fri Jul 28, 2006 9:23 am

If the programm is allready runnig to bring it in the foreground.
User avatar
Otto
 
Posts: 5998
Joined: Fri Oct 07, 2005 7:07 pm

Postby Antonio Linares » Fri Jul 28, 2006 12:36 pm

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41276
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Otto » Fri Jul 28, 2006 2:03 pm

BringWindowToTop(hWnd)

does not resolve the problem.

Regards
Otto
User avatar
Otto
 
Posts: 5998
Joined: Fri Oct 07, 2005 7:07 pm

Postby James Bott » Fri Jul 28, 2006 2:24 pm

Otto,

>If the programm is allready running to bring it in the foreground.

Try this:

DLL32 FUNCTION SETFOREGROUNDWINDOW( hWnd AS LONG ) AS BOOL;
PASCAL FROM "SetForegroundWindow" LIB "user32.dll"
User avatar
James Bott
 
Posts: 4840
Joined: Fri Nov 18, 2005 4:52 pm
Location: San Diego, California, USA

Postby Otto » Fri Jul 28, 2006 2:47 pm

Thank you James. I have this code in my testprg.

But does not work.
Regards
Otto
User avatar
Otto
 
Posts: 5998
Joined: Fri Oct 07, 2005 7:07 pm

Postby Badara Thiam » Sun Aug 13, 2006 8:01 am

Otto,

Try with StopUntil( <bCondition> ).

Regards,
Badara Thiam
http://www.icim.fr
User avatar
Badara Thiam
 
Posts: 160
Joined: Tue Oct 18, 2005 10:21 am
Location: France

Postby Badara Thiam » Mon Aug 14, 2006 7:50 am

I have revisited my Windows 2000 API SuperBible,
and it's appear than "ShowWindow does not make sure the window is in the foreground. Use SetWindowPos or SetActiveWindow function to bring a window to the foreground."

Also, there is LockSetForegroundWindow function who
"...disable or enables the calls to the SetForegroundWindow
function for the calling process.

By default, the system automatically enables calls to SetForegroundWindow if the user press the Alt key or takes some
action that causes the system itself to change the foreground window.
This function allows applications to prevent other applications from
making a foreground change that can interrupt its interaction with the user."

Hope this help :wink:
Badara Thiam
http://www.icim.fr
User avatar
Badara Thiam
 
Posts: 160
Joined: Tue Oct 18, 2005 10:21 am
Location: France


Return to FiveWin for CA-Clipper

Who is online

Users browsing this forum: No registered users and 1 guest