| |
|
|
|
Beschreibung:
CreateFile öffnet eine Datei oder erzeugt eine Datei und öffnet sie.
Deklaration:
DEF @CreateFile(7) !kernel32,CreateFileA
Parameter:
1.Parameter: Adresse eines Strings oder Bereichsvariable mit einem String, der den Dateinamen enthält. 2.Parameter: Flags für den gewünschten Zugriff auf das Handle. Unterschiedliche Flags können mit + addiert werden.=> -$0 = Erlaubt es, Geräteattribute abzufragen. -$80000000 = Lesezugriff. -$40000000 = Schreibzugriff. 3.Parameter: Flags für gemeinsamen Dateizugriff. => -$0 = Kein gleichzeitiger Zugriff. -$1 = Datei kann von anderen Operationen zum Lesen geöffnet werden. -$2 = Datei kann von anderen Operationen zum Schreiben geöffnet werden. 4.Parameter: Security-Attributes Struktur oder für das erzeugte Objekt. Kann auch 0 sein. 5.Parameter: Ein Flag, der angiebt, wie die Datei erzeugt werden soll. -$1 = Erzeugt eine neue Datei. Wenn die Datei bereits besteht, schlägt die Funktion fehl. -$2 = Erzeugt eine neue Datei. Wenn die Datei bereits besteht, wird sie überschrieben. -$3 = Öffnet eine existierende Datei. -$4 = Öffnet eine existierende Datei. Existiert sie nicht, wird sie erzeugt. -$5 = Öffnet eine Datei und löscht deren Inhalt. 6.Parameter: Flags für Dateiattribute. Ungleiche Flags können mit + addiert werden.=> -$00000020 = Datei wird als ‚Archiv’ gekennzeichnet. -$00000800 = Datei wird als ‚komprimiert’ gekennzeichnet. -$00000002 = Datei wird versteckt. -$00000001 = Datei wird mit Schreibschutz versehen. -$00000004 = Datei wird als Systemdatei gekennzeichnet. -$00000080 = Datei wird ist eine normale Datei. Dieser Flag wird von allen anderen Flags überschrieben. -$00000100 = Datei wird als temporärer Speicher verwendet. -$80000000 = Schreiboperationen erfolgen direkt auf die Datei, wobei der Cache umgangen wird. -$40000000 = Überlappende Lese- und Schreiboperationen können durchgeführt werden. -$20000000 = Die Datei wird ohne Zwischenpuffer oder Caching geöffnet. -$10000000 = Optimiert den Cache für den wahlfreien Zugriff. -$8000000 = Optimiert den Cache für den sequentiellen Zugriff. -$4000000 = Löscht die Datei, wenn alle ihre Handles geschlossen sind. -$2000000 = Öffnet die Datei für eine Backup- oder Restore-Aktion. Es werden dabei die Dateisicherheitsprüfungen überschrieben, wenn der aufrufende Prozess die aktivierten Administrationsprivilegien SeBackupPrivilege und SeRestorePrivilege besitzt. -$1000000 = Gibt an, das der Zugriff auf die Datei gemäß der POSIX-Regeln erfolgen soll. Wenn CreateFile die Clientseite einer Pipe öffnet, kann auch noch einer der folgenden Flags addiert werden. => -$0 = Ermöglicht, den Client mit der Stufe ‚Anonymous’ zu erzeugen. -$00010000 = Ermöglicht, den Client mit der Stufe ‚Identification’ zu erzeugen. -$00020000 = Ermöglicht, den Client mit der Stufe ‚Impersonation’ zu erzeugen. -$00030000 = Ermöglicht, den Client mit der Stufe ‚Delegation’ zu erzeugen. -$00040000 = Gibt an, dass der Sicherheitsmodus dynamisch ist. -$00080000 = Gibt an, dass dem Server nur die aktivierten Aspekte des Sicherheitskontexts des Clients zur Verfügung stehen. 7.Parameter: Hier kann ein Handle einer ‚Schablonendatei’ angegeben werden. Dateiattribute werden von dieser Datei übernommen. Dieser Parameter kann null sein.
Rückgabewert:
0 bei Misserfolg, ansonsten das Handle der Datei.
Beispiele:
KompilierenMarkierenSeparierenDEF @CreateFile(7) !kernel32,CreateFileA
Def @CloseHandle(1) !kernel32,CloseHandle
DEF @WriteFile(5) !kernel32,WriteFile
Declare Dateiname$,DateiHandle&
Declare Button&
LET DATEINAME$=C:TEST.TXT
LET DateiHandle&=@CreateFile(@ADDR(Dateiname$),$80000000+$40000000,0,0,4,$80,0)
@CloseHandle(DateiHandle&)
WINDOWSTYLE 31
Windowtitle Datei erzeugen
WINDOW 0,0-640,440
Let Button&=@Createbutton(%HWND,Datei löschen,20,200,200,30)
While 0=0
Waitinput
IF @GetFocus(Button&)
ASSIGN #1,Dateiname$
Erase #1
Enablewindow Button&,0
Beep 1
Endif
WEND
|
|
|
| |
|
|