1. Pascal / Говнокод #21895

    −124

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    procedure TToolFrm.RemIconBtnClick(Sender: TObject);
    function GetSelectedDrive:string;
    var
      S:string;
    begin
      Result:='';
      S:=DrView.Drive;
      if S <> '' then
      Result:=S+':\';
    end;
    
    var
      path:string;
      ID:Integer;
      VolumeName:string;
      VolumeNameSize,
      VolumeSerial,
      MaxComponentsLen,
      FileSystemFlags:DWORD;
    begin
    
      Path:=GetSelectedDrive;
      if Path='' then
      begin
        MessageBox(handle,PChar('Выберите диск в списке дисков'), PChar(''), 48);
        Exit;
      end;
    
      Path:=IncludeTrailingPathDelimiter(Path);
      SetLength(VolumeName,200);
      VolumeNameSize:=200;
      if not GetVolumeInformation(PChar(Path),PChar(VolumeName),VolumeNameSize,@VolumeSerial,MaxComponentsLen,FileSystemFlags,nil,0) then
      begin
        MessageBox(handle,PChar(Format('Диск %s недоступен или повреждён.',[Path])), PChar(''), 48);
        Exit;
      end;
      if (not DeleteFile(PChar(Path+'#Icon#'))) or (not DeleteFile(PChar(Path+'Autorun.inf'))) then
      Messagebox(Handle, PChar('Значок не найден'), PChar(''), 0)
      else
      begin
        SetVolumeLabel(PChar(Path),nil);
        SetVolumeLabel(PChar(Path), PChar(VolumeName));
        Messagebox(Handle, PChar('Значок удален'), PChar(''), 0)
      end;
    end;

    Кто скажет для чего вызывается SetVolumeLabel, тому ничего.

    Запостил: Dr_Stertor, 24 Декабря 2016

    Комментарии (3) RSS

    • Чтобы Проводник отображал не закэшированную информацию, а свежую?
      Ответить
      • Угадал, шалунишка ;-)

        Даже обидно немного... Чего это Вы все умные такие? Ничем вас не удивишь...
        Ответить
        • В своё время хлебнул немало горя, когда Винда не реагировала на смену дискеты или компакт-диска. Если метка тома у нового диска совпадала с меткой старого, иногда отображался список файлов старого диска.
          Ответить

    Добавить комментарий