Newsgroup: it.comp.lang.visual-basic
Titolo: [?] API setWindowPlacement

Scusate.. qualcuno sa come si usa l'api setWindowPlacement?
Ciao e grazie


Hai problemi su qualche aspetto particolare, o non sai proprio da che parte
iniziare? Spiega, spiega...
Intanto ti mando la documentazione su quella funzione e relativa struttura.
--
Roal Zanazzi
z...@iol.it
The SetWindowPlacement function sets the show state and the restored,
minimized, and maximized positions of the specified window.
BOOL SetWindowPlacement(
    HWND hWnd, // handle of window
    CONST WINDOWPLACEMENT *lpwndpl  // address of structure with position
data
   );
Parameters
hWnd
Identifies the window.
lpwndpl
Points to a WINDOWPLACEMENT structure that specifies the new show state and
window positions.
Before calling SetWindowPlacement, set the length member of the
WINDOWPLACEMENT structure to sizeof(WINDOWPLACEMENT).
SetWindowPlacement fails if lpwndpl->length is not set correctly.
Return Values
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error
information, call GetLastError.
Remarks
The length member of WINDOWPLACEMENT must be set to sizeof(WINDOWPLACEMENT).
If this member is not set correctly, the function returns FALSE.
The WINDOWPLACEMENT structure contains information about the placement of a
window on the screen.
typedef struct _WINDOWPLACEMENT {     // wndpl
    UINT  length;
    UINT  flags;
    UINT  showCmd;
    POINT ptMinPosition;
    POINT ptMaxPosition;
    RECT  rcNormalPosition;
} WINDOWPLACEMENT;
Members
length
Specifies the length, in bytes, of the structure. Before calling the
GetWindowPlacement or SetWindowPlacement functions, set this member to
sizeof(WINDOWPLACEMENT).
GetWindowPlacement and SetWindowPlacement fail if this member is not set
correctly.
flags
Specifies flags that control the position of the minimized window and the
method by which the window is restored. This member can be one or both of
the following values:
Value Meaning
WPF_RESTORETOMAXIMIZED
Specifies that the restored window will be maximized, regardless of whether
it was maximized before it was minimized. This setting is only valid the
next time the window is restored. It does not change the default restoration
behavior. This flag is only valid when the SW_SHOWMINIMIZED value is
specified for the showCmd member.
WPF_SETMINPOSITION
Specifies that the coordinates of the minimized window may be specified.
This flag must be specified if the coordinates are set in the ptMinPosition
member.
showCmd
Specifies the current show state of the window. This member can be one of
the following values:
Value Meaning
SW_HIDE Hides the window and activates another window.
SW_MINIMIZE Minimizes the specified window and activates the top-level
window in the system's list.
SW_RESTORE Activates and displays a window. If the window is minimized or
maximized, Windows restores it to its original size and position (same as
SW_SHOWNORMAL).
SW_SHOW Activates a window and displays it in its current size and position.
SW_SHOWMAXIMIZED Activates a window and displays it as a maximized window.
SW_SHOWMINIMIZED Activates a window and displays it as an icon.
SW_SHOWMINNOACTIVE Displays a window as an icon. The active window remains
active.
SW_SHOWNA Displays a window in its current state. The active window remains
active.
SW_SHOWNOACTIVATE Displays a window in its most recent size and position.
The active window remains active.
SW_SHOWNORMAL Activates and displays a window. If the window is minimized or
maximized, Windows restores it to its original size and position (same as
SW_RESTORE).
ptMinPosition
Specifies the coordinates of the window's upper-left corner when the window
is minimized.
ptMaxPosition
Specifies the coordinates of the window's upper-left corner when the window
is maximized.
rcNormalPosition
Specifies the window's coordinates when the window is in the restored
position.


Non so proprio da dove partire ;_;
la tua spiegazione l'avevo già letta nella guida alle api, ma non ci ho
capito niente...  ti dico come ho fatto
<script type="text/vbscript" language="VBScript">
Type POINTAPI
        x As Long
        y As Long
End Type
Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type
Type WINDOWPLACEMENT
        Length As Long
        flags As Long
        showCmd As Long
        ptMinPosition As POINTAPI
        ptMaxPosition As POINTAPI
        rcNormalPosition As RECT
End Type
Type POINTAPI
        x As Long
        y As Long
End Type
Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type
Declare Function SetWindowPlacement Lib "user32" (ByVal hwnd As Long,
lpwndpl As WINDOWPLACEMENT) As Long
Sub window_onLoad()
    SetWindowPlacement <non so che metterci>
End Sub
</script>
Ciao

stai usando VBScript in una pagina WEB (perche' non l'hai dettoprima?), e
VBScript supporta il solo tipo Variant, diversamente da VB/VBA
perche' non spieghi qual e' il risultato che vuoi ottenere?


Voglio fare in modo che appena si carica il sito, il browser si mette a
schermo piene (Maximize)
Ciao

...

Non ho alcuna esperienza di VBScript e browsers, ma probabilmente non c'e'
bisogno di usare le API...
Forse tra i vari metodi/proprieta' disponibili in VBScript c'e' qualcosa che
fa cio' che ti serve (non ne ho idea, sto solo ipotizzando).
--
Roal Zanazzi
z...@iol.it


Purtroppo non esiste nessun metodo per massimizzare la finestra del browser,
ma a questo punto non è più questione di VBScript... vorrei solo sapere come
funziona quell'api. Mi creo una variabile di tipo WINDOWSPLACEMENT e la
passo come secondo parametro alla funzione. Quello che non so è cosa devo
mettere nelle proprietà di questa variabile e soprattutto alla proprietà
lenght. ;_;
Ciao

...

Scusa, potevi anche dirlo che non sai l'Inglese...
Traduco in Italiota (ehm, italiano ;-) dall'help della API:
La struttura WINDOWPLACEMENT contiene informazioni sul posizionamento di una
finestra (window) sullo schermo.
typedef struct _WINDOWPLACEMENT {     // wndpl
    UINT  length;
    UINT  flags;
    UINT  showCmd;
    POINT ptMinPosition;
    POINT ptMaxPosition;
    RECT  rcNormalPosition;
} WINDOWPLACEMENT;
Membri:
length
Specifica la lunghezza, in bytes, della struttura. Prima di chiamare le
funzioni
GetWindowPlacement o SetWindowPlacement, impostare questo membro a
Len(<tua_variabile_di_tipo_WINDOWPLACEMENT>).
flags
Specifica i flags che controllano la posizione della finestra quando e'
minimizzata (ridotta a icona) ed il metodo con il quale la finestra viene
ripristinata. Questo membro puo' essere uno o entrambi questi valori:
WPF_RESTORETOMAXIMIZED
Specifica che la finestra verra' ripristinata come massimizzata, in
qualsiasi caso (anche se non era massimizzata prima di essere ridotta a
icona). Questo settaggio e' valido solo per la prima volta che la finestra
viene ripristinata, non e' un cambiamento permanente. Questo flag e' valido
solo se e' stato specificato il valore SW_SHOWMINIMIZED per il membro
showCmd.
WPF_SETMINPOSITION
Specifica che si stanno specificando le coordinate della finestra ridotta ad
icona.
Le coordinate sono impostate nel membro ptMinPosition.
showCmd
Specifica lo stato corrente della finestra. Puo' avere i seguenti valori
(ndr: sono gli stessi della funzione API ShowWindow()):
Value Meaning
SW_HIDE Hides the window and activates another window.
SW_MINIMIZE Minimizes the specified window and activates the top-level
window in the system's list.
SW_RESTORE Activates and displays a window. If the window is minimized or
maximized, Windows restores it to its original size and position (same as
SW_SHOWNORMAL).
SW_SHOW Activates a window and displays it in its current size and position.
SW_SHOWMAXIMIZED Activates a window and displays it as a maximized window.
SW_SHOWMINIMIZED Activates a window and displays it as an icon.
SW_SHOWMINNOACTIVE Displays a window as an icon. The active window remains
active.
SW_SHOWNA Displays a window in its current state. The active window remains
active.
SW_SHOWNOACTIVATE Displays a window in its most recent size and position.
The active window remains active.
SW_SHOWNORMAL Activates and displays a window. If the window is minimized or
maximized, Windows restores it to its original size and position (same as
SW_RESTORE).
ptMinPosition
Specifica le coordinate dell'angolo in alto a sinistra della finestra
(icona) quando la finestra e' ridotta a icona.
ptMaxPosition
Specifica le coordinate dell'angolo in alto a sinistra della finestra
(icona) quando la finestra e' massimizzata.
rcNormalPosition
Specifica le coordinate della finestra quando e' normale (non massimizzata
ne' ridotta a icona).
Quello che dovrebbe servirti (per massimizzare una finestra di cui hai
l'handle, hWnd) e':
tua_variabile_WINDOWPLACEMENT.Length = _
Len(<tua_variabile_WINDOWPLACEMENT>)tua_variabile_WINDOWPLACEMENT.ShowCmd =
SW_SHOWMAXIMIZED
E ora, per farti impazzire un po' (dopo che mi hai fatto tradurre tutto ;-)
ti diro' che e' moolto piu' semplice usare l'API ShowWindow() cosi':
ShowWindow(hWnd, SW_MAXIMIZE)
Che ne dici?
Ora mi dirai... ma come faccio a trovare l'hWnd della finestra del browser?
E io mi metto a piangere :°-(
E poi ti rispondo... altra API:
GetForegroundWindow() As Long '<- hWnd !!! :-)
--
Roal Zanazzi
z...@iol.it


O_O e i per trovarmi l'hWnd avevo fatto un artificio che non ti dico.. anzi
te lo dico:
    Dim title As String
    title = "Sono io"
    Dim nome As String
    Dim conta As Integer
    Dim ciao As WINDOWPLACEMENT
    ciao.Length = Len(ciao)
    ciao.showCmd = SW_SHOWMAXIMIZED
    nome = Space(256)
    For conta = 0 To 5000
        DoEvents
        GetWindowText conta, nome, Len(nome)
        If InStr(1, nome, title) >= 1 Then
            Exit Sub
        End If
    Next conta
    SetWindowPlacement conta, ciao
Però se lo metto in una pagina non funziona ;___; tu l'hai provato?
Ciao e grazie

Però se lo metto in una pagina non funziona ;___; tu l'hai provato?
Non funziona cosa? Il tuo codice o la GetForegroundWindow()?
Comunque, non ho mai usato VBScript (a proposito, sarebbe meglio che tu
mettessi nel subject "[VBSCRIPT]...", come consigliato dal Manifesto del
NG).
--
Roal Zanazzi
z...@iol.it

NG).
Certo, scusa!
Sayoonara ^_^

signori, per questa volta vi e' andata bene! :-(
Io non mi tiro indietro. Ho detto che ti offriro' un moito e lo faro'.
(scusate l'OT)
Ciao
By -MES-   Maronese Ettore
http://ilmes.freeweb.org
(con OCX per stampare i recordset)
Sito Comune di programmatori Visual Basic
http://www.murialdo.it/it_lang_vb

se si vuole continuare ;__;
E vorrei ben vedere... usando le API hai potenzialmente a disposizione
QUALSIASI possibilita'.
Comunque mi sembra strano che non ci sia un altro sistema piu' semplice per
massimizzare la finestra del browser... boh?!
Rispondo anche a Ettore... Cos'e' un MOITO? si beve? si mangia? mi mangia?



Perché tu ti stupisci ancora? Io ci ho rinunciato...
Ciao ^_^


Primo, non stai rompendo le scatole, visto che i news servono a questo ^_^
Io non credo che si possa fare nemmeno in javascript.... non intendo portare
il browser alla larghezza e all'altezza del monitor, ma voglio proprio
massimizzarlo, in modo che i bordini scompaiono ^_^
Se però riesci a trovare il modo manda pure... grazie
Ciao


[.......]
Ma in questo modo porti solo la finestra ad avere le dimensioni dello
schermo.... però lo stato è normal, non maximized.... a me serve proprio il
maximized..... ^_^ no no in jscript non si può fare.... fidati...
Ciao ^_^