Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: VB6: Ikkunan enablointi/disablointi

moptim [03.11.2006 19:08:07]

#

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

moptim [03.11.2006 19:36:00]

#

Kiittäsin kommenteista...

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta