Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Fenster per vbs ansprechen mit variablem Namen

Frage Entwicklung Batch & Shell

Mitglied: KikiMiki

KikiMiki (Level 1) - Jetzt verbinden

23.10.2009, aktualisiert 11:36 Uhr, 10367 Aufrufe, 21 Kommentare

Hallo,

gibt es einen vbs-Befehl mit dem ich ein vorhandenes Fenster aktivieren kann?
Der Name des Fensters lautet:

Bericht vom 23.10.2009

Wobei immer das aktuelle Datum drinsteht:

So sieht der Code aus:

01.
oOMail.Subject = "Automatisierter ITK-Report vom " & Date
Mitglied: bennib22
23.10.2009 um 12:41 Uhr
Hi,
Ich hab zwar kaum Ahnung von vbs aber probier mal
...Date.now
Bitte warten ..
Mitglied: KikiMiki
23.10.2009 um 12:43 Uhr
Die Datefunktion klappt ja

Es geht nur darum das Fenster über den Namen anzusprechen
Und wie mache ich das mit einem sich täglich ändernden Datum?
Bitte warten ..
Mitglied: bennib22
23.10.2009 um 13:42 Uhr
Das aktuelle Datum wird durch ".Now" angezeigt.
bin mir aber nicht sicher ob das klappt!!
wenn nicht hab ich auch keine Ahnung.

Gruß
bennib22
Bitte warten ..
Mitglied: AndreasHoster
23.10.2009 um 14:03 Uhr
Ich vermute mal, mit "aktivieren" meinst Du, dem Fenster den Focus zu geben.
In dem Fall:
01.
Set o = CreateObject("Wscript.Shell") 
02.
o.AppActivate(NameDesFensters)
Bitte warten ..
Mitglied: 76109
23.10.2009 um 14:04 Uhr
Hallo KikiMiki!

Versuchs mal mit:
01.
oOMail.Subject = "Automatisierter ITK-Report vom " & Date 
02.
oOMail.Display
Gruß Dieter
Bitte warten ..
Mitglied: KikiMiki
23.10.2009 um 14:07 Uhr
So wollte ich es lösen:

01.
Set WshShell = WScript.CreateObject("WScript.Shell") 
02.
WScript.Sleep 1500 
03.
WshShell.AppActivate oOMail 
04.
WScript.Sleep 1500 
05.
oOMail.display ' Fenster anzeigen 
06.
 
07.
WScript.Sleep 1500 
08.
WshShell.SendKeys("%s") ' Sende ein "Alt-S". Outlook denkt der User "sendet
Aber wenn das Skript läuft klappt der Wchsel auf das Outlook Fenster nicht jedes mal
Keine Ahnung wieso
Bitte warten ..
Mitglied: 76109
23.10.2009 um 14:13 Uhr
Hallo KikiMiki!

Vielleicht hilft Dir dieses funktionierende Beispiel weiter?
01.
    Dim appMail  
02.
     
03.
    Set appMail = CreateObject("Outlook.Application").CreateItem(0) 
04.
 
05.
    With appMail 
06.
        .Subject = "Bestellung " & Now 
07.
        .To = "Max.Mustermann@test.uk" 
08.
        .cc = "Max.Mustermann@test.uk" 
09.
        '.HTMLbody = HtmlText 
10.
        '.body = Text 
11.
        .Display 
12.
    End With 
13.
    Set appMail = Nothing
Gruß Dieter
Bitte warten ..
Mitglied: KikiMiki
23.10.2009 um 14:20 Uhr
Hi didi,

seh da keinen großen Unterschied ;)

Hier meine Funktion

01.
Dim oOApp 
02.
Dim oOMail 
03.
Dim WshShell 
04.
 
05.
Set oOApp = CreateObject("Outlook.Application") 
06.
Set oOMail = oOApp.CreateItem(olMailItem) 
07.
 
08.
oOMail.display ' Fenster anzeigen 
09.
oOMail.To = "me@me.de" 
10.
oOMail.CC = "" 
11.
oOMail.Subject = "Automatisierter Report vom " & Date 
12.
oOMail.Body = "Im Anhang befindet sich der Report"." 
13.
oOMail.Attachments.Add (SkriptPfad & "Bericht.xls"), olByValue, 1 
14.
 
15.
 
16.
 
17.
Set WshShell = WScript.CreateObject("WScript.Shell") 
18.
WScript.Sleep 1500 
19.
WshShell.AppActivate oOMail 
20.
WScript.Sleep 1500 
21.
oOMail.display ' Fenster anzeigen 
22.
WScript.Sleep 1500 
23.
WshShell.SendKeys("%s") ' Sende ein "Alt-S". Outlook denkt der User "sendet 
24.
 
Bitte warten ..
Mitglied: 76109
23.10.2009 um 14:44 Uhr
Hallo KikiMiki!

Ich sehe da schon einen Unterschied. Die Zeile 8 sollte wohl erst in Zeile 14 stehen und der Rest ganz entfallen

Gruß Dieter
Bitte warten ..
Mitglied: AndreasHoster
23.10.2009 um 14:59 Uhr
SendKeys ist des Teufels. Sollte man NIE NIE NIE verwenden, es sei denn es geht gar nicht anders und im Normalfall gehts anders.

Ich finde, es ist unlogisch codiert:
Erst Fenster aktivieren, dann den Display Befehl? Finde ich komisch, muß aber auch glücklicherweise kein Outlook verwenden.

Außerdem gibt es viele Gründe, warum SendKeys unzuverlässig ist:
Unter Last reichen eventuell die 1,5 Sekunden nicht aus, daß das Fenster schon aufgebaut und im Focus ist wenn der SendKey Befehl kommt: Eingabe geht ins Leere bzw. falsche Programm
Eventuell drängt sich in den 1,5 Sekunden ein anderes Popup/Programm in den Vordergrund: Eingabe geht ins Leere bzw. falsche Programm
Eine systemmodale Dialogbox ist offen: Eingabe geht ins Leere bzw. falsche Programm

Sendkeys auf einem Multitaskingsystem mit mehreren Programmen ist wie Roulettespielen: Man kann das richtige Programm erwischen, aber zuverlässig ist was anderes.
Bitte warten ..
Mitglied: KikiMiki
23.10.2009 um 15:05 Uhr
Habs umgestellt

Klappt leider immer noch nicht
Er will mir einfach das Outlookfenster nicht vor holen....


<code>
Dim oOApp
Dim oOMail
Dim WshShell

Set oOApp = CreateObject("Outlook.Application")
Set oOMail = oOApp.CreateItem(olMailItem)


oOMail.To = "me@me.de
oOMail.CC = "he@he.de"
oOMail.Subject = "Automatisierter Report vom " & Date
oOMail.Body = "Im Anhang befindet sich der Report."
oOMail.Attachments.Add (SkriptPfad & Report.xls"), olByValue, 1
oOMail.display ' Fenster anzeigen

Set WshShell = WScript.CreateObject("WScript.Shell")

WScript.Sleep 1500

WshShell.SendKeys("%s") ' Sende ein "Alt-S". Outlook denkt der User "sendet
Bitte warten ..
Mitglied: KikiMiki
23.10.2009 um 15:07 Uhr
Hallo Adreas,

hast du eine andere Idee?
Wenn ich es nicht über sendkey mache bringt outlook eine Sicherheitswarnung wo ich jedes mal "ja" drücken muss zum zulassen


Habs umgestellt

Klappt leider immer noch nicht
Er will mir einfach das Outlookfenster nicht vor holen....


01.
Dim oOApp 
02.
Dim oOMail 
03.
Dim WshShell 
04.
 
05.
Set oOApp = CreateObject("Outlook.Application") 
06.
Set oOMail = oOApp.CreateItem(olMailItem) 
07.
 
08.
 
09.
oOMail.To = "me@me.de 
10.
oOMail.CC = "he@he.de" 
11.
oOMail.Subject = "Automatisierter Report vom " & Date 
12.
oOMail.Body = "Im Anhang befindet sich der Report." 
13.
oOMail.Attachments.Add (SkriptPfad & Report.xls"), olByValue, 1 
14.
oOMail.display ' Fenster anzeigen 
15.
 
16.
Set WshShell = WScript.CreateObject("WScript.Shell")  
17.
 
18.
WScript.Sleep 1500  
19.
 
20.
WshShell.SendKeys("%s") ' Sende ein "Alt-S". Outlook denkt der User "sendet
Bitte warten ..
Mitglied: 76109
23.10.2009 um 15:24 Uhr
Hallo KikiMiki!

Also, ich hab's mit meinem und Deinem Code getestet und funktioniert mit beiden Codes einwandfrei?

Bei Dir fehlen "-Zeichen, fehlen die im Script auch?

Gruß Dieter
Bitte warten ..
Mitglied: KikiMiki
23.10.2009 um 15:30 Uhr
Zeichen sind vollständig ;)
Bitte warten ..
Mitglied: 76109
23.10.2009 um 15:33 Uhr
Hallo AndreasHoster!

Die Display-Anweisung ist doch die Fensteraktivierung. Mail mit Daten initialisieren und dann erst anzeigen.

Ich verwende auch kein Outlook, aber zum testen reicht Outlook-Express.

Gruß Dieter
Bitte warten ..
Mitglied: 76109
23.10.2009 um 15:37 Uhr
Hallo KikiMiki!

In diesem Quelltext fehlen die Zeichen auch:

hier: oOMail.To = "me@me.de > = "me@me.de"
hier: oOMail.Attachments.Add (SkriptPfad & Report.xls"), olByValue, 1 > = & "Report.xls"

Gruß Dieter
Bitte warten ..
Mitglied: KikiMiki
23.10.2009 um 15:43 Uhr
@ Didi
Zeichen sind alle da
War nur copy-paste Fehler.....
;)

Es geht ja alles, nur Send-key nicht ;)
Bitte warten ..
Mitglied: 76109
23.10.2009 um 15:48 Uhr
Hallo KikiMiki!

Achso, stehe ich irgenwie auf der Leitung? Das anzeigen geht nur das senden nicht?

Gruß Dieter
Bitte warten ..
Mitglied: 76109
24.10.2009 um 09:45 Uhr
Hallo KikiMiki!

Wieso verwendest Du anstelle von SendKey Alt+S nicht einfach die Anweisung Send mit oder ohne Display?
01.
.Display 
02.
.Send
Gruß Dieter
Bitte warten ..
Mitglied: KikiMiki
26.10.2009 um 11:10 Uhr
Hallo Didi,

wie meinst du das?
Bitte warten ..
Mitglied: 76109
26.10.2009 um 11:55 Uhr
Hallo KikiMiki!

Mhm, wie ich das meine, sieht man doch eigentlich am letzten Code

Also, mit der Anweisung Display, wird ja Dein Mail-Fenster angezeigt und dann könntest im Fenster Deine Mail senden. Mit der zusätzlichen Send-Anweisung, wird Dein Mail-Fenster auch angezeigt und der Sendbefehl ist auch schon aktiviert. Wenn Du die Display-Anweisung weg läßt und nur die Send-Anweisung drinnen läßt, dann wird keine Mail angezeigt und nur der Sendbefehl aktiviert. Allerdings kann ich nur mit Outlook-Express testen und da muss dann nach Ablauf einer bestimmten Zeit (paar Sekunden), nochmal zusätzlich das Absenden mit Ja/Nein bestätigt werden? Keine Ahnung, wie das in Outlook gehandhabt wird? Und ob das gegebenenfalls per Einstellungen unterbunden werden kann?

Gruß Dieter
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
VB for Applications
gelöst Datei mit variablem Namen einlesen und als Excel speichern (1)

Frage von Anrion zum Thema VB for Applications ...

VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

Microsoft Office
gelöst Dropdownlisten in Abhängigkeit mit Leerzeichen im Namen (Datenüberprüfung) (2)

Frage von kevische zum Thema Microsoft Office ...

Windows Server
RemoteApp Fenster kommt nicht in den Vordergrund (1)

Frage von thomasreischer zum Thema Windows Server ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...