Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Papierkorb identifizieren. (https://www.delphipraxis.net/192638-papierkorb-identifizieren.html)

EWeiss 7. Mai 2017 17:22

Papierkorb identifizieren.
 
Hat jemand Informationen welche API ich verwenden könnte um den aktuellen Status des Papierkorb zu erfahren?
Also ob er leer oder voll ist.

Ich verwende TSHQueryRBInfo
Das Problem dabei ist das es zu CPU lastig ist.

gruss

nahpets 7. Mai 2017 17:38

AW: Papierkorb identifizieren.
 
Ist eventuell dashier hilfreich?
http://www.delphitricks.com/source-c..._is_empty.html

EWeiss 7. Mai 2017 17:49

AW: Papierkorb identifizieren.
 
Zitat:

Zitat von nahpets (Beitrag 1370500)

Oh Danke ;)
Werde es mal testen ob es weniger CPU lastig ist.

Ich benötige es hier für ;)

gruss

markus5766h 13. Mai 2017 11:48

AW: Papierkorb identifizieren.
 
... oder das hier, zeigt dann die Anzahl der Dateien im Papierkorb . . .

Delphi-Quellcode:
unit uMain;

interface

uses
  Windows, Messages, SysUtils, Forms, ActiveX,
  Buttons, ComObj, ShlObj, Dialogs, StdCtrls, StrUtils, ExtCtrls,
  ComCtrls, Controls, Classes;

type
  TfrmMain = class(TForm)
    btnShowNumOfTrashFiles: TButton;
    procedure btnShowNumOfTrashFilesClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.dfm}

type
  PPIDLItem = ^TPIDLItem;
  TPIDLItem = Record
                Dateiname : String;
                IDL : PItemIDList;
              end;

function NumTrashFiles : Integer;
var
  DeskDirI, RecycleI: IShellFolder;
  pReIDL, pNextIDL: PItemIDList;
  EnumList: IENUMIDLIST;
  IsThere: Cardinal;
  StrRet: TStrRet;
  parName: String;
  PPIDL:PPIDLItem;
begin
  OleCheck(SHGetDesktopFolder(DeskDirI));
  OleCheck(SHGetSpecialFolderLocation(Application.Handle, CSIDL_BITBUCKET, pReIDL));
  OleCheck(DeskDirI.BindToObject(pReIDL, nil, IShellFolder, RecycleI));
  CoTaskMemFree(pReIDL);
  OleCheck(RecycleI.EnumObjects(Application.Handle,
           SHCONTF_FOLDERS or SHCONTF_NONFOLDERS
           or SHCONTF_INCLUDEHIDDEN, EnumList));
  Result := 0;
  while EnumList.Next(1, pNextIDL, IsThere) = S_OK do Inc(Result, 1);
end;


procedure TfrmMain.btnShowNumOfTrashFilesClick(Sender: TObject);
begin
  ShowMessage(IntToStr(NumTrashFiles));
end;

end.

EWeiss 13. Mai 2017 11:52

AW: Papierkorb identifizieren.
 
Danke für die Infos.
Ich habe den Part schon abgeschlossen.
Aber bestimmt noch interessant für andere.

gruss.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:03 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