| |
|
|
 |
Beschreibung:
CreateFile öffnet eine File oder erzeugt eine File 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 per 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 per gemeinsamen Dateizugriff. => -$0 = Kein gleichzeitiger Zugriff. -$1 = File kann von anderen Operationen zum Lesen geöffnet werden. -$2 = File kann von anderen Operationen zum Schreiben geöffnet werden.
4.Parameter: Security-Attributes Struktur oder per das erzeugte Objekt. Kann auch 0 sein.
5.Parameter: Ein Flag, der angiebt, wie die File erzeugt werden soll. -$1 = Erzeugt eine neue File. Wenn die File bereits besteht, schlägt die Funktion fehl. -$2 = Erzeugt eine neue File. Wenn die File bereits besteht, wird sie überschrieben. -$3 = Öffnet eine existierende File. -$4 = Öffnet eine existierende File. Existiert sie nicht, wird sie erzeugt. -$5 = Öffnet eine File und löscht deren Inhalt.
6.Parameter: Flags per Dateiattribute. Ungleiche Flags können mit + addiert werden.=> -$00000020 = File wird als ‚Archiv’ gekennzeichnet. -$00000800 = File wird als ‚komprimiert’ gekennzeichnet. -$00000002 = File wird versteckt. -$00000001 = File wird mit Schreibschutz versehen. -$00000004 = File wird als Systemdatei gekennzeichnet. -$00000080 = File wird ist eine normale File. Dieser Flag wird von allen anderen Flags überschrieben. -$00000100 = File wird als temporärer Speicher verwendet. -$80000000 = Schreiboperationen erfolgen direkt auf die File, wobei der Cache umgangen wird. -$40000000 = Überlappende Lese- und Schreiboperationen können durchgeführt werden. -$20000000 = Die File wird ohne Zwischenpuffer oder Caching geöffnet. -$10000000 = Optimiert den Cache per den wahlfreien Zugriff. -$8000000 = Optimiert den Cache per den sequentiellen Zugriff. -$4000000 = Löscht die File, wenn alle ihre Handles geschlossen sind. -$2000000 = Öffnet die File per 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 File 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 File übernommen. Dieser Parameter kann null sein.
Rückgabewert:
0 bei Misserfolg, ansonsten das Handle der File.
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
|
|
|
| |
|
|