Aktuelle Zeit: 20.05.2013 02:03

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: PB und ComatePlus - Outlook
BeitragVerfasst: 08.07.2011 10:16 
Offline

Registriert: 08.07.2011 09:53
Hallo,

ich habe folgendes Problem:
Es soll unter Windows auf ein Exchange-Postfach zugegriffen werden und Mails bearbeitet werden.
Dazu wollte ich ComatePlus nutzen. Klappt auch fast alles, nur:
Am Ende des Programms läuft die Outlook.exe weiter, obwohl sie eigentlich beendet werden soll.
Ich hab mal ein Testprgramm erstellt, welches den Fehler enthält:

Code:
;erstellt unter Verwendung von:

;/////////////////////////////////////////////////////////////////////////////////
;***COMate***  COM automation through iDispatch.
;*===========
;*
;*Outlook demo by Marco2007.
;/////////////////////////////////////////////////////////////////////////////////

EnableExplicit

XIncludeFile "c:\Programme\PureBasic\COMatePlus\COMatePLUS.pbi"

Define.COMateObject OutlookObject, empf_wetter, folder_wetter_inbox, NS
Define.l lObject_handler


Define.s str_kommando
Define.l hStatement, hResult

 
  OutlookObject = COMate_CreateObject("Outlook.Application")
 
  If OutlookObject
   
    ;namespace festlegen
    str_kommando = "GetNamespace(" + Chr(39) + "MAPI" + Chr(39) + ")"
    ns=OutlookObject\GetObjectProperty(str_kommando)
    If ns
       ;Empfänger anlegen
       str_kommando = "Logon(" + Chr(39) + "H0815" + Chr(39) + ",#nullstring, #FALSE, #TRUE)" ;H0815 - Profilname
       hStatement = COMate_PrepareStatement(str_kommando)
       hResult = ns\invoke("", hStatement)
       str_kommando = "CreateRecipient(" + Chr(39) + "A12345" + Chr(39) + ")" ;A12345 - Adressbucheintrag
       empf_wetter = ns\GetObjectProperty(str_kommando)
       If empf_wetter
         lObject_handler = empf_wetter\GetCOMObject()
         ; Ordnerobjekt anlegen
         ;kommandostring für Folder erstellen
         str_kommando = "GetSharedDefaultFolder(" + Str(lObject_handler) + " as iDispatch, 6)"
         hStatement = COMate_PrepareStatement(str_kommando)
         If hStatement = 0
           MessageRequester("COMatePLUS!", "Couldn't create the statement!" + #CRLF$ + #CRLF$ + "COMatePLUS error : " + COMate_GetLastErrorDescription())
           End
         EndIf
         folder_wetter_inbox = ns\GetObjectProperty("", hStatement)
         If folder_wetter_inbox
            folder_wetter_inbox\Release()
            Debug COMate_GetLastErrorDescription()
         Else
           MessageRequester("Folder Wetter inbox konnte nicht angelegt werden", "- ns\GetObjectProperty(" + Chr(10) + str_kommando + ")" + Chr(10) + COMate_GetLastErrorDescription())
         EndIf
         empf_wetter\Release()
       Else
         MessageRequester("Empfänger konnte nicht angelegt werden", "- ns\GetObjectProperty(" + Chr(10) + str_kommando + ")" + Chr(10) + COMate_GetLastErrorDescription())
       EndIf
       ns\Invoke("Logoff")
       Debug COMate_GetLastErrorDescription()
      ns\Release()
    Else
      MessageRequester("Namespace konnte nicht angelegt werden", "- ns\GetObjectProperty(" + Chr(10) + str_kommando + ")" + Chr(10) +  COMate_GetLastErrorDescription())
    EndIf
    hResult=OutlookObject\Invoke("Quit")
    Debug COMate_GetLastErrorDescription()
    OutlookObject\Release()
  Else
    MessageRequester("Outlook Objekt konnte nicht angelegt werden", "- ns\GetObjectProperty(" + Chr(10) + str_kommando + ")" + Chr(10) +  COMate_GetLastErrorDescription())
  EndIf
End


Versuche ich das Gleiche mit VBS oder VBA, wird die Outlook.exe beendet.

Code:
Sub test()
Dim i, app_out, ns, empf_wetter

Dim folder_wetter_inbox

Set app_out = CreateObject("Outlook.Application")
Set ns = app_out.GetNamespace("MAPI")
ns.Logon "H0815", , False, True
Set empf_wetter = ns.CreateRecipient("A12345")
'
''Ordnerobjekte anlegen


Set folder_wetter_inbox = ns.GetSharedDefaultFolder(empf_wetter, 6)

'Aufräumen

Set folder_wetter_inbox = Nothing
Set empf_wetter = Nothing
Set ns = Nothing
Set app_out = Nothing

End Sub


Wo liegt mein Fehler?

Ich hatte schon mal bei
http://www.development-lounge.de/viewtopic.php?f=31&t=6629
nachgefragt, dort aber bis jetzt keine Antwort bekommen.


Vielen Dank schon mal für Hinweise.
H. Mager


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: PB und ComatePlus - Outlook
BeitragVerfasst: 22.09.2011 21:52 
Offline
Benutzeravatar

Registriert: 26.10.2006 13:19
Ich weiß nicht wirklich, was der Code machen soll :oops:
Ich habe zwar Office2007, aber ich benötige die Office-Produkte (außer Access - und da ist mir sqlite bei den meisten Anwendungen auch schon lieber) eigentlich überhaupt nicht.

Läuft Outlook.exe auch weiter, wenn Du z.B.: den empf_wetter-Teil entfernst?
Welche Version von Outlook hast Du?

_________________
Windows 7 - PB 4.51 RC2
4.30, 4.20, 4.10, 4.02, 4.01, 4.00, 3.94, 3.93, 3.92, 3.91, 3.90, 3.81, 3.72, 3.62, 3.51, 3.50, 3.30, 2.90, 2.60, 2.50, 2.40, 2.30, 2.20, 2.10, 2.00
_________________________________


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: PB und ComatePlus - Outlook
BeitragVerfasst: 30.09.2011 09:10 
Offline

Registriert: 08.07.2011 09:53
Vielen Dank für die Antwort.

Der Code macht gar nix, das ist nur eine leere Hülle, die das Problem zeigen soll.
Wenn ich den Teil mit dem Empfänger weglasse, wird die Outlook.exe beendet. Da ich aber die Mails aus diesem Posteingang bearbeiten möchte, kann ich das im richtigen Progrämmchen nicht so gut weglassen ;)
Es sollen die Mails angeschaut werden und wenn eine bestimmte eingetroffen ist, muss ein Anhang abgetrennt und gespeichert werden. Das klappt auch alles und dass die Exe weiter da ist, ist hoffentlich auch nur ein kosmetisches Problem. Ich bin aber pingelig...

Ich habe Outlook 2003.

Henry Mager


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  
cron

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye