Announcement

Collapse
No announcement yet.

sendkeys funktioniert unzuverlässig

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

  • sendkeys funktioniert unzuverlässig

    Hallo,
    ich habe eine Anwendung von VBA (lief unter Excel 2000) nach VB 2005portiert. Teil dieser Anwendung war die Generierung einer Mail in Outlook 2000 aus einem Formular mit automatischer Versendung der Mail.
    [highlight=vbnet]
    Sub EmailSenden(ByVal text As String, ByVal Anhang As String)
    'Aus dem Formular Generierte E-Mail wird versendet.
    Dim olApp As Object
    Dim olNameSpace As Object
    Dim objMailItem As Object
    Dim objFolder As Object

    olApp = CreateObject("Outlook.Application")
    olNameSpace = olApp.GetNamespace("MAPI")
    objFolder = olNameSpace.GetDefaultFolder(4) '4 = olFolderOutbox
    objMailItem = objFolder.Items.Add() '0 = olMailItem

    With objMailItem
    .to = "[email protected]"
    .Subject = "Hierstehtwas " + CStr(Me.TextBox.text)
    If irgendwas = True Then .Attachments.Add(Anhang)
    .body = "Dies ist nur ein Beispiel"
    .display()
    End With
    olApp.ActiveWindow()

    SendKeys.SendWait("%s")
    End Sub
    [/highlight]

    Ich muß die Mail mittels sendkeys versenden, da sonst stöhrende Sicherheitsabfragen erscheinen. Unter VB6 gab es hiermit keine Probleme. Unter VB2005 wird die Mail häufig nicht versendet, sondern nur am Bildschirm angezeigt.

    Hab schon versucht vor dem .display() den GC auszuführen, leider brachte dies nicht den gewünschten Erfolg.

    Vielleicht weiß jemand von Euch rat.

    Viele Grüße
    MikeIO

  • #2
    Hallo,

    du könntest auch MAPI verwenden um die Email zu senden. Die Email wird dabei auch in Outlook erstellt allerdings nicht über COM. Infos: http://entwickler-forum.de/showthrea...highlight=MAPI

    Zum Senden der Tastenanschlage (wenn MAPI nicht verwendet wird) kann statt SendKeys das API PostMessage verwendet werden. Infos: http://entwickler-forum.de/showthrea...light=Sendkeys

    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Hm, hat vielleicht noch jemand ne idee, wieso sendkeys nur ab und zu funktioniert? Ich würde schon gern verstehen, wieso es bei mir diesen merkwürdigen Effekt gibt.

      Comment


      • #4
        Wahrscheinlich "As Designed". Wenn du das können würdest könnte es jede Male-Ware/Wurm das auch. Ist als by Design eine schlechte Lösung da du hier in das Katz u. Maus-Spiel von Email-Hersteller und Wurmhersteller kommst.

        Comment


        • #5
          Nagut, auch wenn es nicht schön ist, dann soll der User halt selbst auf senden klicken.

          Gibt es evtl. die Möglichkeit die Mail, welche aus meinem Formular generiert wird, so zu schützen, daß sie nicht mehr verändert werden kann? So eine Art Schreibschutz.

          Comment


          • #6
            Warum versendest du die Mail nicht mit den Klassen in System.Net.Mail?
            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

            Comment


            • #7
              Weil der User die versendete Mail in Outlook bei gesendete Objekte sehen soll.

              Comment


              • #8
                Übrigens besteht das Problem mit SendKeys auch wenn ich die Schriftart über SendKeys in Courier New umwandeln möchte. Häufig steht dann in der Betreffzeile Courier New.

                Comment


                • #9
                  Das liegt wahrscheinlich daran dass SendKeys die Tastenanschläge in dem Fenster (aus Win-Sicht, also auch Textfelder, etc.) schreibt das gerade den Focus hat -> PostMessage (wie oben geantwortet).

                  mfG Gü
                  "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                  Comment

                  Working...
                  X