AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

USB Stick formatiern

Ein Thema von Nightfly · begonnen am 1. Sep 2004 · letzter Beitrag vom 1. Sep 2004
Antwort Antwort
Seite 1 von 2  1 2      
Nightfly

Registriert seit: 25. Mär 2004
Ort: Dresden
118 Beiträge
 
#1

USB Stick formatiern

  Alt 1. Sep 2004, 12:19
Kann ich das mit Delphi machen? Das auf knopfdruck ohne weiteres nachfragen der Stick (laufwerk wird zuvor abgefragt) formatiert wird?
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: USB Stick formatiern

  Alt 1. Sep 2004, 12:21
Formatieren könne schwierig werden, wenn du einfach alles löschen willst, benutze z.B. Delphi-Referenz durchsuchenDeleteFile.
  Mit Zitat antworten Zitat
Nightfly

Registriert seit: 25. Mär 2004
Ort: Dresden
118 Beiträge
 
#3

Re: USB Stick formatiern

  Alt 1. Sep 2004, 12:23
Ich hatte es aber auch schon das sich dateien nicht löschen ließen...u.a. wenn der stick vorschnell abgezogen wurde. Da half dan ein formatieren über den Arbeitsplatz...kann ich diese funktion von Windows nich in delphi einbauen?
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: USB Stick formatiern

  Alt 1. Sep 2004, 12:27
Ich hab hier was gefunden.

Aber Achtung:
MP3-USB-Sticks (MP3-Player) sollten meist nicht von Windows aus formatiert werden, sonder nur mit der mitgelieferten SOftware, da sonst teilweise die Firmware gelöscht werden kann und sich der MP3-Player dann keine MP3 mehr wiedergeben kann.

Nur so am Rande, falls es ein MP3-Player ist.
  Mit Zitat antworten Zitat
Nightfly

Registriert seit: 25. Mär 2004
Ort: Dresden
118 Beiträge
 
#5

Re: USB Stick formatiern

  Alt 1. Sep 2004, 12:31
nein, sind stinknormale USB sticks die von kunden NUR zu datensicherung verwendet werden SOLLTEN...ich weiß aber schon wieder das die selber zeugs draufmachen, und dann anrufen warum die sicherung nicht geht. also will ich beim sichern: falls voll, entbehrliche alte sicherungen löschen (mach ich sowieso)..wenn nachher immer noch kein platz is...warnung ausgeben und dann plattmachen *hrrhrr*
  Mit Zitat antworten Zitat
Nightfly

Registriert seit: 25. Mär 2004
Ort: Dresden
118 Beiträge
 
#6

Re: USB Stick formatiern

  Alt 1. Sep 2004, 12:41
HAb mir jetzt mal den COde zu gemüte geführt...leider versteh ich das mit den konstanten nich...wo kann ich ein laufwerk auswählen? warum gibt es SHFMT_DRV_A = 0; UND SHFMT_DRV_B = 1; ??? Logisch wäre mir EINE variable die den LW Buchstaben übergibt...*verwirtbin*
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: USB Stick formatiern

  Alt 1. Sep 2004, 12:56
Zitat von Nightfly:
verwirtbin*
mee too

Ich glaube es ist so (ohne Gewähr, mach ein Backup.

Eventuell so:
Laufwerk A: SHFMT_DRV_A = 0
Laufwerk B: SHFMT_DRV_B = 1
Laufwerk C: SHFMT_DRV_B = 2
Laufwerk D: SHFMT_DRV_B = 3

...
  Mit Zitat antworten Zitat
Benutzerbild von fiasko
fiasko

Registriert seit: 10. Dez 2002
Ort: Dresden
506 Beiträge
 
#8

Re: USB Stick formatiern

  Alt 1. Sep 2004, 12:56
Zitat von Nightfly:
Logisch wäre mir EINE variable die den LW Buchstaben übergibt...*verwirtbin*
Ist doch nur eine - die SHFMT_DRV_* sind ja nur Konstanten für die Laufwerksnummern. Mußt also nurnoch die Nummer für den USB-Stick rausbekommen - ich glaube die Platten gingen dann bei 80h oder so los... aber ließ das lieber mal irgendwo nach bevor du das falsche Plattmachst
Thomas Liske
Posts comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: USB Stick formatiern

  Alt 1. Sep 2004, 13:00
Dazu näheres in derCode-Library.

Prüfe einfach, ob das Laufwerk ein DRIVE_REMOVABLE ist, dann werden schonmal alles Wechseldatenträger aufgelistet. Ausschließen kannst du dann schonmal Buchstabe A und B.
  Mit Zitat antworten Zitat
HW764
(Gast)

n/a Beiträge
 
#10

Re: USB Stick formatiern

  Alt 1. Sep 2004, 13:02
Geht sicher auch mit dem Disketten Formatierung Kommando
Delphi-Quellcode:
function TMainform.Diskette_formatieren(Laufwerk: String): Integer;
var
  Befehl : String;
  Datei : TextFile;
  TempDateiName : Array [0..255] of Char;
  TempVerzeichnis : Array [0..255] of Char;
  StartupInfo : TStartupInfo;
  ProcessInfo : TProcessInformation;
  SektorenProCluster : Integer;
  BytesProSektor : Integer;
  FreieCluster : Integer;
  ClusterInsgesamt : Integer;
  Temp : Integer;
begin
  // Datei zum Beantworten der Abfragen von FORMAT.EXE
  // im Temp-Verzeichnis anlegen.
  GetTempPath(255, TempVerzeichnis);
  GetTempFileName(TempVerzeichnis, 'TMP', 0, TempDateiName);

  // Antwort-Datei erzeugen
  AssignFile(Datei, TempDateiName);
  Rewrite(Datei); // Antwort-Datei erzeugen und öffnen
  Writeln(Datei, #13#10); // 1. Return ("Diskette einlegen ...")
  Writeln(Datei, #13#10); // 2. Return (Diskettenbezeichnung)
  Writeln(Datei, 'n'#13#10); // keine weitere Diskette
  CloseFile(Datei); // Datei schließen

  // Befehlszeile zum Aufrufen von FORMAT.COM
  // command.com /c = automatisch nach Beendigung schließen
  // format ... /u = unbedingt formatieren
  // format ... /c = defekte Sektoren prüfen
  Befehl := 'command.com /c format '+Laufwerk+' /u /c < '+TempDateiName;

  // StartupInfo initialisieren.
  FillChar(StartupInfo, SizeOf(TStartupInfo), 0);
  StartupInfo.cb := SizeOf(TStartupInfo);

  // DOS-Fenster soll nicht angezeigt werden.
  StartupInfo.dwFlags := StartF_UseShowWindow;
  StartupInfo.wShowWindow := SW_Hide;

  // Formatieren
  if CreateProcess(nil, PChar(Befehl), nil, nil,
                   False, 0, nil, 'c:\',
                   StartupInfo,
                   ProcessInfo) then begin
    // Warten bis Format beendet ist.
    WaitForSingleObject(ProcessInfo.hProcess, Infinite);
    CloseHandle(ProcessInfo.hProcess);
  end;

  // Antwort-Datei wieder löschen
  DeleteFile(TempDateiName);

  // War das Formatieren erfolgreich?
  if GetDiskFreeSpace(PChar(Laufwerk), SektorenProCluster,
                      BytesProSektor, FreieCluster,
                      ClusterInsgesamt) then begin
    // Anzahl defekter Sektoren berechnen
    Temp := FreieCluster * SektorenProCluster * BytesProSektor;
    Result := (1457664 - Temp) div BytesProSektor;
  end
  else
    // Diskette nicht eingelegt oder unformatiert
    Result := - 1;
end;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz