Tilføje sit program registreringsdatabasen

Tags:    delphi

Hvordan kan jeg gøre sådan at hvis man højre klikker på en .txt eller .rtf fil så skal der stå : Rediger med Smart Notes ?

Smart Notes er mit program som jeg arbejder på.

MVH.
Armen L.A.



7 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
Hey allesammen,

Det/De script, er fine nok, men er ikk helt skudsikre.
Ex: hvis du vil bruge en som windows ikk har brugt før, vil der ikk være nogen pointer
(txtname = pointeren).
Hvis dette er tilfældet vil scriptet skrive til HKEY_CLASSES_ROOT\\\\shell\\rediger med Smart Notes\\command, og vil så fucke ens registry op.

Der findes dog en løsning :D

Fold kodeboks ind/udKode 


Har ikk testet det, men skulle virke.

Med venlig hilsen
Ken Christensen

[Redigeret d. 01/08-03 15:42:43 af Ken Christensen]



Mange tak!
Der er lige en ting til.
Jeg bruger denne her kode til at skabe min egen filtype (.sndoc), dvs. at filtypen aabnes med mit program automatisk:

var
MyReg: TRegistry;
begin
MyReg := TRegistry.Create;
MyReg.RootKey := HKEY_CLASSES_ROOT;
MyReg.LazyWrite := false;
MyReg.OpenKey('.sndoc\\shell\\open\\command', true);
MyReg.WriteString('', '"'+application.exename+'" "%1"');
MyReg.CloseKey;
MyReg.OpenKey('.sndoc\\DefaultIcon', true);
MyReg.WriteString('', application.exename+',0');
MyReg.CloseKey;
MyReg.free;
end;

men der er noget galt. Den virker kun paa min comp. har testet paa en anden og der virker det ikke.
Ved i hvad der er galt?
Og ved I hvordan man aendre ikonet for filtypen ?

MVH.
Armen L.A.

[Redigeret d. 02/08-03 18:24:31 af Armen L.A.]


Det eneste der skal stå i nøglen .sndoc er navnet på filtypen (fx sndocfile).
Alt andet skal ind i en anden nøgle med navn efter filtypen (sndocfile).

Det her burde virke (også med ikonet):

var
MyReg: TRegistry;
begin
MyReg := TRegistry.Create;
MyReg.RootKey := HKEY_CLASSES_ROOT;
MyReg.LazyWrite := false; {jeg er ikke sikker på at denne linie er smart, bruger flere ressurcer}
MyReg.OpenKey('.sndoc', true);
MyReg.WriteString('', 'sndocfile');
MyReg.CloseKey;
MyReg.OpenKey('sndocfile\\shell\\open\\command', true);
MyReg.WriteString('', '"'+application.exename+'" "%1"');
MyReg.CloseKey;
MyReg.OpenKey('sndocfile\\DefaultIcon', true);
MyReg.WriteString('', application.exename+',0');
MyReg.CloseKey;
MyReg.free;
end;

Emil Melgaard
emil.melgaard@private.dk
- Admin på gruppen Delphi spilprogrammering.
http://www.delphispilprogram.udvikleren.dk



Hvordan kan jeg gøre sådan at hvis man højre klikker på en .txt eller .rtf fil så skal der stå : Rediger med Smart Notes ?

Smart Notes er mit program som jeg arbejder på.

MVH.
Armen L.A.


Her er en procedure til at tilføje det til .txt:

<pre>var Reg: TRegistry;
txtName: String
begin
Reg := Tregistry.Create;
try
Reg.RootKey := HKEY_CLASSES_ROOT;
Reg.OpenKey('.txt', True);
Reg.ReadString('') := txtName;
Reg.CloseKey;
Reg.OpenKey(txtName + '\\Shell\\Rediger med Smart Notes\\command', True);
Reg.WriteString('', 'C:\\Sti\\Til\\Program.exe %1');
Reg.CloseKey;
finally
Reg.CloseKey;
Reg.Free;
end;</pre>
Emil Melgaard
emil.melgaard@private.dk
- Admin på gruppen Delphi spilprogrammering.
http://www.delphispilprogram.udvikleren.dk



Hvordan kan jeg gøre sådan at hvis man højre klikker på en .txt eller .rtf fil så skal der stå : Rediger med Smart Notes ?

Smart Notes er mit program som jeg arbejder på.

MVH.
Armen L.A.

Her er en procedure til at tilføje det til .txt:

<pre>var Reg: TRegistry;
txtName: String
begin
Reg := Tregistry.Create;
try
Reg.RootKey := HKEY_CLASSES_ROOT;
Reg.OpenKey('.txt', True);
Reg.ReadString('') := txtName;
Reg.CloseKey;
Reg.OpenKey(txtName + '\\Shell\\Rediger med Smart Notes\\command', True);
Reg.WriteString('', 'C:\\Sti\\Til\\Program.exe %1');
Reg.CloseKey;
finally
Reg.CloseKey;
Reg.Free;
end;</pre>
Emil Melgaard
emil.melgaard@private.dk
- Admin på gruppen Delphi spilprogrammering.
http://www.delphispilprogram.udvikleren.dk

Virker ik!
Den melder også fejl ved Reg.ReadString('') := txtName;
Burde nok være ...(txtname);
men det virker stadig ik. Der er ingen Rediger med Smart Notes i popupmenuen for en .txt fil.

MVH.
Armen L.A.



Hvordan kan jeg gøre sådan at hvis man højre klikker på en .txt eller .rtf fil så skal der stå : Rediger med Smart Notes ?

Smart Notes er mit program som jeg arbejder på.

MVH.
Armen L.A.

Her er en procedure til at tilføje det til .txt:

<pre>var Reg: TRegistry;
txtName: String
begin
Reg := Tregistry.Create;
try
Reg.RootKey := HKEY_CLASSES_ROOT;
Reg.OpenKey('.txt', True);
Reg.ReadString('') := txtName;
Reg.CloseKey;
Reg.OpenKey(txtName + '\\Shell\\Rediger med Smart Notes\\command', True);
Reg.WriteString('', 'C:\\Sti\\Til\\Program.exe %1');
Reg.CloseKey;
finally
Reg.CloseKey;
Reg.Free;
end;</pre>
Emil Melgaard
emil.melgaard@private.dk
- Admin på gruppen Delphi spilprogrammering.
http://www.delphispilprogram.udvikleren.dk
Virker ik!
Den melder også fejl ved Reg.ReadString('') := txtName;
Burde nok være ...(txtname);
men det virker stadig ik. Der er ingen Rediger med Smart Notes i popupmenuen for en .txt fil.

MVH.
Armen L.A.

Hej Armen,

Du skal læse værdien af "default" nøglen for at finde ud af hvilken nøgle du skal indsætte dine data under.


Brug dette i stedet for:
Fold kodeboks ind/udKode 


Så burde det virke.



Mange tak!
Der er lige en ting til.
Jeg bruger denne her kode til at skabe min egen filtype (.sndoc), dvs. at filtypen aabnes med mit program automatisk:

var
MyReg: TRegistry;
begin
MyReg := TRegistry.Create;
MyReg.RootKey := HKEY_CLASSES_ROOT;
MyReg.LazyWrite := false;
MyReg.OpenKey('.sndoc\\shell\\open\\command', true);
MyReg.WriteString('', '"'+application.exename+'" "%1"');
MyReg.CloseKey;
MyReg.OpenKey('.sndoc\\DefaultIcon', true);
MyReg.WriteString('', application.exename+',0');
MyReg.CloseKey;
MyReg.free;
end;

men der er noget galt. Den virker kun paa min comp. har testet paa en anden og der virker det ikke.
Ved i hvad der er galt?
Og ved I hvordan man aendre ikonet for filtypen ?

MVH.
Armen L.A.

[Redigeret d. 02/08-03 18:24:31 af Armen L.A.]



Tak til jer allesammen!
Nu virker det perfekt..
Kunne ikke goere det uden jer! :)

MVH.
Armen L.A. :D



t