Registriert seit: 18. Mär 2005
Ort: NRW
117 Beiträge
Delphi XE2 Professional
|
Re: E-Mailprogramm als Standart Mailer in Windows eintragen
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?
|
|
Zitat
|