Funktionen der user32.dll,shell32.dll,kernel32.dll herausbekommen

  • Hi @all

    Ich habe mal ne Frage :
    Wie kann ich herausbekommen welche funktionen in einer dll (siehe oben) enthalten sind und welche parameter ich brauche

    gibt es dazu irgendwelche seiten oder dokumentationen die diese Anzeigen

    würde mich freuen wenn es sowas gibt

    mfg. simon

  • http://msdn.microsoft.com/en-us/library/default.aspx
    http://msdn.microsoft.com/de-de/library/default.aspxsollte erste Anlaufstelle sein, aber bei geschätzten 10- 15tausend Funktionen ist es sehr unwahrscheinlich, jemals eine komplette Liste ALLER Funktionen zu erwarten.
    http://msdn.microsoft.com/de-de/library/…-us,VS.85).aspx grobe Einteilung
    http://msdn.microsoft.com/en-us/library/aa383749(VS.85).aspx

    ciao
    Andy


    "Schlechtes Benehmen halten die Leute doch nur deswegen für eine Art Vorrecht, weil keiner ihnen aufs Maul haut." Klaus Kinski
    "Hint: Write comments after each line. So you can (better) see what your program does and what it not does. And we can see what you're thinking what your program does and we can point to the missunderstandings." A-Jay

    Wie man Fragen richtig stellt... Tutorial: Wie man Script-Fehler findet und beseitigt...X-Y-Problem

    Einmal editiert, zuletzt von Andy (23. Oktober 2009 um 15:44)

  • Ok wenn dann dort zb.

    Spoiler anzeigen

    steht wie muss ich dann die dllcall verwenden damit es funktiniert

    • Offizieller Beitrag

    Hier mal mit Abfrage SciTE-Fenster. Kannst auch mal mein Dll-Tut anschauen.

    [autoit]

    Opt('WinTitleMatchMode', 2)
    $hWnd = WinGetHandle('SciTE')
    ConsoleWrite(GetClassName($hWnd) & @CRLF)

    [/autoit][autoit][/autoit][autoit]

    Func GetClassName($hWnd)
    Local $LPTSTR = DllStructCreate('char[256]')
    Local $ret = DllCall("user32", 'long', "GetClassName", 'hwnd', $hWnd, 'ptr', DllStructGetPtr($LPTSTR), 'long', 256)
    If @error Or $ret[0] = 0 Then
    Return 0
    Else
    Return DllStructGetData($LPTSTR, 1)
    EndIf
    EndFunc

    [/autoit]
  • Dein dll tutorial kenne ich aber ich habe es nciht verstanden auf sowas anzuwenden

    super funktioniert

    hwnd ist also immer das handle eines fensters

    Was mache ich hier falsch

    [autoit]


    $hi = _WinGetClassLong('SciTE')
    Func _WinGetClassLong($iTitle)
    If Not IsHWnd($iTitle) Then
    $iTitle = WinGetTitle($iTitle)
    Endif
    $cal = DllCall("user32","dword","GetClassLong","hwnd",$iTitle,'int',8)
    return $cal
    EndFunc

    [/autoit]

    http://msdn.microsoft.com/de-de/library/…s,VS.85%29.aspx

    • Offizieller Beitrag


    If Not IsHWnd($iTitle) Then
    $iTitle = WinGetTitle($iTitle) ; <== WinGetHandle !!
    Endif

    Zum Anderen gehe ich davon aus, dass der Aufruf allein nicht zum Erfolg führt:

    Zitat

    The GetClassLong function retrieves the specified 32-bit (long) value from the WNDCLASSEX structure associated with the specified window.

  • Ja ok danke ich werde es mir mal ansehen
    danke bugfix und andy

    Edit Edit Edit:
    Ok stimmt ich bekomme mit folgendem code

    [autoit]


    Func _WinGetClassLong($iTitle)
    If Not IsHWnd($iTitle) Then
    $iTitle = WinGetHandle($iTitle)
    Endif
    $cal = DllCall("user32","dword","GetClassLong","hwnd",$iTitle,'int',8)
    return $cal
    EndFunc

    [/autoit]

    immer noch eine leere rückmeldung

    Zitat

    Zum Anderen gehe ich davon aus, dass der Aufruf allein nicht zum Erfolg führt:

    Ja und wie muss ich das dann ändern

    • Offizieller Beitrag

    Ja und wie muss ich das dann ändern

    Ich hab mich jetzt nicht weiter in die MSDN-Doku vertieft. Aber ich gehe davon aus, dass ein anderer Funktionsaufruf vorher nötig ist in Zusammenhang mit der WNDCLASSEX structure. Hilft also erst mal nur googeln und lesen um die richtigen Schritte herauszufinden.

  • Achso
    ja davon verstehe ich leider nichts
    dann lass ich das erstmal bleiben
    aber danke nochmal fü eure hilfe
    mfg. simon