Einzelnen Beitrag anzeigen

DonMaddin

Registriert seit: 9. Jun 2007
10 Beiträge
 
#11

Re: E-Mailprogramm als Standart Mailer in Windows eintragen

  Alt 1. Aug 2007, 00:02
Hallo,

ich hätte zu dem Beispiel Fragen:

1. Wofür steht "SectionStr"?

Delphi-Quellcode:

procedure SetDefaultMailTo(AppName,Clientname : string);
var
  Reg : TRegistry;
  DW : DWord;
  aClient : string;
begin
  aClient := Appname;//ExtractShortPathName(Appname);
  Reg := TRegistry.Create;
  try

    Reg.RootKey := HKEY_CLASSES_ROOT;
    if Reg.OpenKey('\mailto\shell\open\command',True)
      then Reg.WriteExpandString('',aClient+' %1');
    Reg.CloseKey;
    if Reg.OpenKey('\mailto\DefaultIcon',True)
      then Reg.WriteExpandString('',aClient+',0');
    Reg.CloseKey;
  finally
    Reg.Free;
  end;
  DW := 2;
  //aClient := ExtractShortPathName(aClient);
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    if Reg.OpenKey('\Software\Clients\Mail',True) then Reg.WriteString('',ClientName);
    Reg.CloseKey;
    if Reg.OpenKey('\Software\Clients\Mail\'+ClientName,True) then Reg.WriteString('',ClientName);
    Reg.CloseKey;
    if Reg.OpenKey('\Software\Clients\Mail\'+ClientName+'\protocols\mailto\',True) then Reg.WriteString('','URL:MailTo Protocol');
    if Reg.OpenKey('\Software\Clients\Mail\'+ClientName+'\protocols\mailto\',True) then Reg.WriteBinaryData('EditFlags',dw,SizeOf(DWord));
    if Reg.OpenKey('\Software\Clients\Mail\'+ClientName+'\protocols\mailto\',True) then Reg.WriteString('URL Protocol','');
    if Reg.OpenKey('\Software\Clients\Mail\'+ClientName+'\protocols\mailto\DefaultIcon',True) then Reg.WriteExpandString('',aClient+',0');
    if Reg.OpenKey('\Software\Clients\Mail\'+ClientName+'\protocols\mailto\shell\open\command',True) then Reg.WriteExpandString('',aClient+' %1');
    Reg.CloseKey;
    if Reg.OpenKey('\Software\Clients\Mail\'+ClientName+'\shell\open\command',True) then Reg.WriteExpandString('',aClient+' %1');
    Reg.CloseKey;
  finally
    Reg.Free;
  end;
end;
Ich habe mal den Code angepasst und mich an den Registry-Einträge von OutlookExpress orientiert.
Wenn ich aus dem Browser raus einen Link mit maito.. anklicke, startet meine exe bzw. bekommt den Focus.
Allerdings passiert nichts, wenn ich im Windows Explorer auf ein File gehe und "Senden an../ Email-Empfänger" wähle.

2. Wenn ich mein Programm auf diese Art & Weise registriere, wie bekomme ich es dann mit, wenn der User aus anderen Programmen eMails verschicken will und wie verarbeite ich die Parameter wie z.B. mailto:... oder wenn Dateien verschickt werden sollen.

Danke.

Gruss Martin
  Mit Zitat antworten Zitat