er min antagelse korrekt. du har en ny filtype (*.ny) (lads os sige en ny bitmaptype) du vil gerne have at dit program starter når brugeren dobbelklikker på filer af (*.ny), derefter starter dit program + at *.ny filen vises i programmet.
Hvis min antagelse er korrekt, så skal du bare lave dit program om så den kan modtage parameter ala dette visny.exe "Test.ny"
Indefra visny programmet skal du bare extracte "test.Ny"
I din fil type skal du sætte "action" til "open" og sætte "application use to perform action" til at være følgende VisNy.exe %1
visny.exe c:\billede.ny parameterne kan fanges i delphi med paramstr og paramcount se hjælp.
I folder option i exploreren, skal du oprette din fil type. hvor du angiver hvilken extension du vil registere. samt hvilken program du vil associaler med extensionen. I "actions" kan du vælge "open" i action editboksen. og vælg bagefter edit, her skrives der ala dette C:\WINNT\System32\NOTEPAD.EXE "%1" under application used to perform edit.
Jeg må tilstå at jeg ikke har lavet det før. Men hvis min teori holder stik burde det virke.
The following example beeps once for each “beep” passed in on the command line. The example terminates the application if “exit” is passed in on the command line.
procedure TForm1.FormCreate(Sender: TObject);
var i: Integer; for i := 0 to ParamCount – 1 do begin if LowerCase(ParamStr(i)) = 'beep' then Beep(10000,1000) else if (LowerCase(ParamStr(i)) = 'exit' then Application.Terminate; end; end;
Aaah ! Nu dæmmere den for mig! Det du vil er at registere en bestemt filtype til dit program .... Nå men du skal bruge det her ... Det er testet i D3 D4 og D5 så det skulle virke ....
procedure SetAssociation(Ext, Key, Name : String; IconIndex : Integer); var Regist : TRegistry; begin Regist := TRegistry.Create; try with Regist do begin RootKey := HKEY_LOCAL_MACHINE; if OpenKey('\Software\Classes\.'+Ext,true) then begin WriteString('',Key); if OpenKey('\Software\Classes\'+Key,true) then begin WriteString('', Name); if OpenKey('\Software\Classes\'+Key+'\DefaultIcon',true) then WriteString('',Application.ExeName+','+IntToStr(IconIndex)); if OpenKey('\Software\Classes\'+Key+'\shell\open\command',true) then WriteString('',Application.ExeName+' %1'); end; end; end; finally Regist.Free; end; end;
procedure TForm1.Button1Click(Sender: TObject); begin SetAssociation('Mps', 'The_Mp3_System', 'The Mp3 System',0 ); end;
Jammen Sirius det kunne du jo bare havde sagt ... :-)
Så prøv den her :
procedure TForm1.FormCreate(Sender: TObject); var s : String; begin s := AnsiUpperCase(ParamStr(1)); if s = '/OPEN' then begin ShowMessage('Open file ' + ParamStr(2)); end; end;
Alternativt kan du sætte koden overe i din dpr fil ....
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.