Avatar billede fastpoint Nybegynder
20. oktober 2001 - 00:57 Der er 14 kommentarer og
3 løsninger

Windows Registry Editor Version 5.00

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\\LIF]
@=\"URL:LIF Protocol\"
\"EditFlags\"=dword:00000002
\"URL Protocol\"=\"\"
\"BrowserFlags\"=dword:00000008

[HKEY_CLASSES_ROOT\\LIF\\shell]
@=\"open\"

[HKEY_CLASSES_ROOT\\LIF\\shell\\open]

[HKEY_CLASSES_ROOT\\LIF\\shell\\open\\command]
@=\"c:\\\\windows\\\\notepad.exe \\\"%1\\\"\"

[HKEY_CLASSES_ROOT\\LIF\\shell\\open\\ddeexec]




jeg er ved at lave et lille download program. Jeg er bare lige stødt på et lille problem. Hvordan får jeg det til at læse %1  som er et link?
Avatar billede dkn Nybegynder
20. oktober 2001 - 00:59 #1
Åbne den i Notpad eller hva??
Avatar billede fastpoint Nybegynder
20. oktober 2001 - 01:05 #2
lol nej

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\\LIF]
@=\"URL:LIF Protocol\"
\"EditFlags\"=dword:00000002
\"URL Protocol\"=\"\"
\"BrowserFlags\"=dword:00000008

[HKEY_CLASSES_ROOT\\LIF\\shell]
@=\"open\"

[HKEY_CLASSES_ROOT\\LIF\\shell\\open]

[HKEY_CLASSES_ROOT\\LIF\\shell\\open\\command]
@=\"c:\\\\addressentilmitprogram\\\\mitprogram.exe \\\"%1\\\"\"

[HKEY_CLASSES_ROOT\\LIF\\shell\\open\\ddeexec]
Avatar billede dkn Nybegynder
20. oktober 2001 - 01:06 #3
er det en ny filtype du prøver på at regitrerer?
Avatar billede fastpoint Nybegynder
20. oktober 2001 - 01:08 #4
Det skal virke sådan at hvis man for eksempel skriver lif://blah så skal mit program åbnes...så ja det kan man godt sige
Avatar billede dkn Nybegynder
20. oktober 2001 - 01:12 #5
Så det er altså en ny filtype du vil lave, med extension .LIF ?
Og så når man klikker på den fil  åbnes dit program, og du læser ved hjælp af %1 hvor filen som blev kørt ligger.
Ved du hvordan du får dit program til at læse param strengen?
Avatar billede fastpoint Nybegynder
20. oktober 2001 - 01:16 #6
Nej det er online download links..dvs.
klikker du på lif://253524123 så starter programmet og begynder at downloade den fil (253524123  er filens ID)
Avatar billede dkn Nybegynder
20. oktober 2001 - 01:23 #7
jaja nu tror du jeg er lam :)
Men for fanden prøv lige at kigge på den information som du har givet om dit problem...

Er lif en onlinelink i en browser eller hva?
Er det en fil som du har liggende på din computer?
Eller noget andet?
Avatar billede fastpoint Nybegynder
20. oktober 2001 - 01:31 #8
:)

lif://  = http://

forstår du? på den måde skal folk have mit program installeret for at kunne downloade en fil...

skriver man lif://www.opasia.dk kommer man ingen steder...har man programmet installeret vil den kunne forstå det:)
Avatar billede dkn Nybegynder
20. oktober 2001 - 01:36 #9
Ok nu forstår jeg :>.
Men jeg går i seng nu, jeg vil tænke over det.
Ses
Avatar billede theill Nybegynder
20. oktober 2001 - 01:40 #10
Normalt ville dit program blive eksekveret med %1 som foerste parameter. Og saa burde du bare kunne hente den ved en alm. \'hent parameter fra command line\' kommando. Jeg kan ikke lige huske hvordan man henter den ud fra Delphi, men i C++ Builder kan du bruge ParamStr() funktionen. Mon ikke Delphi har en tilsvarende?
Avatar billede stoney Nybegynder
20. oktober 2001 - 07:46 #11
procedure TForm1.Button1Click(Sender: TObject);
var
R : Tregistry;
begin
R :=TRegistry.Create;
R.Rootkey:=HKEY_CLASSES_ROOT;
with R do try
if keyexists(\'\\LIF\') = true then
showmessage(\'Findes // begynd at downloade\')
else  begin
showmessage(\'Findes ikke // ingenting at downloade\');

R.CloseKey;
end
  finally
R.Free;
  end;
  end;
Avatar billede speedy Nybegynder
20. oktober 2001 - 10:54 #12
okay, jeg tror jeg har forstået hvad du vil. Kan du så ikke lige fortælle hvor langt du er kommet. Altså hvad mangler du at få hjælp til. Det synes jeg ikke man kan få ud af det du har skrevet.

Jeg har også lige lavet min egen protocol, så mit program åbner hvis man skriver speedy://filen.txt


/SpEeDy
Avatar billede fastpoint Nybegynder
20. oktober 2001 - 11:33 #13
Speedy:
Hvis det er muligt kunne jeg godt tænke mig at se den protocol.... eller hvis du lave den så den åbner  hvis man skriver lif://filen.txt
Jeg kan godt åbne et spørgsmål og give dig point for den.





Flere detaljer omkring programmet
-----------------------------------
Jeg vil lave en hjemmeside hvor alle links består i at være lif://3453463 (dvs... de tal er et ID til linket)
Når en person så beslutter sig for at downloade et af mine produkter så SKAL han have mit program installeret for ellers vil han bare få en page not found side. Hvis han derimod har det installeret så vil programmet starte og ved hjælp af linkets id vil den finde ud af hvad det er man vil downloade.
---------------------------------------------


Mit problem liggede i at få mit program til at starte hver gang der blev klikket eller skrevet lif://etellerandet  i adresse baren.
Jeg tror at det er den protocol speedy har lavet jeg mangler derfor vil jeg lige kigge på den og vende tilbage..

Avatar billede speedy Nybegynder
20. oktober 2001 - 11:51 #14
procedure Registrer;
var
  Reg: TRegistry;
  buf: Integer;
begin
  buf := 2;
  Reg := TRegistry.Create;
  Reg.RootKey := HKEY_CLASSES_ROOT;
  Reg.OpenKey(\'lif\', true);
  Reg.WriteString(\'\', \'URL:Legende Ivrende Folk\'); // Erstat Legende Ivrende Folk med hvad LIF står for
  Reg.WriteBinaryData(\'EditFlags\', buf, 1);
  Reg.WriteString(\'URL Protocol\', \'\');
  Reg.OpenKey(\'shell\\open\\command\', true);
  Reg.WriteString(\'\', Application.ExeName + \' %1\');
  Reg.CloseKey;
end;


Denne procedure skriver sig ind i registreringsdatabasen på en måde så det er dit program som bliver kørt når der bliver kørt en lif://4897436  i browseren.

Så skal du ind i onCreate på din Form og sige dette:

procedure TForm1.FormCreate(Sender: TObject);
var
  Params, DownloadID: string;
  position: integer;
begin
  if ParamCount > 0 then
    Params := lowercase(ParamStr(1));
  Position := Pos(\'lif://\', Params);
  if position > 0 then
    DownloadID := Copy(Params, 7, Length(Params) - 7);
  ShowMessage(DownloadID);
end;

Så kan du gøre hvad du vil med DownloadID som nu indeholder det nummer det blev kaldt med.

Altså hvis du registrerer med den procedure, og dereter skriver: lif://4656656  i browseren, åbner dit program og popper up med tallet 4656656.

Var det noget i den stil du skulle bruge ?

/SpEeDy
Avatar billede dkn Nybegynder
20. oktober 2001 - 12:25 #15
Uses
  Registry;
Avatar billede speedy Nybegynder
20. oktober 2001 - 12:32 #16
dkn>>Nå ja, havde jeg lige glemt at sige :)

/SpEeDy
Avatar billede fastpoint Nybegynder
25. oktober 2001 - 10:09 #17
Tak til jer alle sammen og især speedy for den fine kode stump:)

Jeg er ikke sikker på hvordan jeg skal fordele pointene.... nok flest til speedy:)

Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester