Funktionreferenz


_WinAPI_LoadLibraryEx

Beschreibung anzeigen in

Mapped ein bestimmtes ausführbares Modul in den Adressraum des aufrufenden Prozesses

#include <WinAPIRes.au3>
_WinAPI_LoadLibraryEx ( $sFileName [, $iFlags = 0] )

Parameter

$sFileName Benennt ein ausführbares Win32 Modul (entweder eine .dll oder eine .exe Datei). Der angegebene Name ist der Dateiname des ausführbaren Moduls.
$iFlags [optional] Legt den Ablauf fest, wenn das Modul geladen wird. Dieser Parameter kann einer der
folgenden Werte sein:
$DONT_RESOLVE_DLL_REFERENCES - Wird dieser Wert genutzt und das Modul ist eine DLL, dann wird, für die Prozess- und Threadinitialisierung, bzw. Beendigung, nicht die DllMain Funktion vom System aufgerufen. Ebenso werden keine zusätzlichen ausführbare Dateien geladen, die sich auf das angegebene Modul beziehen.
$LOAD_LIBRARY_AS_DATAFILE - Wird dieser Wert genutzt, mapped das System die Datei in den Adressraum des aufrufenden Prozesses, als wäre sie eine Datendatei. Nichts wird unternommen um die Datei auszuführen, oder dieses vorzubereiten.
$LOAD_WITH_ALTERED_SEARCH_PATH - Wird dieser Wert genutzt und $FileName gibt einen Pfad an, wendet das System die wechselnde Suchstrategie an, um das angegebene Modul zu laden.

Rückgabewert

Erfolg: Ein Handle zu dem ausführbaren Modul
Fehler: 0. Es ist _WinAPI_GetLastError() aufzurufen um erweiterte Fehlerinformationen zu erhalten

Bemerkungen

Oben stehende Konstanten benötigen #include <WinAPIConstants.au3>

Verwandte Funktionen

_WinAPI_FreeLibrary, _WinAPI_LoadLibrary, _WinAPI_LoadString

Siehe auch

Suche nach LoadLibraryEx in der MSDN Bibliothek.

Beispiel

#include <GUIConstantsEx.au3>
#include <GuiReBar.au3>
#include <WinAPIError.au3>
#include <WinAPIRes.au3>
#include <WindowsConstants.au3>

Global $g_idMemo

Example()

Func Example()
    Local $hGui, $idInput, $id_Get, $hReBar, $hInstance, $sText
    ; Erstellt eine GUI
    $hGui = GUICreate("WinAPI", 500, 300)

    $idInput = GUICtrlCreateInput("4209", 0, 0, 100, 20)

    ; Erstellt ein Rebar-Control
    $hReBar = _GUICtrlRebar_Create($hGui, BitOR($CCS_TOP, $WS_BORDER, $RBS_VARHEIGHT, $RBS_AUTOSIZE, $RBS_BANDBORDERS))

    ; Erstellt ein mehrzeiliges Input-Control (Memo)
    $g_idMemo = GUICtrlCreateEdit("", 2, 55, 496, 200, BitOR($WS_VSCROLL, $WS_HSCROLL))
    GUICtrlSetFont($g_idMemo, 10, 400, 0, "Courier New")

    ; Fügt eine neue Gruppe in das Rebar-Control ein, die das Input-Control enthält
    _GUICtrlRebar_AddBand($hReBar, GUICtrlGetHandle($idInput), 120, 200, "String-ID:")

    $id_Get = GUICtrlCreateButton("String einlesen", 0, 0, 70, 25)

    ; Fügt eine neue Gruppe in das Rebar-Control ein, die den "String einlesen"-Button enthält
    _GUICtrlRebar_AddBand($hReBar, GUICtrlGetHandle($id_Get), 120, 200)

    GUISetState(@SW_SHOW)

    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                Exit
            Case $id_Get
                GUICtrlSetData($g_idMemo, "")
                ; Bindet eine ausführbare Datei als Modul in den Adressraum des Skriptprozesses ein
                $hInstance = _WinAPI_LoadLibraryEx("shell32.dll", $LOAD_LIBRARY_AS_DATAFILE)
                If $hInstance Then
                    ; Lädt eine Stringressource aus einem eingebundenen Modul
                    $sText = _WinAPI_LoadString($hInstance, GUICtrlRead($idInput))
                    If Not @error Then
                        MemoWrite('Folgender String wurde eingelesen (' & @extended & ' Zeichen): ' & @CRLF & @CRLF & $sText)
                    Else
                        MemoWrite("Letzte Fehlermeldung: " & @CRLF & @CRLF & _WinAPI_GetLastErrorMessage())
                    EndIf
                    ; Gibt das eingebundene Modul wieder frei
                    MemoWrite(@CRLF & @CRLF & @CRLF & @CRLF & "Freigabe der Bibliothek erfolgreich? " & _WinAPI_FreeLibrary($hInstance))
                EndIf
        EndSwitch
    WEnd
EndFunc   ;==>Example

; Schreibt eine Nachricht in das Memo
Func MemoWrite($sMessage = "")
    GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite