Witam
Mam problem z formatowaniem dyskietki. Znalazłem tu na 4programers.net komponent format, znalazłem funkcje ShFormatDrive ale to wszystko przy starcie wyświetla mi okno dialogowe formatowania i dopiero w oknie dialogowym muszę wcisnąć Start.
Ja chcę zrobić tak aby np. naciskam w swoim programiku jakiś Button i Od razu jedzie formatowanie dyskietki bez okna dialogowego.
Jak to zrobić ?
- Rejestracja:około 21 lat
- Ostatnio:około 18 lat
- Rejestracja:około 21 lat
- Ostatnio:około 18 lat
Format a usuwanie wszystkich plików z dyskietki to nie to samo.
Polecenie format dzieli dyskietkę na ścieżki, sektory i klastry.
Jak macie niesformatowaną dyskietkę ( co juz teraz raczaj sie nie zdaża bo fabrycznie są formatowane ) to na niej nic nie da sie zapisać bo nie ma nadanego formatu FAT.
No a że podczas formatowania zostaną zniszczone wszystkie dane z dyskietki to już inna sprawa :-)
Więc ktos wie jak rozwiązać mój problem ?
- Rejestracja:około 21 lat
- Ostatnio:około 18 lat
Przeszukałem www.torry.net. Są tam coprawda takie komponenty co by mi pasowały ale kosztują niemało :-( Szukałem też na innych stronkach ale nic nie znalazłem ciekawego.
Darmowe wszystkie uruchamiają okno dialogowe formatowania.
A może ma ktoś taki komponencik jakiego potrzebuje i chciałby się podzielić, albo widział taki gdzieś(za darmo) do sciągnięcia ?
- Rejestracja:około 21 lat
- Ostatnio:około 18 lat
Przeszukałem www.torry.net. Są tam coprawda takie komponenty co by mi pasowały ale kosztują niemało :-( Szukałem też na innych stronkach ale nic nie znalazłem ciekawego.
Darmowe wszystkie uruchamiają okno dialogowe formatowania.
A może ma ktoś taki komponencik jakiego potrzebuje i chciałby się podzielić, albo widział taki gdzieś(za darmo) do sciągnięcia ?
- Rejestracja:około 23 lata
- Ostatnio:około 13 lat
To może metoda na chama? Wyświetlasz okienko formatowania, natychmiast je ukrywasz (findwindow i te sprawy), potem szukasz przycisku rozpoczynającego formatowanie, naciskasz go... Lepsze, niż nic...
//Dopisane
W win sdk jest topic 'FAT32 File System Functions', w którym znajduje się spis dosowych funkcji, jeste też link do tematu, jak takie funkcje wywoływać. Ciekawie wygląda funkcja:
Format Track on Logical Drive Int 21h Function 440Dh Minor Code 42h (FAT32)
Gdyby tak zrobić pętlę po wszystkich ścieżkach... W każdym razie, nie wiem, jak się to ma do win nt, moga być problemy.

- Rejestracja:prawie 22 lata
- Ostatnio:ponad 15 lat
- Postów:729
Należy użyć funkcji zawartej w module ShellAPI - ShFormatDrive().
Oto wycinek kodu.
const SHFMT_DRV_A = 0;
const SHFMT_DRV_B = 1;
const SHFMT_ID_DEFAULT = $FFFF;
const SHFMT_OPT_QUICKFORMAT = 0;
const SHFMT_OPT_FULLFORMAT = 1;
const SHFMT_OPT_SYSONLY = 2;
const SHFMT_ERROR = -1;
const SHFMT_CANCEL = -2;
const SHFMT_NOFORMAT = -3;
function SHFormatDrive(hWnd : HWND; Drive: Word; fmtID: Word; Options: Word) : Longint stdcall; external 'Shell32.dll' name 'SHFormatDrive';
procedure TForm1.Button1Click(Sender: TObject);
var
FmtRes : longint;
begin
try
FmtRes:= ShFormatDrive(Handle, SHFMT_DRV_A, SHFMT_ID_DEFAULT, SHFMT_OPT_QUICKFORMAT);
case FmtRes of
SHFMT_ERROR : ShowMessage('Błąd podczas formatowania.');
SHFMT_CANCEL : ShowMessage('Użytkownik przerwał formatowanie.');
SHFMT_NOFORMAT : ShowMessage('Nie sformatowano dysku')
else
ShowMessage('Dysk został sformatowany.');
end;
except
end;
end;
- Rejestracja:około 21 lat
- Ostatnio:około 18 lat
eh - no nie zabardzo należy użyć ShFormatDrive bo przy starcie wyświetla mi okno dialogowe formatowania( mam WinXP moze w innych tego nie robi - tego nie wiem ) i dopiero w oknie dialogowym muszę wcisnąć Start a tego właśnie chcę uniknąć - jak napisałem na początku
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.