Uruchamianie programu pocztowego z parametrami [Vista]

problemy z tworzeniem programów do obsługi sieci, internetu, e-mail itp..

Uruchamianie programu pocztowego z parametrami [Vista]

Nowy postprzez mckri » wtorek, 21 października 2008, 15:59

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
Avatar użytkownika
mckri
Intelektryk
Intelektryk
 
Posty: 160
Dołączył(a): piątek, 15 sierpnia 2008, 13:48
Podziękował : 10
Otrzymał podziękowań: 2
System operacyjny: Windows Vista SP2
Kompilator: BCB 5/2007/2009
    NieznanyNieznana

Re: Uruchamianie programu pocztowego z parametrami [Vista]

Nowy postprzez Cyfrowy Baron » środa, 22 października 2008, 09:09

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ę.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4731
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 445
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Uruchamianie programu pocztowego z parametrami [Vista]

Nowy postprzez mckri » piątek, 21 listopada 2008, 23:40

Rozwiązaniem była zmiana kodowania przez funkcję AnsiToUtf8();
Avatar użytkownika
mckri
Intelektryk
Intelektryk
 
Posty: 160
Dołączył(a): piątek, 15 sierpnia 2008, 13:48
Podziękował : 10
Otrzymał podziękowań: 2
System operacyjny: Windows Vista SP2
Kompilator: BCB 5/2007/2009
    NieznanyNieznana

Re: Uruchamianie programu pocztowego z parametrami [Vista]

Nowy postprzez Cyfrowy Baron » sobota, 22 listopada 2008, 10:22

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.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4731
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 445
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana


Powrót do Aplikacje sieciowe

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 1 gość

cron