Entwickler-Ecke
Dateizugriff - Herrausfinden ob eine bestimmte datei endung mit meiner anwn
mimi - Sa 19.03.05 11:09
Titel: Herrausfinden ob eine bestimmte datei endung mit meiner anwn
Hallo,
wie kann ich herrausfinden ob eine bestimmte datei anwendung mit meiner anwendung verküpft ist ???
AXMD - Sa 19.03.05 11:13
Du meinst Dateiendungen? Einfach mal unter HKCR nach .txt oder was immer du suchst reinschauen ;)
AXMD
mimi - Sa 19.03.05 12:12
gibst es da nicht schon was fertiges ???
Sprint - Sa 19.03.05 12:29
mimi hat folgendes geschrieben: |
gibst es da nicht schon was fertiges? |
z.B. die Win32 API Funktion FindExecutable. Hat aber den Nachteil, dass zum Überprüfen die Datendatei tatsächlich vorhanden sein muss.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| uses ShellAPI;
procedure TForm1.Button1Click(Sender: TObject);
function FindExecutable(const FileName: String): String; var Buffer: array[0..MAX_PATH] of Char; begin if ShellAPI.FindExecutable(PChar(FileName), nil, Buffer) > 32 then Result := Buffer else Result := ''; end;
begin
ShowMessage(FindExecutable('C:\TEST.TXT'));
end; |
mimi - Sa 19.03.05 12:44
d.h. die datei muss es wirklich geben ?
(if FileExists(datei) = True) then...)
diese funktion habe ich auch schon gefunden.....
Sprint - Sa 19.03.05 14:15
Hab nochmal im PSDK geschaut. Da gibt es noch die Funktion AssocQueryString, um z.B. die Dateierweiterung aufzulösen. Nachteil ist das mindestens der IE5 installiert sein muss.
Delphi-Quelltext
1: 2:
| function AssocQueryString(Flags: Integer; Str: Integer; pszAssoc, pszExtra, pszOut: PChar; var pcchOut: DWORD): HRESULT; stdcall; external 'shlwapi.dll' name 'AssocQueryStringA'; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| function FindExecutable(const Extension: String): String; const ASSOCF_NOTRUNCATE = $00000020; ASSOCSTR_EXECUTABLE = 2; var BufSize: DWORD; begin BufSize := MAX_PATH; SetLength(Result, BufSize); if AssocQueryString(ASSOCF_NOTRUNCATE, ASSOCSTR_EXECUTABLE, PChar(Extension), 'open', PChar(Result), BufSize) = S_OK then SetLength(Result, BufSize - 1) else Result := ''; end; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.Button1Click(Sender: TObject); begin
ShowMessage(FindExecutable('.txt'));
end; |
Hab das jetzt nur unter Windows XP getestet. Wie sich das unter anderen Windows OS verhält, musst du selber herausfinden.
mimi - Sa 19.03.05 20:21
vielen dank, sowas habe ich gesucht, ich denke das jeder den IE installiert hat, ob er den bentzt oder nicht ist ja egal, ich nutzte ihn z.b. nicht... aber vileicht gibt es ja auch eine lösung die über alle funktioniert ?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!