Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: user32.dll einbinden

user32.dll einbinden
13.04.2005 10:53:30
Torsten
Hallo zusammen,
sicherlich eine einfache Frage, aber trotzdem...
Ich möchte die user32.dll einbinden im VB Editor (Extras/verweise).
Mittels "Durchsuchen" browse ich im System32 Verzeichnis und finde diese Datei.
Lieder funktioniert das nicht: Verweis auf angegebene Datei kann nicht hinzugefügt werden".
Die vorhandenen Verweise beinhalten diese dll auch nicht.
Weiß da jemand weiter?
Danke und Gruss,
Torsten
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: user32.dll einbinden
13.04.2005 13:06:24
Bert
Hi,
du wirst dafür ja sicher einen Grund haben. Teil doch einfach mal mit, was du damit erreichen willst.
mfg Bert
AW: user32.dll einbinden
13.04.2005 14:25:39
Torsten
Hi zurück,
ich möchte über eine Prozedur die "Num Lock" Taste ansteueren und habe auch den entsprechenden Code. Dieser erfordert allerdings die user32.dll.
Gruss,
Torsten
Anzeige
AW: user32.dll einbinden
13.04.2005 14:40:43
K.Rola
Hallo,
so kannst du z.B. den Status abfragen. Du brauchst nicht die User32.dll, sondern
einige Funktionen daraus:
Private Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) As Long
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Declare Function SetKeyboardState Lib "user32" (lppbKeyState As Byte) As Long
Private Const VER_PLATFORM_WIN32_NT = 2
Private Const VER_PLATFORM_WIN32_WINDOWS = 1
Private Const KEYEVENTF_EXTENDEDKEY = &H1
Private Const KEYEVENTF_KEYUP = &H2
Private Const VK_CAPS = &H14
Private Const VK_NUM = &H90
Private Const VK_SCROLL = &H91
Private keys(0 To 255) As Byte
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type
Private oSv As OSVERSIONINFO
Private Function Status(Taste) As Boolean
Dim bInsertKeyState As Boolean
oSv.dwOSVersionInfoSize = Len(oSv)
GetVersionEx oSv
GetKeyboardState keys(0)
Status = keys(Taste)
End Function
Sub Testen()
Taste = VK_NUM
MsgBox Status(Taste)
End Sub
Gruß K.Rola

Anzeige
AW: user32.dll einbinden (Merci)
13.04.2005 16:21:45
Torsten
Vielen Dank für die Info!
Gruss,
Torsten
;
Anzeige
Anzeige

Infobox / Tutorial

user32.dll in Excel VBA einbinden


Schritt-für-Schritt-Anleitung

  1. Öffne den Visual Basic Editor:

    • In Excel drückst du ALT + F11, um den VB Editor zu öffnen.
  2. Gehe zu Verweisen:

    • Klicke auf Extras in der Menüleiste und wähle Verweise.
  3. Finde die user32.dll:

    • Klicke auf Durchsuchen und navigiere zum System32 Verzeichnis.
    • Suche nach der Datei user32.dll.
  4. Hinzufügen der user32.dll:

    • Wenn die Datei nicht hinzugefügt werden kann, könnte es daran liegen, dass die Verweise nicht korrekt gesetzt sind. Es ist wichtig, dass du die richtige DLL für deine Windows-Version auswählst.
  5. Verwende die Funktionen der user32.dll:

    • Du kannst Funktionen wie GetKeyboardState oder keybd_event in deinem VBA-Code verwenden, um Tastaturereignisse zu steuern.

Häufige Fehler und Lösungen

  • Fehler: „Verweis auf angegebene Datei kann nicht hinzugefügt werden“

    • Lösung: Überprüfe, ob du die richtige Version der user32.dll verwendest. Stelle sicher, dass die Datei nicht beschädigt ist und dass du die 32-Bit-Version in einem 32-Bit Excel verwendest.
  • Fehler: „Funktion nicht gefunden“

    • Lösung: Achte darauf, dass du die Funktionen korrekt deklariert hast, wie in den bereitgestellten Beispielen. Überprüfe auch, ob die Namen der Funktionen mit der user32.dll documentation übereinstimmen.

Alternative Methoden

Wenn du Schwierigkeiten hast, die user32.dll einzubinden, kannst du auch andere Ansätze in Betracht ziehen:

  • Verwendung von Excel-eigenen Funktionen: Manchmal kannst du das gewünschte Ergebnis auch mit Excel-Funktionen oder Makros erreichen, ohne auf externe DLLs zurückgreifen zu müssen.

  • Nutzung von Excel VBA-Bibliotheken: Es gibt verschiedene VBA-Bibliotheken, die ähnliche Funktionen bereitstellen und die weniger Probleme beim Einbinden verursachen.


Praktische Beispiele

Hier ist ein Beispiel, wie du den Status der Num Lock-Taste abfragen kannst:

Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer

Sub CheckNumLock()
    If GetKeyState(&H90) <> 0 Then
        MsgBox "Num Lock ist aktiv."
    Else
        MsgBox "Num Lock ist nicht aktiv."
    End If
End Sub

Dieses Skript verwendet die user32.dll, um den Status der Num Lock-Taste zu überprüfen.


Tipps für Profis

  • Dokumentation studieren: Die user32.dll documentation ist eine wertvolle Ressource. Nutze sie, um mehr über die verfügbaren Funktionen zu erfahren.

  • Debugging-Tools verwenden: Nutze die Debugging-Funktionen im VBA-Editor, um sicherzustellen, dass deine Funktionen korrekt arbeiten.

  • Sichere deine Arbeit: Wenn du mit externen DLLs arbeitest, speichere regelmäßig und mache Backups.


FAQ: Häufige Fragen

1. Kann ich die user32.dll auch in Excel für Mac verwenden?
Leider ist die user32.dll spezifisch für Windows. Auf einem Mac musst du alternative Lösungen finden.

2. Wo finde ich die user32.dll?
Die Datei befindet sich normalerweise im C:\Windows\System32 Verzeichnis. Du kannst aber auch die Windows-Suche verwenden, um sie zu finden.

3. Welche Funktionen kann ich in VBA mit user32.dll nutzen?
Du kannst viele Funktionen nutzen, darunter die Steuerung von Tastatureingaben und das Abfragen des Zustands von Tasten. Informiere dich über die spezifischen Funktionen in der user32.dll documentation.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige