Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Dateieigenschaften anzeigen (https://www.delphipraxis.net/34738-dateieigenschaften-anzeigen.html)

Moyyer 27. Nov 2004 15:56


Dateieigenschaften anzeigen
 
Hallo Alle Zusammen!

Ich habe mir ein ID3-Tag Programm für meine MP3s geschrieben. Funktioniert alles super(Hab im Forum viel gefunden).

Nun habe ich ein Problem, was ich nicht gefunden habe. :roll: :cry:
Ich möchte von einer Datei die Dateieigenschaften öffnen, so als wenn man rechte Maustasten->Eigenschaften klickt.
Und als 2. möchte ich das er gleich auf die Registerkarte Dateiinfo geht.

Hat jem. eine Idee? thx @ all :-D

MfG Moyyer

Moyyer 28. Nov 2004 11:23

Re: Dateieigenschaften anzeigen
 
Hat keiner eine Idee? :gruebel: :coder2:

gkoeder 28. Nov 2004 11:35

Re: Dateieigenschaften anzeigen
 
Hallo!

Probiers mal hiermit:

Code:
function ShowFILEPROPERTIESDialog(hWndOwner: HWND; const FILEName: string): Boolean;
var
  Info: TShellExecuteInfo;
begin
  with Info do
  begin
    cbSize := SizeOf(Info);
    fMask := SEE_MASK_NOCLOSEPROCESS or
             SEE_MASK_INVOKEIDLIST or
             SEE_MASK_FLAG_NO_UI;
    wnd := hWndOwner;
    lpVerb := 'PROPERTIES';
    lpFILE := pChar(FILEName);
    lpParameters := nil;
    lpDirectory := nil;
    nShow := 0;
    hInstApp := 0;
    lpIDList := nil;
  end;
  Result := ShellExecuteEx(@Info);
end;
also z.B.

ShowFILEPROPERTIESDialog(Application.Handle, 'd:\testfile.txt');

Greetings,
Gerald

Moyyer 28. Nov 2004 12:59

Re: Dateieigenschaften anzeigen
 
Hi gkoeder

Vielen Dank für die Funktion. Sie funktioniert.
Leider springt sie aber nicht automatisch zu Dateiinfo.

Wenn jem. eine Idee hat, wär ich sehr dankbar.

MfG Moyyer

P.S. Man muss in der uses-klausel die unit "shellapi" hinzufügen.

-NIP- 28. Nov 2004 13:59

Re: Dateieigenschaften anzeigen
 
Geht das nicht mit dem Index vom Tab?

-NIP-

Moyyer 28. Nov 2004 21:12

Re: Dateieigenschaften anzeigen
 
Hi

Ich hab mal auf MSDN geguckt, aber bin da nich viel schlauer daraus geworden.

Ich denk mal man muss Ihm einen Parameter geben, damit er zum Tab "Dateiinfo" springt, ich hab nur k.a. welchen.

Danke für jede weitere Antwort

MfG Moyyer

Moyyer 30. Nov 2004 15:35

Re: Dateieigenschaften anzeigen
 
Habs Leider nich hingekriegt. Hat noch jem. eine Idee?

MathiasSimmack 30. Nov 2004 15:38

Re: Dateieigenschaften anzeigen
 
Das wird so, denke ich, nicht funktionieren. :(

Das mit den Parametern für den Tab-Index kenne ich nur von Aufrufen per "rundll", usw. Aber das Problem dabei ist, dass es bei verschiedenen Windows-Versionen auch verschiedene Parameter sein können. Oder nimm bspw. die Internetoptionen: Hast du einen alten IE drauf, fehlt ja das Register mit den Cookie-Optionen. Demzufolge ist auch der Index immer anders.

Wenn es nicht eine direkte Möglichkeit gibt, die Seite mit den Infos anzuspringen, dann wäre die Lösung via "ShellExecute" immerhin ein Kompromiss. IMHO.

Moyyer 30. Nov 2004 15:43

Re: Dateieigenschaften anzeigen
 
Ich möchte eigentlich nur die Dateiinfo für MP3-Dateien haben. Ich könnte vorher überprüfen ob es eine MP3-Datei ist. Weißt du die Pararmeter für WinXP?

MathiasSimmack 30. Nov 2004 15:49

Re: Dateieigenschaften anzeigen
 
Nein, leider nicht. Ich hätte dir gern geholfen. Sorry.

Moyyer 30. Nov 2004 15:50

Re: Dateieigenschaften anzeigen
 
Trotzdem Danke

pxn 23. Feb 2007 17:34

Re: Dateieigenschaften anzeigen
 
Zitat:

Zitat von MathiasSimmack
Das mit den Parametern für den Tab-Index kenne ich nur von Aufrufen per "rundll", usw.

Ich steh gerade vor dem selben Problem. Wie sähe denn ein Aufruf per rundll aus ?

DP-Maintenance 24. Feb 2007 05:15

DP-Maintenance
 
Dieses Thema wurde von "r_kerber" von "Programmieren allgemein" nach "Windows API / MS.NET Framework API" verschoben.
Paßt wohl eher hin

bitsetter 24. Feb 2007 08:01

Re: Dateieigenschaften anzeigen
 
Moin,

den Code von gkoeder habe ich ein bisschen erweitert, jetzt kannst du den Namen der Registerkarte als Parameter der Funktion übergeben.

Delphi-Quellcode:
uses shellapi;

function ShowFILEPROPERTIESDialog(hWndOwner: HWND; const FILEName: string; Registerkarte: PChar): Boolean;
var
  Info: TShellExecuteInfo;
begin
  with Info do
  begin
    cbSize := SizeOf(Info);
    fMask := SEE_MASK_NOCLOSEPROCESS or
             SEE_MASK_INVOKEIDLIST or
             SEE_MASK_FLAG_NO_UI;
    wnd := hWndOwner;
    lpVerb := 'PROPERTIES';
    lpFILE := pChar(FILEName);
    lpParameters := Registerkarte;
    lpDirectory := nil;
    nShow := 0;
    hInstApp := 0;
    lpIDList := nil;
  end;
  Result := ShellExecuteEx(@Info);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin                                                        //Namen der Registerkarte
  ShowFILEPROPERTIESDialog(application.Handle, 'c:\Titel.mp3', 'DateiInfo');
end;

pxn 9. Mär 2007 15:30

Re: Dateieigenschaften anzeigen
 
Dankeschön, das hat's getan :) Etwas schwieriger war es bloß, die Beschriftung des Karteireiters, den ich öffnen möchte, auszulesen.

himitsu 10. Mär 2007 17:15

Re: Dateieigenschaften anzeigen
 
Zitat:

Zitat von pxn
Etwas schwieriger war es bloß, die Beschriftung des Karteireiters, den ich öffnen möchte, auszulesen.

Genau darauf wollte ich auch mal hinweisen, denn der Name (zum Beispiel 'DateiInfo') ist ja nicht immer gleich und hängt vorallem von der Sprache ab.
Also mit festen Werten sollte man da nicht arbeiten, vorallem wenn das Programm auch mal in anderen Sprachgebieten eingesetzt werden soll.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz