Delphi-PRAXiS
Seite 1 von 2  1 2      

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)

Digielm 21. Jul 2007 11:02


E-Mailprogramm als Standart Mailer in Windows eintragen
 
Hallo Leute ich hab ein E-Mail Programm geschreiben und möchte nun wissen wie ich das in der Windows registrierung eintragen kann, damit das Programm auf alle links reagiert wenn ich auf einer Webseite auf eine Mailadresse klicke.

Danke

marabu 21. Jul 2007 11:30

Re: E-Mailprogramm als Standart Mailer in Windows eintragen
 
Hallo,

die Registrierung aller möglichen Clients wird hier beschrieben: Internet Explorer Client Registry Layout

Deinen Default Mail Handler kannst du z.B. über die Internetoptionen in der Systemsteuerung festlegen. Opera nutzt diese Festlegung nicht und auch andere INET-Clients sind nicht verpflichtet sich an diese MS-Regel zu halten.

Grüße vom marabu

Digielm 21. Jul 2007 13:08

Re: E-Mailprogramm als Standart Mailer in Windows eintragen
 
Kann ich das auch direkt in die Registrierug schreiben ?? ich will das der User das nicht selber machen soll. Mein programm soll nach dem Fragen das automatisch machen

Digielm 21. Jul 2007 13:26

Re: E-Mailprogramm als Standart Mailer in Windows eintragen
 
Oder kann ich das nur auber über eine mapimail lösen ???

ich kann des Programm nicht in den Interneteigenschaften unter Programm eintragen. Hab da nur die Mailprogramme zur auswahl die ich mal installiert habe.

Die Muhkuh 21. Jul 2007 13:30

Re: E-Mailprogramm als Standart Mailer in Windows eintragen
 
Hi,

der Link von marabu zur MSDN zeigt Dir alles, was Du brauchst.

Phoenix 21. Jul 2007 15:58

Re: E-Mailprogramm als Standart Mailer in Windows eintragen
 
Es heisst Standard.

Digielm 23. Jul 2007 15:22

Re: E-Mailprogramm als Standart Mailer in Windows eintragen
 
Also klappt alles soweit nur das die Seite auf eine Simple Mapi.dll hinweist woher kriege ich die bzw. Wie mache ich die

Digielm 23. Jul 2007 16:35

Re: E-Mailprogramm als Standart Mailer in Windows eintragen
 
Kann mit jemand helfen wäre super wichtig

Danke

Digielm 23. Jul 2007 17:35

Re: E-Mailprogramm als Standart Mailer in Windows eintragen
 
Ich hab mir eine Mapi gebastelt aus dem link Link DP
und hab das eingefügt um aus einer Webseite angeklickten E-Mailadresse automatisch in mein Mailprogramm zu kommen.

das einzige was ich jetzt aber nicht rausbekomme ist die Mailadresse die angeklickt wurde.

Hat jemand eine Idee ??

Delphi-Quellcode:
function MailtoUrl(lhSession: LHANDLE; ulUIParam: Cardinal;
    var lpMessage: TMapiMessage; flFlags: FLAGS; ulReserved: Cardinal): Cardinal; stdcall;
var
   filename : String;
begin
    filename := RegRead(HKEY_LOCAL_MACHINE,'SOFTWARE\Clients\Mail\confee-CRM\Protocols\mailto\shell\open\command','');
    showmessage(filename);
    Result := 1;
end;

Gerd01 28. Jul 2007 12:34

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:04 Uhr.
Seite 1 von 2  1 2      

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