Ohjelma disabloi/enabloi haluamasi ikkunan (annat otsikon nimen) käyttäen WinAPI-kutsuja EnableWindow ja FindWindow. FindWindow etsii ikkunan hwnd-arvon otsikon perusteella, ja EnableWindow enabloi/disabloi ikkunan tietyllä hwnd-arvolla. (elikkä enabloitu on mitä tavallisin ikkuna, ja disabloitu on ihan lukittunut, ei ota mitään viestejä vastaan ym. ym.) Älä sulje samaan aikaan VB:tä, selainta ja disabloi käynnistä-palkkia ja kaikkia ikkunoita, se on suoraan sanottuna hölmöä!
En myöskään ota vastuuta mistään, mitä sinä tällä teet, lukitsetpa vaikka koneesi, überkalliin ohjelman asennusohjelman, tai vaikka Micro$oftin servut!!!
Aliohjelmat
'ikkunan enablointi/disablointi Private Declare Function EnableWindow Lib "user32" (ByVal hwnd As Long, ByVal fEnable As Long) As Long 'ikkunan hwnd:n selvittämiseen otsikon perusteella Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Sub EnabloiIkkuna(Otsikko As String) Dim hwnd As Long 'määritellään muuttuja hwnd hwnd = FindWindow(vbNullString, Otsikko) 'etsitään ikkunan hwnd otsikon perusteella EnableWindow hwnd, True 'ja enabloidaan End Sub Private Sub DisabloiIkkuna(Otsikko As String) Dim hwnd As Long 'määritellään taas muuttuja hwnd hwnd = FindWindow(vbNullString, Otsikko) 'etsitään taas ikkunan hwnd otsikon perusteella EnableWindow hwnd, False 'ja disabloidaan End Sub
Esimerkkikäyttö
Private Sub Form_Click() If MsgBox ("Haluatko enabloida ikkunan (Kyllä, jos haluat enabloida, ei, jos haluat disabloida)", vbYesNo + 48, "") = True Then EnabloiIkkuna InputBox ("Anna ikkunan nimi", "") Else DisabloiIkkuna InputBox ("Anna ikkunan nimi", "") End If End Sub
Kiittäsin kommenteista...
Aihe on jo aika vanha, joten et voi enää vastata siihen.