Autor Beitrag
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Sa 19.03.05 11:09 
Hallo,
wie kann ich herrausfinden ob eine bestimmte datei anwendung mit meiner anwendung verküpft ist ???

_________________
MFG
Michael Springwald, "kann kein englisch...."
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Sa 19.03.05 11:13 
Du meinst Dateiendungen? Einfach mal unter HKCR nach .txt oder was immer du suchst reinschauen ;)

AXMD
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Sa 19.03.05 12:12 
gibst es da nicht schon was fertiges ???

_________________
MFG
Michael Springwald, "kann kein englisch...."
Sprint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 849



BeitragVerfasst: Sa 19.03.05 12:29 
user profile iconmimi 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.

ausblenden 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;

_________________
Ciao, Sprint.
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: 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.....

_________________
MFG
Michael Springwald, "kann kein englisch...."
Sprint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 849



BeitragVerfasst: 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.

ausblenden Delphi-Quelltext
1:
2:
function AssocQueryString(Flags: Integer; Str: Integer; pszAssoc, pszExtra, pszOut: PChar;
  var pcchOut: DWORD): HRESULT; stdcallexternal 'shlwapi.dll' name 'AssocQueryStringA';

ausblenden 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;

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm1.Button1Click(Sender: TObject);
begin

  // Ergebnis sollte unter einer Standard Windows XP Installation
  // "C:\WINDOWS\SYSTEM32\NOTEPAD.EXE" sein

  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.

_________________
Ciao, Sprint.
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: 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 ?

_________________
MFG
Michael Springwald, "kann kein englisch...."