Popap z informacją od kogo poczta przyszła

Pytania, problemy, uwagi związane ze starszymi wersjami Microsoft Outlook 2003, 2002 (XP), 2000, 98

Moderator: Moderatorzy

Popap z informacją od kogo poczta przyszła

Postprzez Shon Oskar » Wt 30.01.2007 16:31

Michau, wpadł mi pomysł na napisanie procedurki, która będzie uruchamiana po skończeniu połączenia z Serwerem ...

Chyba już miąłem podobne zachcianki ale rozwiązałem to przez Application_ItemSend

Pytanie czy da się wykonac np wyświetlenie okna, w którym bedą informacje o nowoprzybyłej poczcie (poniżej przykładowe okno)

Obrazek

Ilość nie przeczytanych / a wszystkich wiadomości od nadawcy.

Może nie w formie Formy VBA... ale może HTMLowego okna, podobnego do "Outlook na dziś", jeżeli nie da sie wychwycić koniec połączenia odbierania poczty.

Pytanie po co to komu:
Dzieki pogrupowaniu wiadomości po odbiorcach, wiele osób nie czyta maili. Wiadomość wpada gdzies tam dalego w nadawce, efektem czego daje to słaba reakcje pracownika.

1 - Ano ograniczył bym to okno tylko o osób pracujących w firmie (jezli nadawca ma wszystkie wiadomości przeczytane to poprostu nie był by wyświetlany)
2 - Zapobiegł bym braku reakcji odbiorców, gdzie ich wiadomości sa pogrupowane i nie zwracają uwagi na to co przyszło; Wymyszając wyświetlenie tego okna lub strony zakładki HTML.

Jeżeli wpada ci do głowy jak sie za to zabrać ....
prosze o podpowiedź ;]
O'Shon
Shon Oskar
 
Posty: 182
Dołączył(a): Pn 16.10.2006 09:05
Lokalizacja: Veracomp S.A.

Postprzez michu » Wt 30.01.2007 18:22

Przede wszystkim w VBA nie masz żadnego zdarzenia, które informowałoby Cię o tym, że zakończył się proces pobierania wiadomości. Więc ewentualnie można po zdarzeniu Application_NewMailEx czekać jakiś określony czas i jeśli nie pojawi się nowa wiadomość, to wyświetlać jakieś podsumowanie od kogo przyszła poczta. Ale w VBA raczej ciężko to oprogramować, wypadałoby zrobić to przynajmniej w COM Addin.

Innym rozwiązaniem może być okresowe uruchamianie aplikacji, która będzie sprawdzać nowe wiadomości.
Pozdrawiam
Michu
michu
 
Posty: 4190
Dołączył(a): N 05.02.2006 17:49
Lokalizacja: Jelenia Góra

Postprzez OShon » Wt 30.01.2007 18:59

Miuchu
Jest może gdzieś w internecie jak produkować AddInny
Nigdy tego nie robiłem - a moja aplikacja ma już 2mb (i jeszcze kupe do zrobienia).
Wypadało by może przestawić się na DLLe aby chociażby zwiększyć czas reakcji i oddzielić fizycznie wtyczki aplikacji.

Jeżeli chodzi o
"może być okresowe uruchamianie aplikacji"
to w VBA nie da się tego wykonać.
Zapuszczenie zegara wymuszane jest przez sprawdzanie w pętli czy czas od zadanego upłyną, co w konsekwencji sprowadza się do zajęcia proca w 100%. VB6 (Timer) lub jakiś rozwiązanie mi nieznane było by tutaj atutem.

a apropo zakładki HTMLowej?
nie dało by się w ten sposób ??
Obrazek
Oskar Shon - MVP Office Dev. 11/21, 3x MCC, 4/9/22 TechNet
Forum moderator: Outlook.pl | ExcelForum.pl | MSDN dział VBA
Zobacz fajne dodatki: Outlooka, Excela, Worda lub PowerPointa
OShon
 
Posty: 10916
Dołączył(a): Cz 19.10.2006 08:31
Lokalizacja: Projekt autorski VBATools.pl

Postprzez michu » Wt 30.01.2007 19:29

Tutaj znadziesz dużo odnośników do artykułów na temat pisania Addinów:
How to create a COM add-in for Outlook 2002
Polecałbym Ci zaimplementować właśnie Addina, bo z czasem, gdy projekt będzie się rozrastał coraz trudniej będzie implementować go w VBA.

Co do zakładki HTML, to nie wiem o co dokładnie chodzi.
Pozdrawiam
Michu
michu
 
Posty: 4190
Dołączył(a): N 05.02.2006 17:49
Lokalizacja: Jelenia Góra

Postprzez Shon Oskar » Śr 31.01.2007 15:59

Coś na kształt dodatkowego raportu jak w zakładce "Outlook na dziś"
z możliwością zaaplikowania tego w VBA z poziomu (na razie w VbaProject.OTM)

Obrazek

Dodałem w projekcie widoku (oczywiście to nie działa) kolumnę "Nieprzeczytane wiadomości korporacyjne"
gdzie naciśnięcie przycisku otworzy wszystkie nieprzeczytane wiadomości
a lista tych nadawców będzie ograniczona do kontaktów z identyfikatorem w kartotece kontaktów.
(bez względu w jakiej zakładce "Skrzynka odbiorcza" się one znajdują)
O'Shon
Shon Oskar
 
Posty: 182
Dołączył(a): Pn 16.10.2006 09:05
Lokalizacja: Veracomp S.A.

Postprzez michu » Śr 31.01.2007 19:11

Jeśli chcesz w ten sposób modyfikować stronę Outlook Today, to musisz po prostu zrobić od nowa własną stronę i powiedzieć Outlook'owi, żeby jej używał.

Oczywiście taką stronę musisz oprogramować w JavaScript lub VBScript z użyciem obiektów Outlook'a. Najważniejszy jest sposób, w jaki uzyskuje się dostęp do obiektu aplikacji Outlook'a na takiej stronie. Robi się to w ten sposób:
Kod: Zaznacz cały
<script language=vbscript>
...
Set oApplication = window.external.OutlookApplication
...
</script>


No i jak masz obiekt aplikacji Outlook'a (Outlook.Application), to dalej już wszystko proste :)
Pozdrawiam
Michu
michu
 
Posty: 4190
Dołączył(a): N 05.02.2006 17:49
Lokalizacja: Jelenia Góra

Postprzez Shon Oskar » Cz 01.02.2007 09:58

Gdzie sie umieszcza ten kod?
w OTM'ie (w którym jego miejscu), czy tworzy sie inny plik, który może być dołączony w do katalogu
c:\Documents and Settings\User\Dane aplikacji\Microsoft\Outlook\

i jeżli 3ba ją projektować od nowa to jak dostać sie do tego co już jest ustawione jako domyślne? - aby nie zmiszczyć perwotnej funkcjonalności.

Moją modyfikacją chciałbym sie podzielić z innymi, więc nie może to być rozwiązanie lokalne. (przycisk z prawej strony Outllook Today "Dostosuj Outlook na dziś..." u mnie nie działa)
O'Shon
Shon Oskar
 
Posty: 182
Dołączył(a): Pn 16.10.2006 09:05
Lokalizacja: Veracomp S.A.

Postprzez michu » Cz 01.02.2007 10:06

Nie da się modyfikować strony Outlook Today w tak zaawansowany sposób. Przycisk "Dostosuj" pozwoli Ci tylko na kilka drobnych zmian, ale nie zmienisz funkcjonalności strony Outlook Today, tak aby osiągnąć funkcjonalność, którą opisujesz.

Idea jest więc taka, że musisz utworzyć nową własną stronę HTML (bo Outlook Today to strona HTML) i zastąpić nią stronę Outlook Today. Ale być może będzie prościej nie zamieniać strony Outlook Today, tylko utworzyć własną stronę HTML z pewną funkcjonalnością i przypisać ją do jakiegoś innego foldera niż folder główny.
Pozdrawiam
Michu
michu
 
Posty: 4190
Dołączył(a): N 05.02.2006 17:49
Lokalizacja: Jelenia Góra

Postprzez Shon Oskar » Cz 01.02.2007 10:12

No czemu nie (tez jest rozwiązanie)- na skutach będzie ładna ikonka korporacji i na niej wszystkie potrzebne rzeczy.
Tylko dalej pozostaje pytanie gdzie sie wsadza kod (jaki poczatek mi podałeś /dziekuje) tak aby zadziałało i można było by sie tym podzielić (bez Exchange'a)
O'Shon
Shon Oskar
 
Posty: 182
Dołączył(a): Pn 16.10.2006 09:05
Lokalizacja: Veracomp S.A.

Postprzez michu » Cz 01.02.2007 10:18

Tą linię kodu, którą Ci podałem wstawia się w pliku HTML w znaczniku <HEAD>, a dalej już programuje się w skrypcie, jak to w stronach HTML.
Pozdrawiam
Michu
michu
 
Posty: 4190
Dołączył(a): N 05.02.2006 17:49
Lokalizacja: Jelenia Góra

Postprzez Shon Oskar » Cz 01.02.2007 10:43

eee ale co, tworze plik .htm czy .html
i gdzie on ma się znajdować i jak go podpiąć do VBA ? co by można było go uaktualniać (zastępować np. nową wersją (jak w przypadku OTM'a) przez nadpisanie pliku).

Jak ustawić wywołanie automatycznie (może jego inicjacje "skrót" tworzyć w Application_Startup podobnie jak CommandBar) aby pojawiła się ikonka w Pasku Outlooka...

Może za wysoko mierze i nie bawiłeś się w te klocki - a znasz temat teoretycznie i będę skazany na przepastne szperanie po stronach.
Bardzo cenie twoje uwagi, bo dzięki nim 45userów już bawi się w to co stworzyłem, a przede mną jeszcze 3x większa rzesza i głowa pełna pomysłów. Zamin strace do tego zapał chciałbym zrealizować choć wiekszą cześć projekru. Prosze podaj mi jakąś kompleksową instrukce odnoście tego zagadnienia.
O'Shon
Shon Oskar
 
Posty: 182
Dołączył(a): Pn 16.10.2006 09:05
Lokalizacja: Veracomp S.A.

Postprzez michu » Cz 01.02.2007 10:57

eee ale co, tworze plik .htm czy .html

Nie ma różnicy, po prostu ma to być strona HTML z Javascript/VBScript.

W tym rozwiązaniu zapomnij o edytorze VBA. Do każdego foldera w Outlook'u można podpiąć stronę HTML (HTM). Wtedy nie jest wyświetlana w Outlook zawartość foldera tylko ta właśnie strona HTML. Dokładnie w ten sposób działa strona Outlook Today.

Ponieważ Outlook wystawia na zewnątrz model obiektowy (zewnętrznym aplikacją) dlatego możesz sobie utworzyć stronę HTML, która przy pomocy modelu obiektowego Outlook'a oraz JavaScript lub VBScript manipuluje (czyta, edytuje) danymi Outlook'a. Czyli możesz sobie np. zrobić stronę HTML, która wyświetla jakieś dane z Outlook'a, czy nawet pozwala wykonywać na nich jakieś operacje. Oczywiście programujesz to wszystko w JavaScript lub VBScript z poziomu strony HTML.

Jeśli robisz zewnętrzną stronę HTML wykorzystującą model obiektowy Outlook'a (tzn. taką która nie jest wyświetlana bezpośrednio w Outlook'u), to musisz sobie zainstancjować obiekt Outlook.Application. Ale z tym wiążą się problemy, bo Outlook będzie wyświetlał ostrzeżenia bezpieczeństwa, gdy będziesz próbował odczytywać niektóre właściwości. Jeśli jednak strona będzie używana bezpośrednio w Outlook'u, to do obiektu Outlook.Application uzyskujesz dostęp przez wywołanie instrukcji
Set oApplication = window.external.OutlookApplication
i wtedy nie dostajesz ostrzeżeń bezpieczeństwa.

Robiłem takie rzeczy, ale nie jestem w stanie na forum podać Ci dokładniejszej instrukcji czy kompletnego rozwiązania, bo wiąże się to po prostu z brakiem czasu, mogę Ci co najwyżej dawać tu wskazówki.

Dobrym źródłem wiedzy na ten temat jest strona www.outlookcode.com albo literatura, np. książka "Programming Outlook and Exchange 2003".
Pozdrawiam
Michu
michu
 
Posty: 4190
Dołączył(a): N 05.02.2006 17:49
Lokalizacja: Jelenia Góra


Powrót do Microsoft Outlook

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 gości