PDA

Vollständige Version anzeigen : Abarbeitung Befehle erfolgt nicht


s8884martin
02.01.2018, 09:07
Hallo Kollegen,

bei diesem Skript soll zuerst eine Mail mit Schnellbaustein erstellt werden und dann gotomeeting aufgerufen werden. Leider ruft dieser Skript nur Gotomeeting auf - die vorherigen Befehle werden galant ignoriert - gibt es hier eine Idee?
Sub EmailErstellenundGTMstarten
SendKeys "^+M", True
SendKeys ""
SendKeys "{TAB}", True
SendKeys "{TAB}", True
SendKeys "{TAB}", True
SendKeys "{TAB}", True
SendKeys "Antworten Gotomeeting", True
SendKeys "{F3}", True
Call ShellExecute(0, "open", "https://global.gotomeeting.com", "", "", SW_MAXIMIZE)
End Sub
Danke

Martin

mumpel
02.01.2018, 09:33
Hallo!

Vergiss SendKeys. Schau Dir das VBA-Objektmodell an und greife direkt auf den Schnellbaustein zu.

Gruß, René

halweg
03.01.2018, 08:58
Ich nutze auch manchmal SendKeys, da nicht alles über das Objektmodell leichter geht. Allerdings darf man dann nicht vergessen, Sleeps einzubauen oder wenigstens den Fenstertitel abzufragen, da Outlook ja auch Zeit braucht, auf die Keys zu reagieren.

s8884martin
03.01.2018, 09:19
danke für die Hinweise, leider beide Wege nicht erfolgreich:
1) Outlook 2010 unterstützt die Möglichkeit Schnellbausteine im Objektmodell scheinbar nicht
2) Trotz eines Einfügen von Sleep 10 sec macht das Programm keine Anstalten das Sendkey auszuführen.
3) Gibt es eine Möglichkeit ohne Sendkey direkt in den Body der Mail zu springen?
4) auch eine Schleife war nicht hilfreich currenttime = Now
Do Until currenttime + TimeValue("00:00:05") <= Now
Loop

Danke!!!

halweg
03.01.2018, 10:26
Also ich hab's mal in der einfachsten Form probiert:
Sub test()
SendKeys "^+m{TAB 4}"
End Sub
tut bei mir was es soll und springt (wider Erwarten) mit der Einfügemarke direkt in den Text. Allerdings nehme ich auch keine sichtbare Verzögerung beim Öffnen der neuen Mail war.
Kannst du kontrollieren, wo beim Senden der Tabs jeweils der Fokus steht, z. B. über Application.ActiveWindow.Caption?
Mit der ,True-Option bei SendKeys habe ich keine Erfahrung, weiß nicht genau, worauf die wartet.

s8884martin
03.01.2018, 11:47
danke, mit deinem Befehl gleiche Problematik, der wird einfach nicht ausgeführt, wenn der call dahintersteht! mhh bin ratlos - ohne call der website funktioniert der skript tadellos...

halweg
03.01.2018, 12:18
Na wenn es ohne den Aufruf funktioniert, dann schieb doch vor das Call ein Sleep, dann muss es ja erst mal funktionieren.

s8884martin
04.01.2018, 10:03
Leider nein,

selbst hier wird nur die Website aufgerufen:

SendKeys "^+m{TAB 4}"

Sleep (10000)

Call ShellExecute(0, "open", "https://global.gotomeeting.com", "", "", SW_MAXIMIZE)