Kitty82 Geschrieben 21. Dezember 2005 Geschrieben 21. Dezember 2005 Hallo zusammen, also ich bin hier schon richtig am Verzweifeln. Funktioniert das eine, finde ich irgendwo anders einen Fehler. Hoffe, ihr könnt mir hier wieder weiter helfen. Und zwar ist es so, dass in meiner Anwendung der Benutzer ein Gerät auswählen kann. Daten von diesem Gerät sind in einer Datei gespeichert und diese wird geöffnet und eingelesen, sobald man dieses Gerät auswählt. Da es wichtig ist, dass niemand in dem Augenblick auf diese Datei zugreifen darf (ausser de Benutzer, der das Gerät ausgewählt hat), locke ich diese Datei. Hier kurz der Code: HANDLE hFile = CreateFile(pathForFile, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if(!LockFile(lockFileHandle,0,0,1,0) ) { AfxMessageBox("You can't select this scanner!\nSomeone else is using it! Try later again", MB_ICONINFORMATION | MB_OK); //... }[/PHP] Ich habe das bis jetzt immer nur auf meinem Rechner getestet. Also war der PFad der Datei immer "C:\Ordner\..." Da meine Andwendung später auf einem Server liegen wird und somit mehrere Leute darauf zugreifen werden, geht der Pfad so natürlich nicht, sondern: "\\Computername\Ordner\..." - aber wenn ich so den Pfad angebe, meint er, die Datei ist schon gelockt. Obwohl momentan niemand darauf zugreift. Wenn ich es wieder in C:\Ordner... änder, funktioniert es. Ich habe auch kein '\' vergessen und es ist mir bewusst, dass es im Code auch "\\\\Computername\\Ordner\\..." heissen muss. Das stimmt alles (zich mal geprüft). funktioniert das LockFile dann allgemein nicht mit wenn es übers Netz geht? Habe ich irgendwas nicht bedacht? Bin widermal dankbar für JEDE hilfe! Gruß Kitty Zitieren
Klotzkopp Geschrieben 21. Dezember 2005 Geschrieben 21. Dezember 2005 Hast du überhaupt mal getestet, ob CreateFile mit einem solchen Pfad klappt? Warum benutzt du für LockFile nicht das Handle, dass du von CreateFile bekommst? Warum lockst du nur das erste Byte der Datei? Und die wichtigste Frage: Warm benutzt du überhaupt LockFile, anstatt einfach auf die Sharing-Flags bei CreateFile zu verzichten? P.S.: Verschoben -> C++: Compiler, IDEs, APIs Zitieren
Kitty82 Geschrieben 21. Dezember 2005 Autor Geschrieben 21. Dezember 2005 Hallo klotzkopp, also dann fang ich mal an dir zu antworten: Hast du überhaupt mal getestet, ob CreateFile mit einem solchen Pfad klappt? Um ehrlich zu sein nein. Da ich eigentlich dachte, dass C:\Ordner\.. und PCName\Ordner\... beides für mich gültige Pfade sind? Werde es aber testen. Warum benutzt du für LockFile nicht das Handle, dass du von CreateFile bekommst? Das war hier ein schreibfehler von mir. LockFile und CreateFile haben das gleiche Handle. Warum lockst du nur das erste Byte der Datei? das genügt doch um festzustellen, ob jemand sie benutzt. Wenn er prüft, dann fängt er ja beim ersten Byte an? Und die wichtigste Frage: Warm benutzt du überhaupt LockFile, anstatt einfach auf die Sharing-Flags bei CreateFile zu verzichten? Ein Kollege von mir hatte gemeint, dass Lockfile hier besser wäre. :confused: P.S.: Verschoben -> C++: Compiler, IDEs, APIs einmal sorry, dachte dass da das C/C++ gepasst hatte... Zitieren
Kitty82 Geschrieben 21. Dezember 2005 Autor Geschrieben 21. Dezember 2005 Also habe nun überprüft, ob CreateFile mit so einem Pfad klappt, es scheint nicht so zu sein. Bekomme den Fehler 5 (ERROR_ACCESS_DENIED). Ich verstehe das dann so, dass ich nicht mit CreateFile auf so einen Pfad zugreifen kann. Was gibt es aber denn dann für Möglichkeiten, muss die Datei schreibgeschützt öffnen... gruß kitty Zitieren
Klotzkopp Geschrieben 21. Dezember 2005 Geschrieben 21. Dezember 2005 Also habe nun überprüft, ob CreateFile mit so einem Pfad klappt, es scheint nicht so zu sein.Ich hab gerade nochmal nachgesehen, das sollte funktionieren. Öffnest du die Datei noch so wie in deinem Beispiel? Hast du Schreibrechte auf die Datei? Zitieren
Kitty82 Geschrieben 21. Dezember 2005 Autor Geschrieben 21. Dezember 2005 habe auch in der Beschreibung von CreateFile gesehen, dass es funktionieren sollte. Ja, öffne sie immernoch so. (gleiches handle bei lockfile und createFile). ich habe auf dem kompletten ordner worin die datei lieg, vollzugriff. danke, dass du mir hier hilfst! Zitieren
Kitty82 Geschrieben 21. Dezember 2005 Autor Geschrieben 21. Dezember 2005 es scheint ein problem bei uns hier in der firma zu sein. wir haben alle vollzugriff auf diese dateien, können aber nix ändern. wenn das wieder klappt, schau ich nach. trotzdem danke für deine bemühungen :byby: gruß kitty Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.