![]() |
CreateFile W98
Hallo Forum,
unten steht ein Programmfragment und die Wurzel meines Problems. Das Programm habe ich selber nicht geschrieben, aber es scheint anderweitig zu funktionieren. Der Wert"INVALID_HANDLE_VALUE" ist leider immer true. Mit s='COM1' funktioniert es. Ich benutze Delphi5 auf einer W98-Plattform.
Delphi-Quellcode:
Liegt es am W98SE? Wenn ja, gibt es eine andere Lösung?
procedure TForm1.Button1Click(Sender: TObject);
var hdevice: thandle; s:string; begin s:='\\.\PD'; hDevice:=CreateFile(pchar(s), GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_FLAG_WRITE_THROUGH, 0); if hDevice <> INVALID_HANDLE_VALUE then ShowMessage('ok') else ShowMessage('Sche...'); end; Gruß Bernhard [edit=MrSpock]Delphi-Code Tags eingefügt. Mfg, MrSpock[/edit] |
Re: CreateFile W98
Herzlich willkommen in der Delphi-PRAXiS, Bernhard.
Versuche es mal mit \\.\PHYSICALDRIVE0 - und schau dir an wie ich deinen Code mit den Delphi-Tags aus dem Beitragseditor optisch aufwerte:
Delphi-Quellcode:
Keine Ahnung von Win98, aber du brauchst Adminrechte, damit es klappt.
procedure TForm1.Button1Click(Sender: TObject);
var hDevice: THandle; s: String; begin s := '\\.\PHYSICALDRIVE0'; hDevice := CreateFile( PChar(s), GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_FLAG_WRITE_THROUGH, 0 ); if hDevice = INVALID_HANDLE_VALUE then ShowMessage('no way') else ShowMessage('smile!'); end; Silvestergrüße vom marabu |
Re: CreateFile W98
Hallo marabu,
vielen Dank für deine Willkommensgrüße und die rasche Antwort Ich muß zugeben anfangs hat da mal PHYSICALDRIVE0' gestanden. :oops: Scheint nur an den Adminrechten zu liegen. Wenn ich mich als Admin ohne Paßword anmelde erhalte ich die gleiche Fehlermeldung. Keine Ahnung wie ich unter W98 die Rechte erhalte. Bernhard |
Re: CreateFile W98
Moin Bernhard,
Zitat:
Zitat:
Lass' Dir doch mal nach dem fehlgeschlagenen CreateFile mit
Delphi-Quellcode:
ausgeben, warum CreateFile INVALID_HANDLE_VALUE zurückgibt.
ShowMessage(SysErrorMessage(GetLastError));
Zitat:
Dort gibt es diese Berechtigungen von NT/2000/XP nicht. |
Re: CreateFile W98
Hallo und danke Christian,
:wall: es scheint, das es für das Problem keine Lösung außer ein Update auf W2000 oder so gibt. Das Programm macht einen LOW-Level Zugriff auf eine Festplatte, welche aus meinen Festplatten-Videorecorder stammt. Eigentlich wollte ich mich gestern an ein Linux Kernel-Modul wagen, bis ich das Programm gefunden habe. Meine Neigung den Zweitrechner noch aufzurüsten ist gering. Das Programm ist zu finden auf der Web-Page ![]() Der Programmteil stammt aus der unit disk Gruß Bernhard |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz