Einzelnen Beitrag anzeigen

Gerd01

Registriert seit: 18. Mär 2005
Ort: NRW
117 Beiträge
 
Delphi XE2 Professional
 
#10

Re: E-Mailprogramm als Standart Mailer in Windows eintragen

  Alt 28. Jul 2007, 13:34
Du suchst ein Beispiel?
Hier ist eins. Du brauchst dazu keine mapi.

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

    Reg.RootKey := HKEY_CLASSES_ROOT;
    if Reg.OpenKey('\mailto\shell\open\command',True)
      then Reg.WriteString('',aClient+' %1');
    Reg.CloseKey;
    if Reg.OpenKey('\mailto\DefaultIcon',True)
      then Reg.WriteString('',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(SectionStr,True) then Reg.WriteString('','URL:MailTo Protocol');
    if Reg.OpenKey(SectionStr,True) then Reg.WriteBinaryData('EditFlags',dw,SizeOf(DWord));
    if Reg.OpenKey(SectionStr,True) then Reg.WriteString('URL Protocol','');
    Reg.CloseKey;
    if Reg.OpenKey(SectionStr+'\DefaultIcon',True) then Reg.WriteString('',aClient+',0');
    if Reg.OpenKey(SectionStr+'\shell\open\command',True) then Reg.WriteString('',aClient+' %1');
    if Reg.OpenKey('\Software\Clients\Mail\'+ClientName+'\Shell\open\command',True) then Reg.WriteString('',aClient+' %1');
  finally
    Reg.Free;
  end;
end;
Wobei AppName deine Exe ist und ClientName eine Name als Identifier.

Du hast dich ja anscheinend mit der Programmierung einer eigenen Mapi-Schnittstelle beschäftigt. Bist du da schon weiter gekommen?
  Mit Zitat antworten Zitat