Newsgroup: it.comp.lang.visual-basic
Titolo: [VB5Sp3 + WIN98] Come impedire chiusura

Scusate il doppio posting ma me ne sono dimenticato prima...
ho guardato la guida ma è un po' nebulosa....
Come avrete ormai già capito devo evitare che qualcuno possa volontariamente
o involontariamente chiudere il mio porog (o meglio lo possa chiudere solo
con la pressione di un determinato bottone
Coma posso fare quinid per:
- Disabilitare la X
- Disabilitare CTR+ALT+CANC
- Disabilitare ALT+F4
(devo usare gli hook di sistema sulla tastiera?)
Che altro potrebbe permettere di chiuderlo?
Grazie
Rivi
ri...@rocketmail.com

...

-------------
Ciao!
Per i primi due punti, puoi trovare qualcosa sul sito comune dei
programmatori VB, 
http://members.xoom.com/it_lang_vb
. Per disabilitare la
combinazione di tasti ALT+F4, dai un'occhiata a questo codice:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    If UnloadMode = vbFormControlMenu Then Cancel = True
End Sub
L'argomento UnloadMode contiene un valore che indica in che modo il
programma viene terminato. Se tale valore è "vbFormControlMenu" (uguale a
zero), significa che è stato scelto il comando Chiudi dal menu di controllo
del form (la cui scorciatoia da tastiera è proprio ALT+F4). NOTA: con questa
istruzione, anche la pressione del pulsante X di chiusura non sortirà alcun
effetto. Impostando la variabile Cancel su True, si impedisce la chiusura
del programma.
Per ulteriori informazioni, cerca l'argomento "QueryUnload, evento" nella
Guida in linea di Visual Basic.
Penso di averti dato tutte le informazioni che chiedevi. Alla prossima
Marco Minerva
http://www.geocities.com/SiliconValley/Foothills/7260/
http://www.armaditaggia.com/marco


Prova cosi' :
' ***  SU un modulo
Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal
bRevert As Long) As Long
Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal
nPosition As Long, ByVal wFlags As Long) As Long
Private Declare Function SystemParametersInfo Lib "user32" Alias
"SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal
lpvParam As Any, ByVal fuWinIni As Long) As Long
Public Const MF_BYPOSITION = &H400&
Public Const MF_REMOVE = &H1000&
Sub DisableCtrlAltDelete(bDisabled As Boolean)
    Dim X As Long
    X = SystemParametersInfo(97, bDisabled, CStr(1), 0)
End Sub
Sub DisableWindowsClose(forma As Form)
        Dim hSysMenu As Long
        Dim nCnt As Long
        hSysMenu = GetSystemMenu(forma.hwnd, False)
        If hSysMenu Then
           nCnt = GetMenuItemCount(hSysMenu)
           If nCnt Then
              RemoveMenu hSysMenu, nCnt - 1, MF_BYPOSITION Or MF_REMOVE
              RemoveMenu hSysMenu, nCnt - 2, MF_BYPOSITION Or MF_REMOVE
              DrawMenuBar forma.hwnd
           End If
        End If
End Sub
' **** Sulla tua FORM :
Public Sub Form_Load()
        Me.Show
      ' Disattivo la X di chiusura sulla finestra
        Call DisableWindowsClose(Me)
      ' Disattivo Ctrl+Alt+Canc e tasto Windows , ALT+Tab
        Call DisableCtrlAltDelete(True)
End Sub
Ciao.