![]() |
Infos von z.b. \\server\test\ lesen
Hi,
ich habe mir cxdrive in mein Programm eingebaut. Das klappt auch super. Blos wenn ich netzwerk laufwerke habe versagt es leider. Ich bekomme nicht zurück wie gross (Bytes) das teil ist, noch was frei ist oder was belegt ist. Auch nicht den Volumenamen. Wäre toll wenn mir jemand weiterhelfen könnte. Google und das forum suche ich seit ca. 1,5 stunden ab. Ich finde aber meistens nur wie man laufwerke verbindet. Achso, das netzlaufwerk ist NICHT gemappt. Hätte ich einen Buchstaben, z.b. Z dann geht es auch mit cxdrive. ![]() Danke im voraus |
AW: Infos von z.b. \\server\test\ lesen
Ich kenne CxDrive nicht. Ich weiß aber das die Windows Api-Funktionen auch mit einem Netzwerklaufwerk zusammen funktioniert. Das Laufwerk muss dazu nicht gemappt sein. Trotzdem musst Du am Server angemeldet sein. Wenn Wenn Du Dich via
net use \\server\test <passwort>/user:<username> bei dem Server anmeldest, funktioniert es dann? |
AW: Infos von z.b. \\server\test\ lesen
Ja das geht. Ich möchte die infos auslesen. Ich lese alle files ein. Grösse und Uhrzeit der Datein bekomme ich ja dann.
Mir Fehlt folgendes: VolumeName Size (also grösse des laufwerks) Free (wieviel noch frei ist) InUse (wieviel belegt ist) Eventuell Filessystem wenn das geht, also ob FAT oder NTFS (beim Samba ext2,ext3 usw.) Das Filesystem wäre nicht so wichitg. Aber die anderen Daten bräuchte ich schon. Gruss |
AW: Infos von z.b. \\server\test\ lesen
|
AW: Infos von z.b. \\server\test\ lesen
Vielen Dank!
Von deiner antwort bin ich hier gelandet ![]() Dann habe ich einen 3zeiler gemacht. Der sogar geht :-D
Delphi-Quellcode:
Und es klappt. Nun werde ich noch VolumeInfo versuchen. Vielen vielen dank für den stups in die richtige richtung. Fehlerabfragen kommen natürlich noch rein. Was InUse ist kann ich ja mit den beiden werten berechnen. Das ist das kleinste prob.
function GetDiskSize(var free_size, total_size: Int64): Boolean;
begin GetDiskFreeSpaceEx(PChar('\\server\volume1'), Free_size, Total_size, nil); end; Gruss und noch einen schönen "Restabend". Leider bin ich hundemüde, sonst wrürde ich das heute noch machen, aber das pack ich leider nichtmehr. Nochmals Danke! |
AW: Infos von z.b. \\server\test\ lesen
Damit sollte es gehen (Drive muss mit einem Backslash (->SysUtils.IncludeTrailingPathDelimiter) enden. Also z.B. "\\server\volume1\").
Delphi-Quellcode:
function VolumeID(const Drive: String): string;
var OldErrorMode: Integer; NotUsed, VolFlags: Cardinal; Buf: array [0..MAX_PATH] of Char; begin OldErrorMode := SetErrorMode(SEM_FAILCRITICALERRORS); try Buf[0] := #$00; if GetVolumeInformation(PChar(Drive), Buf, MAX_PATH+1, nil, NotUsed, VolFlags, nil, 0) then SetString(Result, Buf, StrLen(Buf)) else Result := ''; finally SetErrorMode(OldErrorMode); end; end; |
AW: Infos von z.b. \\server\test\ lesen
Super, klappt. :thumb:
Und ja es stimmt. Es muss mit \ enden. Warum es bei oben (in dem einzeiler) auch ohne geht weiss ich nicht. Also es geht beides. Mit und ohne \ am ende. Gruss und vielen dank |
AW: Infos von z.b. \\server\test\ lesen
Kleiner Vorschlag:
Delphi-Quellcode:
Dann ist es egal, ob der Backslash übergeben wurde oder nicht.
if GetVolumeInformation(PChar(IncludeTrailinPathDelimiter(Drive)), Buf, MAX_PATH+1, nil, NotUsed, VolFlags, nil, 0)
|
AW: Infos von z.b. \\server\test\ lesen
Gute idee, danke. Werde ich reinmachen. Wie gesagt, es war gestern abend und ich hatte es einfach vergessen, trotzdem klappt es. Hatte mich nur gewundert.
Ich versuche im moment die Seriennummer auszulesen. Also von \\server\volume1\. Das scheint auch zu gehen. Nur muss ich sehen ob die dann auf allen rechnern gleich ist, was ich hoffe. :) EDIT: Zur info.. Ja, ist gleich. Ich habe die nun von 4 Rechnern gelesen. Auch gemountet und nicht gemountet. Ich bin bei Windows immer auf alles gefasst.... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:57 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-2025 by Thomas Breitkreuz