Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: FindWindowin toiminnasta

progo [09.01.2003 16:22:58]

#

Mitenkäs on, kun VB:llä yritän etsiä FindWindow-apifunktiolla jotain kahvaa omaan käyttöön :) mutta sellanen perinteinen:

'jätetään se declare-rouvi pois
  my_hWnd = FindWindow(Null, "Project1")

Ja sitten kun sitä suorittaa - VB jysäyttää jämäkän virheen, mikä ilmeisesti koskee sitä, että Null ei kelpaa, kun pitäisi olla stringi.. kokeilin myös CStr(Null) mutta noin tökerö ratkaisukaan ei auttanut .. miten siis toimia?

Pekka Kauppila [09.01.2003 16:55:22]

#

Kokeileppa noin...

my_mWnd = FindWindow("Project1", vbNullString)

progo [09.01.2003 17:07:11]

#

Eipä toimi, ei... haarmi

Pekka Kauppila [09.01.2003 17:52:56]

#

Kylläsen pitäisi toimia noin, ainakin minä saan sen toimimaan...

progo [09.01.2003 17:57:39]

#

Mutta miks se palauttaa hWnd:n arvona nollan ? Tässäpä koodia:

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Sub cmdFindWindow_Click()
    Dim MyhWnd As Long
    MyhWnd = FindWindow(vbNullString, "Project1")
    lbl_hWnd.Caption = MyhWnd
End Sub

Private Sub Form_Load()
    lbl_hWnd.Caption = Me.hWnd
End Sub

Private Sub lbl_hWnd_Change()
    If lbl_hWnd.Caption = Me.hWnd Then
        lblInfo.Caption = "My window's hWnd:"
    Else
        lblInfo.Caption = "Window's hWnd:"
    End If
End Sub

Ja kun tossa yhellä rivillä (FindWindow(vbNullString, "Project1")) on nuo toisin päin, osiksi sen takia, että tää sorsa sekoili aika pahasti.. ;)

Pekka Kauppila [09.01.2003 18:12:38]

#

Tuo toimii minulla ainakin aivan oikein.

progo [10.01.2003 16:57:28]

#

No tuohan toimii ihan hyvin, ja kuten voi koodista päätellä, se heittää labeliin löytyvän hWnd-luvun, mutta vain oman ikkunan (me.hwnd) se tunnistaa, muista tulee 0.. :(

Vastaus

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

Tietoa sivustosta