registreringsdatabasen - Sådan registreres brugerdefineret program til håndtering af mailto-protokol på Windows 7

Indlæg af Hanne Mølgaard Plasc

Problem



OK, det kan være et problem med mit system, men jeg har en meget vanskelig tid at få Windows 7 til at genkende min brugerdefinerede exe som standardhåndterer til mailto-protokollen.


For det første har jeg set dette:
Registrer Windows-programmet med mailto-protokollen programmatisk


Dernæst har jeg set disse:



  • Sådan registreres en internetbrowser eller e-mail-klient med startmenuen i Windows

  • Registrering af et program til en URL-protokol



Jeg har tilføjet, hvad der forekom de relevante registreringsdatabasen, men jeg får stadig Windows Live Mail hver gang jeg klikker på en mailto-link (enten i en browser eller via vinduet Kør). Jeg har indstillet registreringsposter til alle brugere og til den nuværende bruger, stadig det virker ikke. [5] [6]


Når jeg går til appen 'standardprogrammer' og ruller ned til mailto-protokollen, ser jeg kun Outlook og Windows Live Mail opført. Min brugerdefinerede app vises ikke engang.


Jeg regner med, at det er enten noget særligt med Windows 7 eller det er noget med min computer.


Min brugerdefinerede app er en WinForms. Net app, men jeg tror ikke det betyder noget.


Eventuelle ideer er meget velkomne.

Bedste reference


Den måde, der beskrives i svaret, som du refererede til i dit spørgsmål, virker korrekt måde for Windows 7 som for andre operativsystemer.


Jeg formoder at du bruger 64-bit version af Windows 7 og dit program er 32-bit applikation. Så hvis din ansøgning skriver i HKEY\_LOCAL\_MACHINESOFTWAREClassesmailtoshellopencommand -tasten, ændrer den kun nøglen HKEY\_LOCAL\_MACHINESOFTWAREWow6432NodeClassesmailtoshellopencommand, der bruges til 32-bit applikationer. Du kan læse mere om registrerings virtualisering her og her. [8] [9]


Hvis det er tilfældet, kan du ringe direkte indbygget Win32 API RegOpenKeyEx med KEY\_WOW64\_64KEY flag, som vil blive ignoreret på 32-bit operationssystem. [10] [11]

Andre referencer 1


Selvom det er et ret sent svar, er det, hvad der er udarbejdet for mig, det her: Ved regedit erstatter dette de nøgler, der er nævnt i andre svar:


HKEY\_CURRENT\_USERSoftwareMicrosoftWindowsShellAssociationsURLAssociationsMAILTOUserchoice


Se på denne side:
Standard Mailto Registry [12]

Andre referencer 2


Hvordan kan jeg tilføje en brugerdefineret url-handler på Windows. Ligesom iTunes itms://Relateret men ikke.

Andre referencer 3


Dette virker som en meget høj nerd-niveau kontekst til et ret almindeligt problem. Som en nerd fejrede jeg op af diskursen på 64 vs x86 og de pseudo-universelle binære aspekter af .net. Men teknisk supportfejlfinding i mig kan ikke hjælpe, men tror, ​​at kerneproblemet skal gøres klart og rettet systematisk ...


Så dit virkelige problem, uanset postklienten (som du selv sagde), og uanset din CPU, er at du ikke kan få din mailklient til at være standardprotokolhandler til mailto. Eller for at gøre det helt enkelt, du kan ikke få det program, du kan lide at være standardprogrammet.


Jeg er tilbøjelig til at tro, at 64/86 aspekter af problemet ikke er relevante. De er interessante og muligvis har en vis effekt, men hvis programmet kører helt fint (ingen problemer med koden i den arkitektur osv.) og hvis det netop e-mailer fint (e-mails bliver sendt og modtaget, alle SMTP og IMAP hele vejen), så tvivler jeg på, at operativsystemet er planlagt for at holde klienten fra at overtage som lederen af ​​verandaen.


Hvis noget, ville jeg sige, at klienten havde selvværdsproblemer og er bange for at være mailto protokolhandler. De fleste klienter kan ikke modstå, om de skulle være de primære, og hvis du siger ja, passerer de ordet sammen til de andre apps og til registret. De sørger for, at alle ved, at de er den nye postkasse-konge i huset.


Så hvad jeg ville prøve først (grundlæggende fejlfinding): Installer en anden mailklient og se om det har det samme problem. Hvis det gør, er dit operativsystem en bølle, og du vil gerne udforske sådanne ruter.


Men hvis denne anden klient kan komme ind i standardprogrammet klubben og blive gjort mailto handler, så er problemet med din app. Det er et stort wimp, der ikke ved, hvordan man korrekt hævder sig selv.


Men som så mange underdogs, der venter på et køligt barn at tage dem under deres fløj (og ved fløj betyder jeg Thunderbird. Du må ikke glemme nogen anden klient). Din app kan stå på skuldrene til den aktive tredjepartsklient.


Vi må antage, at Thunderbird gjorde mindst en og muligvis to ting, som din app ikke gjorde. Den første fik navnet på det, der var knyttet til protokollen i registreringsdatabasen. Gå poke rundt og se om du kan finde hans navn og hvordan det er forbundet med mailto protokollen. Chancerne er gode, at du kan bytte dit navn til din, eller i det mindste forsøge at knytte protokollen til dig også.


Den anden ting, som T-Bird måske har gjort, var at komme sig i 'Standardprogrammer' -listen (et træk ved 7, som jeg ikke rigtig kunne lide, fordi det havde et køligt koncept bag det - dvs. lad os gruppeprogrammer sammen foran i stedet for at vente og se hver gang, hvis en af ​​dem kan gøre et lignende arbejde. Men Windows skruede den gode tid (stor overraskelse) ved at optræde som den overprotective forælder, det altid er, og dukker op på børnene 'fest og siger 'Jeg tror, ​​at disse to skulle være i denne gruppe, ikke?'


Nå er mit håb det ved at få adgang til mailto ved at låne den fra Thunderbird, at du bliver hilst velkommen til standardprogrammet klubben, men hvis du ikke er og du stadig er mailto handler, skriver jeg det , i det mindste gloat om det i en uge eller to, før du forsøger at tackle det problem.


Nu, hvis Thunderbird ikke kan få mail til kontrol, er jeg meget tilbøjelig til at tro, at Windows 7 som faktisk er indført for at placere en slags mærkeligt kaste system, hvor applikationen og det er installatør (f.eks. Bruger) skal nogle vise sig deres værdighed at være i gruppen ved at finde ud af, hvad den store hemmelighed er.


Åh, og hvis alt andet fejler, prøv genstart i Safe Mode uden netværk, installer din klient i det miljø og start det op. Se om du ikke kan gøre det som standard, mens de andre er i suspenderet animation. Lav et testkørsel (uden netværk, naturligvis) ved at skrive en grundlæggende HTML-side med en mailto og se, om klik på den åbner din klient.


Så krydser du fingrene, når du starter sikkerhedskopiering i normal tilstand.


Lad mig vide, om nogen af ​​ovenstående viste sig at være mindst hjælpsomme.