Strona 1 z 1

Uruchamianie programu pocztowego z parametrami [Vista]

Nowy postNapisane: wtorek, 21 października 2008, 15:59
przez mckri
Witam.
Korzystam w kilku swoich programach w uruchamiania programu pocztowego z parametrami (http://cyfbar.republika.pl/differ.html#differ6), przekazujac adres, temat oraz treśc wiadomości.
Przeniosłem sie na MS Vista i tam niestety napotkałem na problem z polskimi znakami. Po prostu w jakimkolwiek parametrze zawarty polski znak zostaje wycięty. Jako domyslny program wywołuję MS Outlook. Na Operze Mail polskie znaki zostają zastapione innymi. Prawidłowo działa tylko dla Windows Mail (dawny outlook express).
Czy znacie sposób aby wywoływac program pocztowy (w moim przypadku MS Outlook) prawidłowo z polskimi znakami? Wiem, że problem pojawił się napewno na Viście, bo ten sam program na XP z Officem 07 działa poprawnie. Ustawienia reagionalne tez wydaja się być poprawne.
Mam:
MS Vista Bussines
Office 2007
CodeGear 2007
Opera 9.6

Re: Uruchamianie programu pocztowego z parametrami [Vista]

Nowy postNapisane: środa, 22 października 2008, 09:09
przez Cyfrowy Baron
Wspomniana porada korzysta z funkcji ShellExecute, ta prosta funkcja uruchamia tylko aplikację i wysyła do niej parametry, nie jest w stanie zrobić niczego więcej.
Twój problem jest związany z kodowaniem znaków, program pocztowy nie rozpoznaje tego kodowania, a konkretnie to nie tłumaczy znaków prawidłowo.

Być może ma to związek z tym, że środowisko C++ Builder nie zostało stworzone z myślą o systemie Vista. Funkcja ShellExecute korzysta z API systemu Windows, a biblioteki w których ta funkcja jest zawarta są w pełni zgodne z systemem XP, ale już nie z Vistą, w którym to systemie zaszły już bardzo istotne zmiany w interfejsie API. Gdy taka funkcja wysyła parametry do programu pocztowego, to ten nie potrafi ich prawidłowo zinterpretować, gdyż oczekuje trochę innego zestawu znaków. Rozwiązaniem mogłoby być wstawianie zamiast polskich liter ich znaków kodowych.

Być może wystarczy jednak skonfigurować program pocztowy tak by używał właściwego kodowania znaków, czyli ISO-8859-2.
Nie używam niestety ani systemu Vista, ani programu Outlook, więc niczego więcej doradzić nie mogę.

Re: Uruchamianie programu pocztowego z parametrami [Vista]

Nowy postNapisane: piątek, 21 listopada 2008, 23:40
przez mckri
Rozwiązaniem była zmiana kodowania przez funkcję AnsiToUtf8();

Re: Uruchamianie programu pocztowego z parametrami [Vista]

Nowy postNapisane: sobota, 22 listopada 2008, 10:22
przez Cyfrowy Baron
To wiele wyjaśnia, jeżeli chodzi o Vistę, ten system korzysta z kodowania UTF, czyli operuje już na zmiennych 64 bitowych, a nie 32 bitowych jak to jest w systemie Windows XP.