PRINCIPALE > LISTA DELLE AREE DI DISCUSSIONE > VISUAL BASIC: DOMANDE GENERALI > MESSAGGIO

Eseguire una ricerca veloce nell' archivio delle risorse di Visual Basic Italia®: 

Preso dall'archivio...

Premere il pulsante sotto per accedere direttamente ad un articolo o ad un esempio preso in modo casuale dall'archivio.

Ultimo e-book pubblicato:

"INTRODUZIONE AI CSS"

Lo scopo del CSS language è quello di controllare lo stile dei vari elementi che concorrono a formare un
documento HTML.
Si può operare in tre modi collegamento ad un foglio di stile esterno;definizione degli stili all'inizio
del documento utilizzo della proprietà style all'interno di un Tag HTML (embedded style). Questo e-book introduttivo
servirà per apprendere tali nozioni fondametali dei fogli di stile.


Prezzo: € 0.0.

Presentazione:
REAL SOFTWARE RILASCIA LA VERSIONE 5.0 di REALbasic per Windows






Gorizia, 5 maggio 2003 - Active, distributore in esclusiva di REALSoftware, Austin, Tx, annuncia la disponibilità di REALbasic 5.0 per Windows, uno strumento per lo sviluppo semplice da usare che permette agli utenti Windows di tutti i livelli di creare applicazioni personalizzate e di compilarle sia per la piattaforma Windows che per quella Macintosh.
[>>]

http://www.active-software.com

Contatti. Utilizzare l'email generica per domande relative al sito:
Porre domande relative al sito
oppure scrivere ad un responsabile di area.
Responsabile del sito: >Andrea Martelli
Responsabile area "Corso di VB":
> Giorgio Abraini

Messaggio



intercettare spegnimento xp (Wm_queryendsession)
tom 04/11/2004
Difficoltà: Medio

ho trovato questo codice per intercettare la chiusura della sessione, lho
provato in vb , e funziona egregiamnete.

ora pero' vorrei capire bene come funziona, qualcuno sarebbe cosi gentile da
spiegarmelo?




Attribute VB_Name = "Module1"
Public Const GWL_WNDPROC = (-4)
Public Const WM_ENDSESSION = &H16
Public Const WM_QUERYENDSESSION = &H11
Public WndProc As Long

Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal
lpPrevWndFunc As Long, Byval hwnd As Long, Byval Msg As Long, Byval wParam
As Long, Byval lParam As Long) As Long
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal
hwnd As Long, Byval nIndex As Long, Byval dwNewLong As Long) As Long


'call this from your form
Public Sub Hook(Lwnd As Long)
Dim uProcess As Long
WndProc = SetWindowLong(Lwnd, GWL_WNDPROC, Addressof WindowProc)
End Sub

Public Function WindowProc(ByVal hw As Long, Byval uMsg As Long, Byval
wParam As Long, Byval lParam As Long) As Long
If uMsg = WM_QUERYENDSESSION Then
'MsgBox "hw:" + CStr(hw) + " uMsg:" + CStr(uMsg) + " wParam:" + CStr(wParam)
WindowProc = False 'send don't shut down
'run code Do what you want, Then call ExitWindowsEx etc up to you
MsgBox ("prova1")


Exit Function

ElseIf uMsg = WM_ENDSESSION Then
'MsgBox "hw:" + CStr(hw) + " uMsg:" + CStr(uMsg) + " wParam:" + CStr(wParam)
WindowProc = False


Dim SourceFile, DestinationFile



Dim inputfile As String, outputfile As String

inputfile = xxxxxxxxxxxxx
outputfile = xxxxxxxxxxxxxx


FileCopy inputfile, outputfile


Kill inputfile

MsgBox ("ho copiato il file,controlla - ora possochiudere il sistema")


spegni = Shell("c:\windows\system32\shutdown.exe")

'run code
Exit Function
End If
WindowProc = CallWindowProc(WndProc, hw, uMsg, wParam, lParam)
End Function



in particolare non capisco bene la differena tre wm_queryendsession e
wm_endsession

come mai il codice fa un confronto con tutti e due?


quali sono i valori corretti che assume wm_queryendsession e wm_endsession
per capire se e' una chiusura sistema o un logoff?




grazie mille


 

 

 

 

 
R: no scusa non ci siamo capiti, l osapevo la storia del ... tom
05/11/2004
R: Non e' facile spiegarlo in un messaggio ! Il codice s ... oregon
04/11/2004