Top-Themen

Aktuelle Themen (A bis Z)

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

Aktives Windows-Fenster aus Batch-Skript heraus bestimmen ?

Mitglied: schine

schine (Level 1) - Jetzt verbinden

12.12.2008, aktualisiert 13.12.2008, 14388 Aufrufe, 7 Kommentare

Hallo,

ich habe das Folgende Problem bei einem Batch-Programm:

Ich lasse in meinem Batch-Skript per "start"-Befehl eine
PDF-Datei mit dem Acrobat-Reader öffnen:

start "Dokumenttitel" "C:\Program Files\Adobe\Reader\AcroRd32.exe" %QUELLPFAD%%QUELLDATEI%

Das Öffnen funktioniert einwandfrei, jedoch wird beim Öffnen das neu geöffnete Fenster
(vom Acrobat Reader) als aktives Fenster in Windows gesetzt.
Von der geöffneten PDF-Datei soll aber nur vom Benutzer eine Inventar-Nummer abgelesen und
dann im Batch-Programm (das vorherige Fenster) eingetippt werden.
Umständlicherweise muss der Benutzer aber dann erst wieder zum vorherigen CMD-Fenster in
dem das Batch-Skript die Eingabe abfragt zurückwechseln (mit Maus oder ALT+TAB).


Wie kann man aus dem Batch-Skript heraus das aktive Windows-Fenster bestimmen ?
Oder kann man verhindern, dass sich das aktive Fenster auf den Acrobat Reader ändert ?
Gibt es auch eine Möglichkeit aus dem Batch-Skript heraus die Fenster-Position zu bestimmen ?


Danke im Voraus für die Hilfe.


ciao

Schine
Mitglied: 72648
12.12.2008 um 23:31 Uhr
Hallo Schine,

ich glaube kaum, dass es mit Batch funktioniert.
Da wirst du wohl auf VB umsteigen müssen.

Hier mal ein wink in die Richtung:

set newobj=createobject("wscript.shell")
newobj.run("C:\xyz\test.exe"),2

Wenn man diese Datei ausführt, startet test.exe minimiert.

Der 2er am Ende der 2.Zeile kann auch noch durch andere Parameter ersetzt werden:

0 - kein fenster proggi unsichtbar
1 - normal
2 - mimimiert starten
3 - maximiert
4 - wie letzes mal
5 - wie 4 aber aktiv
6 - mimimiert nächstes sichtbar
7 - mimimiert aktives bleibt aktiv
8 - standartgröße aktives bleibt aktiv
9 - aktiv + normale größe
10 - fenstermodus richtet sich nach scriptfenster

du kannst ein solches VB Script auch einfach aus der Batch heraus erzeugen.

Gruß Milo
Bitte warten ..
Mitglied: bastla
13.12.2008 um 14:43 Uhr
Hallo schine und willkommen im Forum!

Der Vorschlag von Milo2000 sollte sich (etwas modifiziert) etwa so umsetzen lassen:
01.
@echo off & setlocal 
02.
if "%~1" neq "" goto :Ein 
03.
 
04.
set "QUELLPFAD=D:\Dein Pfad\" 
05.
set "QUellDATEI=Dein.pdf" 
06.
 
07.
set S=%temp%\StartReader.vbs 
08.
> %S% echo PID=CreateObject("WScript.Shell").Exec("""C:\Program Files\Adobe\Reader\AcroRd32.exe"" ""%QUELLPFAD%%QUELLDATEI%""").ProcessID 
09.
>>%S% echo WScript.Sleep 2000:CreateObject("WScript.Shell").Run """%~f0"" " ^&PID 
10.
cscript //nologo %S% & exit 
11.
 
12.
:Ein 
13.
echo %1 
14.
set /p "Eingabe=Hier die Eingabe: " 
15.
echo %Eingabe% 
16.
::Weitere Verarbeitung 
17.
pause 
18.
::Reader schließen 
19.
taskkill /PID %1 >nul
Soferne "taskkill.exe" verfügbar ist (also ab XP), sollte dieser Batch den Reader starten, danach selbst neu gestartet werden und so über dem Reader als aktives Fenster liegen, und am Ende den Reader-Prozess beenden.

Soferne der Batch mit Parametern gestartet werden soll, müsste eine Anpassung erfolgen, da in der obigen Variante beim ersten Start kein Parameter und beim zweiten Start die "ProcessID" des Reader-Fensters erwartet wird.
Ob es nicht sinnvoller wäre, zu versuchen, die entsprechende Nummer aus der PDF-Datei zu extrahieren und somit automatisiert weiterverarbeiten zu können, musst Du selbst beurteilen ...

Grüße
bastla
Bitte warten ..
Mitglied: 72648
13.12.2008 um 15:41 Uhr
Hallo,

nettes Skript, eine anmerkung hätte ich dennoch, Taskkill.exe ist erst ab XP Pro verfügbar. Unter XP Home ist standartmäßig nur Tskill.exe dabei und der Parameter /PID muss nicht mit angegeben werden bsp. tskill %1 >nul .

Gruß Milo
Bitte warten ..
Mitglied: bastla
13.12.2008 um 18:33 Uhr
@72648
Danke für die Anmerkung - und wollen wir hoffen, dass schines User die Inventar-Nummern nicht tatsächlich mit XP Home eingeben müssen ...

Grüße
bastla
Bitte warten ..
Mitglied: 72648
13.12.2008 um 18:45 Uhr
@bastla

Da hast du recht, obwohl es vielleicht den ein oder anderen Arbeitsplatz schaffen würde

Gruß Milo
Bitte warten ..
Mitglied: schine
18.12.2008 um 22:29 Uhr
Hallo Bastla und Milo,

danke für eure Hilfe.
Das VB-Skript kann ich unter XP Pro dann mit dem Befehl "cscript" ausführen, oder ?

Wie könnte man das denn bewerkstelligen z. B. eine Nummer aus einer PDF-Datei zu extrahieren ? Da manche davon handschriftlich sind: könnte man auch handschriftliches aus dem PDF extrahieren (Schönschrift Mal vorausgesetzt) ?

ciao

Schine
Bitte warten ..
Mitglied: Biber
19.12.2008 um 00:01 Uhr
Moin schine,

mal abgesehen davon, ob so etwas wie eine OCR-Erkennung noch mit vertretbarem Aufwand handwerlich machbar ist - schon hier bei diesem Satz:
Von der geöffneten PDF-Datei soll aber nur vom Benutzer eine Inventar-Nummer abgelesen und
dann im Batch-Programm (das vorherige Fenster) eingetippt werden.
. ..hatte ich mir damals verkniffen, darauf hinzuweisen, dass Batch/Skripting eine gute gute Wahl zur Automatisierung von unvermeidlich anfallenden Alltagsprozessen sind.
Ich würde an Deiner Stelle prüfen, ob dieser Eure praktizierte Prozess denn wirklich in seiner Eigenart erhaltenswert ist.

Es muss doch möglich sein - wenn es um Inventarnummern geht, die naturgemäß in einem zentralen System gehalten werden müssen - dass diese Daten am Ort ihrer Entstehung erfasst, und zwar digital erfasst werden und nicht irgendwann später von eingescannten fliegenden Zetteln abgelesen werden.

Da ist irgendwas schiefgelaufen, drängt sich mir der Eindruck auf.

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Windows 7

Wie den Eingabefokus auf aktivem Fenster fixieren? (Win7)

gelöst Frage von owalkerWindows 74 Kommentare

Hallo, wie bekomme ich es hin, daß andere Programme nicht den Fokus (Wo landen die Tastatureingaben) vom aktivem Fenster ...

Batch & Shell

Mehrere Batch aus einer heraus starten

Frage von chb1982Batch & Shell2 Kommentare

Hallo zusammen, das Internet ist voll mit meinem Problem, aber eine Lösung wollte es mir nicht präsentieren. Oder ich ...

Batch & Shell

Batch bestimme Zeile einer vorherigen batch einfügen

Frage von FrenscheBatch & Shell9 Kommentare

Hallo ich möchte eine Batch erstellen, in der ein Befehl ausgeführt wird und von dort aus eine bestimmte Zeile ...

Windows 7

BATCH: Alter einer TXT-Datei bestimmen

gelöst Frage von ahstaxWindows 75 Kommentare

Hallo, wie bekomme ich mit einer DOS-Batch das Alter einer TXT-Datei bestimmt und lassen dann, bspw bei Alter >16h, ...

Neue Wissensbeiträge
Sicherheit

MikroTik-Router patchen, Schwachstelle wird ausgenutzt

Information von kgborn vor 11 StundenSicherheit

Am 23. April 2018 wurde von Mikrotik ein Security Advisory herausgegeben, welches auf eine Schwachstelle im RouterOS hinwies. Mikrotik ...

Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 17 StundenWindows 101 Kommentar

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

iOS
Updates für Iphone und Co
Information von sabines vor 20 StundeniOS

Gestern abend ist iOS 11.3.1 erschienen, ein kleineres Update, dass einige Lücken schließt und "Lahmlegen" nach einem Display Tausch ...

Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 2 TagenWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Heiß diskutierte Inhalte
Batch & Shell
Powershell: Im AD nach Rechnern mit bestimmten IP-Adressen suchen
gelöst Frage von Raven42Batch & Shell36 Kommentare

Hallo zusammen, ich suche nach einer Möglichkeit nach Computern im AD zu suchen , deren IP-Adresse mit 10.11.12. beginnt. ...

C und C++
Frage1 C Programmierung-Makefile Frage2 PHP-Programmierung HTTP-Fehler 404
Frage von KatalinaC und C++34 Kommentare

Hallo, ich habe 2 Fragen, die nichts miteinander zu tun haben aber mit denen ich mich gerade beschäftige: 1. ...

LAN, WAN, Wireless
Watchguard T15 VPN Einrichtung
gelöst Frage von thomasjayLAN, WAN, Wireless25 Kommentare

Hallo zusammen, wir möchten gerne über unsere Watchguard T15 einen VPN-Tunnel (Mobile VPN with IPSec) einrichten! Als Client nutzen ...

Windows Server
Alten DC entfernen
Frage von smartinoWindows Server24 Kommentare

Hallo zusammen, ich habe hier eine Umgebung übernommen und erstmal einen DCDIAG gemacht. Dabei fällt auf, daß eine ganze ...