Announcement

Collapse
No announcement yet.

Late Binding für Office Anwendungen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Late Binding für Office Anwendungen

    Hi Leute,

    normaleerweise bin ich ja in C# beheimatet, jedoch hab ich gelesen, dass Interop Operationen in VB.Net leichter zu handlen sind als in C#.

    Möchte gerne eine Importfunktion von Outlook implementieren und das dann versionsunabhängig! Ich schätze über Late Binding ist das kein Problem - nur finde ich unzureichend bis gar keine Literatur darüber...

    Hat einer von euch zufällig ein Beispiel bzw. kann mir jemand helfen??
    Beste Grüße
    Norbert

    _Code * It * Simple * and * Smile_

    Access: FAQAccess-Funktionen
    SQL: sqlfaq ° sqlservercentral ° databasejournal ° insideSQL
    C#: snippets ° C# Corner ° codeproject ° Free ebook ° Pflichtlektüre
    Was nützt die beste Informationstechnik, wenn sich die Menschen nichts zu sagen haben?”

  • #2
    normaleerweise bin ich ja in C# beheimatet, jedoch hab ich gelesen, dass Interop Operationen in VB.Net leichter zu handlen sind als in C#.
    Quelle ?

    Comment


    • #3
      zB.: http://www.hanselman.com/blog/BackToBasicsVarDim.aspx
      Beste Grüße
      Norbert

      _Code * It * Simple * and * Smile_

      Access: FAQAccess-Funktionen
      SQL: sqlfaq ° sqlservercentral ° databasejournal ° insideSQL
      C#: snippets ° C# Corner ° codeproject ° Free ebook ° Pflichtlektüre
      Was nützt die beste Informationstechnik, wenn sich die Menschen nichts zu sagen haben?”

      Comment


      • #4
        Hallo...
        wars das jetzt ?
        Beste Grüße
        Norbert

        _Code * It * Simple * and * Smile_

        Access: FAQAccess-Funktionen
        SQL: sqlfaq ° sqlservercentral ° databasejournal ° insideSQL
        C#: snippets ° C# Corner ° codeproject ° Free ebook ° Pflichtlektüre
        Was nützt die beste Informationstechnik, wenn sich die Menschen nichts zu sagen haben?”

        Comment


        • #5
          Falls du mich ansprichst ja. Ich war nur neugierig was da einfacher sein soll. Zu deinem Beispiel/Literatur Problem habe ich leider nichts beizutragen.

          Als einzigen Hinweis könnte ich dir nur mitgeben das du dir falls du .Net 4.0 benutzt mal den dynamic Datentyp ansehen solltest der das ganze, im Zusammenspiel mit den in .Net 4.0 nun möglichen named Parameters in C#, genauso einfach aussehen lassen sollte wie in VB.Net.
          Dann hast du zumindest, wenn du aus der C# Welt kommst, kein Problem mit der Sprache sondern nur mit Outlook

          Comment


          • #6
            ok, vielen Dank.
            Dann werd ich mich mal ein wenig in VB.Net einlesen...und mich mit Office etwas ärgern...
            Beste Grüße
            Norbert

            _Code * It * Simple * and * Smile_

            Access: FAQAccess-Funktionen
            SQL: sqlfaq ° sqlservercentral ° databasejournal ° insideSQL
            C#: snippets ° C# Corner ° codeproject ° Free ebook ° Pflichtlektüre
            Was nützt die beste Informationstechnik, wenn sich die Menschen nichts zu sagen haben?”

            Comment


            • #7
              Evtl. hast du ja Lust ein Projekt von mir und zwar NetOffice zu probieren.
              Es bietet versionsunabhängen Zugriff auf alle Office Anwendungen ist dabei versionsunabhängig.
              Der Zugriff ist identisch zu den Interop Assemblies.
              http://netoffice.codeplex.com
              C# Example Code für Outlook ist dabei.
              Sofern Fragen offen sind sag mir Bescheid.
              Zuletzt editiert von Sebastian.Lange; 11.05.2011, 00:09.

              Comment


              • #8
                hi,

                bei einer dll, bei der ich auf outlook zugreife, benutze ich dies hier zur deklaration, damit hast du es versionsunabhängig.

                allerdings hab ich es mir damals auch nur mehr oder minder zurechtgeschustert, man findet wirklich wenig infos zu den InterOpAssemblies und deren umgang, das meiste muss man wohl durch probieren und rumgucken herausfinden.


                ggf hilft es dir:
                [highlight=vb.net]
                Dim olApp = CreateObject("Outlook.Application")
                Dim ns As Object
                Dim defFolder As Object
                Dim newMail As Object

                ns = ol.GetNamespace("MAPI")
                ns.Logon(, , True, True)
                fdMail = ns.GetDefaultFolder(5) ' 5 = Outlook.OlDefaultFolders.olFolderSentMail
                newMail = fdMail.Items.Add(0) ' 0 = Outlook.OlItemType.olMailItem
                [/highlight]

                allerdings gibt intellisense dann auf, nen kleiner trick hilft da aus (hier nur mit dem pdfCreator)

                in der deklaration:
                [highlight=vb.net]
                #Const EARLYBINDING = False 'zum Debugging für Intellisense auf True setzen, für die Releasevariante auf False, damit versionsunabhängig

                #If EARLYBINDING Then
                Dim pdfApp As PDFCreator.clsPDFCreator
                #Else
                Dim pdfApp As Object
                #End If
                [/highlight]

                im Code:
                [highlight=vb.net]
                #If EARLYBINDING Then
                pdfApp = New PDFCreator.clsPDFCreator
                #Else
                pdfApp = CreateObject("PDFCreator.clsPDFCreator")
                #End If
                [/highlight]

                schönen gruß
                chris

                Comment

                Working...
                X