WriteFile
Declare Function WriteFile Lib "kernel32.dll" ( _
ByVal hFile As Long, _ ByRef lpBuffer As Any, _ ByVal nNumberOfBytesToWrite As Long, _ ByRef lpNumberOfBytesWritten As Long, _ ByRef lpOverlapped As OVERLAPPED) As Long
Parameter
hFile
- Das Handle der Datei, in die geschrieben werden soll. Diese Datei muss vorher mit CreateFile oder OpenFile geöffnet worden sein.
lpBuffer
- Der Buffer, der die zu schreibenden Daten enthält.
nNumberOfBytesToWrite
- Die Anzahl an Bytes, die es zu schreiben gilt. Es muss darauf geachtet werden, dass der in lpBuffer übergebene Wert mindestens nNumberOfBytesToWrite Byte lang ist.
lpNumberOfBytesWritten
- In die für lpNumberOfBytesWritten übergebene Variable wird die Anzahl tatsächlich geschriebener Bytes geschrieben.
lpOverlapped
- Zeiger auf eine Struktur vom Typ OVERLAPPED. Die Übergabe einer solchen Struktur ermöglicht unter anderem Asynchrone Schreibzugriffe auf eine Datei. Soll keine OVERLAPPED-Struktur übergeben werden, muss bei der Deklaration
ByVal lpOverlapped As Long
- geschrieben und beim Aufruf NULL übergeben werden.
Rückgabe(n)
Die Funktion gibt einen Wert des Types Long ungleich 0 bei Erfolg, den Wert 0 bei Misserfolg zurück.
Beispiel
Option Explicit
Private Declare Function CreateFile Lib "kernel32" _
Alias "CreateFileA" ( _ ByVal lpFileName As String, _ ByVal dwDesiredAccess As Long, _ ByVal dwShareMode As Long, _ ByRef lpSecurityAttributes As Any, _ ByVal dwCreationDisposition As Long, _ ByVal dwFlagsAndAttributes As Long, _ ByVal hTemplateFile As Long) As Long
Private Declare Function WriteFile Lib "kernel32.dll" ( _
ByVal hFile As Long, _ ByRef lpBuffer As Any, _ ByVal nNumberOfBytesToWrite As Long, _ ByRef lpNumberOfBytesWritten As Long, _ ByRef lpOverlapped As Any) As Long
Private Declare Function CloseHandle Lib "kernel32" ( _
ByVal hObject As Long) As Long
Private Const GENERIC_WRITE As Long = &H40000000 Private Const GENERIC_READ As Long = &H80000000
Private Const FILE_SHARE_READ As Long = &H1 Private Const FILE_SHARE_WRITE As Long = &H2
Private Const OPEN_ALWAYS As Long = 4
Private Const INVALID_HANDLE_VALUE As Long = -1
Private Sub Form_Load()
Dim hFile As Long, retVal As Long, BytesWritten As Long Dim TextToWrite As String TextToWrite = "Hallo, Welt!" hFile = CreateFile("C:\Test.txt", GENERIC_WRITE, _ FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_ALWAYS, 0&, 0&) If hFile = INVALID_HANDLE_VALUE Then Call MsgBox("Es ist ein Fehler beim Aufruf an CreateFile aufgetreten.") ' Der Rest wird nun nicht mehr funktionieren, Prozedur verlassen Exit Sub End If retVal = WriteFile(hFile, ByVal TextToWrite, Len(TextToWrite), BytesWritten, ByVal 0&) If retVal = 0 Then Call MsgBox("Es ist ein Fehler beim Aufruf an WriteFile aufgetreten.") End If Call CloseHandle(hFile)
End Sub
Verwandte Funktionen
OpenFile - Eine Datei öffnen
CreateFile - Eine Datei erstellen, falls sie nicht existiert, und sie öffnen
ReadFile - Aus einer Datei lesen
WriteFileEx - Schreiben einer Datei
ReadFileEx - Lesen einer Datei
CloseHandle - Eine Datei schließen