Autor Beitrag
Filewalker
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mi 24.11.04 16:06 
Hi,

ich hoffe das ich in der richtigen kategorie stecke...

kann mir bitte jemand helfen habe folgendes Problem:

Ich hab einen Image Editor geschrieben und möchte das wenn ich auf nen Button klicke, das alle Bildformate (oder nur jpeg) automatisch mit diesem Programm geöffnet wird.. Also eigentlich sodass ich das Symbol von meinem Programm auf dem Image hab und wenn ich doppelt klicke das programm aufgerufen wird..

weiss jemand da weiter...

Mit freundlichem Gruss

Filewalker
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Mi 24.11.04 17:07 
schau mal in die FAQs rein, da müsste ein beitrag von MathiasSimmak sein, der dir das beschreibt !

_________________
In the beginning was the word.
And the word was content-type: text/plain.
Filewalker Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mi 24.11.04 17:15 
sorry, kannst du mir freundlicherweise schreiben in welchem FAQ ich schauen soll..

danke.
Filewalker Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mi 24.11.04 18:03 
Titel: Filewalker
finde dazu leider nichts
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mi 24.11.04 18:54 
da guckst du mal in der registry, wo alle dateiformate registriert sind. suche z.B. einfach mal nach ".jpg".
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
Windows Registry Editor Version 5.00

[HKEY_USERS\S-1-5-21-1229272821-299502267-839522115-1004\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg]

[HKEY_USERS\S-1-5-21-1229272821-299502267-839522115-1004\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg\OpenWithList]
"a"="Skype.exe"
"MRUList"="bhefcjdga"
"b"="mspaint.exe"
"c"="Photoshop.exe"
"d"="opera.exe"
"e"="delphi32.exe"
"f"="msnmsgr.exe"
"g"="IEXPLORE.EXE"
"h"="photopnt.exe"
"i"="msmsgs.exe"
"j"="trillian.exe"

[HKEY_USERS\S-1-5-21-1229272821-299502267-839522115-1004\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg\OpenWithProgids]
"jpegfile"=hex(0):
"CorelPhotoPaint.Image.7"=hex(0):


Das hab ich z.B. dazu gefunden. ich glaube, es reicht, diese Registrierung einfach nach belieben ab zuändern. (wenn mans checkt, was ich aber nicht tue...) ich hab aber auch iwo ein tutorial... moment... Ah ja hier: keine ahnung von wem, es ist jedenfalls englisch kommentiert.

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
uses 
  registry, shlobj; 

procedure TForm1.RegisterFileType(prefix: string; exepfad: string); 
var 
  reg: TRegistry; 
begin 
  reg := TRegistry.Create; 
  try 
    reg.RootKey := HKEY_CLASSES_ROOT; 
    //create a new key  --> .pci 
    reg.OpenKey('.' + prefix, True); 
    try 
      //create a new value for this key --> pcifile 
      reg.Writestring('', prefix + 'file'); 
    finally 
      reg.CloseKey; 
    end
    //create a new key --> pcifile 
    reg.CreateKey(prefix + 'file'); 
    //create a new key pcifile\DefaultIcon 
    reg.OpenKey(prefix + 'file\DefaultIcon', True); 
    //and create a value where the icon is stored --> c:\project1.exe,0 
    try 
      reg.Writestring('', exepfad + ',0'); 
    finally 
      reg.CloseKey; 
    end
    reg.OpenKey(prefix + 'file\shell\open\command', True); 
    //create value where exefile is stored --> c:\project1.exe "%1" 
    try 
      reg.Writestring('', exepfad + ' "%1"');
    finally 
      reg.CloseKey; 
    end
  finally 
    reg.Free; 
  end
  SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nilnil); 
end


procedure TForm1.Button1Click(Sender: TObject); 
begin 
  RegisterFileType('pci''c:\project1.exe'); 
end;


Such mal in der delphi hilfe, wenn du einen der Befehle nicht kennst, denn das könnte interessant sein.

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Mi 24.11.04 18:56 
also z.b.:
www.delphi-forum.de/viewtopic.php?t=78
ok das ist nicht von mathiasismack. ich dacjte da gabs mal was. evtl hab ich mich auch getäuscht !

_________________
In the beginning was the word.
And the word was content-type: text/plain.
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Mi 24.11.04 19:01 
OK gefunden !
war kein FAQ beitrag sondern ne eigene Klasse:
www.delphi-forum.de/viewtopic.php?t=27630

_________________
In the beginning was the word.
And the word was content-type: text/plain.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 24.11.04 19:34 
Na ja, mit der Klasse wäre es "SetDefaultHandler". Wer´s unbedingt selbst machen will, der öffnet den Dateischlüssel und schreibt den Schlüssel der gewünschten Aktion als (Standard) bei "shell" rein.
Filewalker Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Do 25.11.04 12:11 
Titel: Next Problem
Hi,

erstmal möchte ich mich für die schnelle und konkrete Hilfe bedanken.

Die Funktion 'RegisterFileType' ist genau das was ich gesucht habe, vielen dank JayEff... Das Problem ist nur das die Funktion in HKEY_CLASSES_ROOT schreibt und ich mit einem normalen Benutzer da nichts eintragen kann. Kennt jemand eine Lösung für das Problem wie ich als standard Benutzer da etwas eintragen kann?

vielen dank
Filewalker
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 25.11.04 13:09 
Sorry, aber es gibt keine Lösung. Und lass dir nichts anderes einreden.

1. Du könntest zwar dem Standardbenutzer mehr Rechte erteilen, so dass er schreiben kann, aber das würde dann erst mal nur auf deinem Rechner funktionieren. Solltest du dein Programm mal veröffentlichen, und sollte ich es zufälligerweise gut finden und nutzen (wäre ja möglich), würde es auf meinem Rechner schon nicht mehr funktionieren.

2. Ab Windows 2000 kannst du Dateitypen auch unter HKEY_CURRENT_USER registrieren. Aber genau das ist auch der Haken: Es funktioniert erst ab Windows 2000. Sollte ein NT-Nutzer mal an dein Programm geraten, bzw. ein 9x/ME-User, dann guckt der in die Röhre.


Du könntest prüfen, ob der aktuelle User Suche in: Delphi-Forum, Delphi-Library ADMIN-Rechte hat. Wenn nicht, dann deaktiviere die Funktion bzw. verzichte auf den Versuch, den Eintrag zu ändern.
Filewalker Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Do 25.11.04 15:26 
vielen dank Mathias für deine leistungsstarke unterstützung..

Delphi-Forum ist ein eine gute Plattform für fragen und anregungungen..

MfG

Filewalker