Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi E-Mailprogramm als Standart Mailer in Windows eintragen (https://www.delphipraxis.net/96277-e-mailprogramm-als-standart-mailer-windows-eintragen.html)

DonMaddin 1. Aug 2007 00:02

Re: E-Mailprogramm als Standart Mailer in Windows eintragen
 
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:10 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz