Kommandozeilenversion
-
@DerReisende77 sagte in Kommandozeilenversion:
Ich nutze überhaupt keine Skripte, von daher bin ich hier keine Hilfe.
Ich habe auf GitHub ein Ticket für einen Startparameter aufgemacht und werde es mir ansehen.Das klingt ja trotz
Für 13.6.1 wird es wohl eher nichts werden.
erstmal positiv, d.h. dass du zumindest “wohlwollend” darüber nachdenkst?
Trotzdem - bitte nicht böse sein - nochmals meine Frage: Gibt es eine Möglichkeit, den MV durch einen wie auch immer gearteten Befehl “sauber” zu beenden. Vielleicht auch einfach durch Beenden irgendeines “indirekt involvierten” Prozesses, der den MV zum “sauberen” Beenden zwingt?
NACHTRAG 03.09.2020 15:11
Werde dazu nachher mal mit ProcMon prüfen, was MV so alles startet/benötigt. Trotzdem wäre mir natürlich eine fachmännische Meinung lieb, welches Abschießen die geringsten negativen Auswirkungen hat. -
@JD-Umsteiger sagte in Kommandozeilenversion:
Gibt es eine Möglichkeit, den MV durch einen wie auch immer gearteten Befehl “sauber” zu beenden.
Wie wäre es einfach Alt-F4 an MV zuschicken?
Powershell skript sollte das können. -
@media_fread sagte in Kommandozeilenversion:
@JD-Umsteiger sagte in Kommandozeilenversion:
Gibt es eine Möglichkeit, den MV durch einen wie auch immer gearteten Befehl “sauber” zu beenden.
Wie wäre es einfach Alt-F4 an MV zuschicken?
Powershell skript sollte das können.Laut meinen (erneuten) Recherchen auch nur über Taskkill. Aber vielleicht kannst du mir dennoch weiterhelfen. Denn dabei bin ich auf ein Tool einer meiner Favoriten unter den Entwicklern sinnvoller kleiner Tools gestoßen:
Nir Sofer hat u.a. das Tool nircmd entwicklelt, das sehr, sehr viel in dieser Richtung kann, und es kann auch den Befehl WM_CLOSE an alle Fenster der obersten Ebene des Zielprozesses senden.
https://www.nirsoft.net/utils/nircmd.html
Funktioniert auch grundsätzlich, aber nicht bei MV. Welchen Prozess müsste ich denn schließen?
-
nircmd win close ititle "kView"
-
@DaDirnbocher sagte in Kommandozeilenversion:
nircmd win close ititle "kView"
FUNKTIONIERT!
Dankeschön!!! -
Erfahrungs-/Testbericht
@DaDirnbocher sagte in Kommandozeilenversion:
nircmd win close ititle "kView"
vorab: “Shame one me”. Ich hatte mich auf das verlassen, was auf der Seite stand, über die ich auf den Tipp mit nircmd gestoßen war.
Und das funktionierte bei anderen Programmen auch, nicht aber bei MV.
Und da ich bereits etliche Tools von Nir Sofer verwende, hätte ich besser mal die Hilfe-Datei komplett lesen sollen… — peinlich
Also, das Ganze funktioniert sogar besser als erwartet. Denn - wenn Abo-Donwloads laufen - schließt dieser Befehl nicht MV sondern das Fenster, das dann aufpoppt und die verschiedenen Optionen zum Abbrechen anbietet.
MV ist aber so programmiert, dass dieses Fenster - wenn es denn geschlossen wird - sofort erneut erscheint.
Also kann ich das, was ich möchte, dadurch erreichen, dass ich bereits 5 Minuten nach dem Start von MV über ein entsprechendes Timeout das erste Mal mit nircmd versuche, MV zu beenden. Und dieses Timeout wiederhole ich dann in einer Loop alle 5 Minuten.
@echo off :loop timeout 300 nircmd win close ititle "kView" goto loop exit
Wenn dann irgendwann alle Abos geladen sind, verschwindet das Popup-Fenster und beim nächsten Aufruf des nircmd-Befehls wird MV sauber geschlossen.
Jetzt müsste ich der guten Ordnung halber nur noch einen Weg finden, dass dann auch die Batchdatei mit der Loop geschlossen wird.
Any ideas???
-
@JD-Umsteiger nircmd sollte unterschiedliche Rückgabewerte liefern, je nachdem ob “kView” gefunden oder nicht gefunden wurde. Das goto müsste dann je nach Errorlevel bedingt aufgerufen werden. Siehe “help if”.
-
@JD-Umsteiger sagte in Kommandozeilenversion:
MV ist aber so programmiert, dass dieses Fenster - wenn es denn geschlossen wird - sofort erneut erscheint.
Nach meiner Einschätzung bist Du das, der dafür sorgt, dass das Fenster sofort wieder neu erscheint. Indem Du nircmd verwendest.
-
@DaDirnbocher sagte in Kommandozeilenversion:
@JD-Umsteiger sagte in Kommandozeilenversion:
MV ist aber so programmiert, dass dieses Fenster - wenn es denn geschlossen wird - sofort erneut erscheint.
Nach meiner Einschätzung bist Du das, der dafür sorgt, dass das Fenster sofort wieder neu erscheint. Indem Du nircmd verwendest.
Ja klar, das ist der Grund. Ich wollte ja nur damit sagen, dass MV (glücklicherweise) so programmiert ist, dass, wenn man auf das X zum Schließen klickt, dieses Fenster sofort wieder neu erscheint.
So, wie ich es für diese Funktion benötige
-
@Georg-J sagte in Kommandozeilenversion:
@JD-Umsteiger nircmd sollte unterschiedliche Rückgabewerte liefern, je nachdem ob “kView” gefunden oder nicht gefunden wurde. Das goto müsste dann je nach Errorlevel bedingt aufgerufen werden. Siehe “help if”.
… nur wird leider kein Rückgabewert ausgegeben
-
@JD-Umsteiger sagte in Kommandozeilenversion:
dass MV (glücklicherweise) so programmiert ist,
Ich hab das intensive Gefühl, dass wir aneinander vorbeireden. Aber egal.
nircmd win close ititle "kView" nircmd win activate ititle "kView b" nircmd sendkeypress a nircmd sendkeypress enter
Das ist de facto die Lösung, die ich Dir schon in meinem ersten Post in dem Thread vorgeschlagen habe. Nur halt mit AutoIt statt mit nircmd. Das wolltest aber offensichtlich nicht einmal ausprobieren.
Eines möchte ich Dir noch mitgeben. Ich empfehle dringendst, dass Du - bevor Du das in Produktivsystem einsetzt - Dich sehr intensiv mit nircmd, der Syntax, der Bedeutung der Befehle auseinandersetzt und verstehst, was da geschieht (da hab ich noch Zweifel). Und dann auf Deine Bedürfnisse anpasst.
Sonst kanns passieren, dass Du die eine oder andere Überraschung erlebst.
So, und damit klinke ich mich aus dem Thread aus.
-
Funktioniert nicht bei gesperrtem Bildschirm
@DaDirnbocher sagte in Kommandozeilenversion:
nircmd win close ititle "kView" nircmd win activate ititle "kView b" nircmd sendkeypress a nircmd sendkeypress enter
… Ich empfehle dringendst, dass Du … Dich sehr intensiv mit nircmd, der Syntax, der Bedeutung der Befehle auseinandersetzt und verstehst, was da geschieht (da hab ich noch Zweifel)…
… Zweifel, die ich nachfolgend zerstreuen kann
Aber dein ansonsten guter Vorschlag funktioniert nicht:
Bei gesperrtem Bildschirm werden alle Befehle übernommen - nicht aber ENTER.Da du nicht mehr antworten möchtest, vielleicht weiß jemand anderes Rat?
Anmerkungen:
Wenn man ititle verwendet, werden auch andere Fenster geschlossen, die kView enthalten (z.B. diese Seite aus dem Forum, da deren Titel auch kView enthält.) Besser ist stitle bzw. title.Besser ist diese Variante (und mit timeout auch sicherer)
nircmd win close stitle "MediathekView 1" timeout 2 nircmd win activate title "MediathekView beenden" timeout 2 nircmd sendkeypress a timeout 2 nircmd sendkeypress enter
Leider ist es mir bisher aber nicht gelungen, dass enter auch bei gesperrtem Bildschirm angenommen wird.
Und m.W. gibt es für Weiter keinen Hotkey?
-
@JD-Umsteiger sagte in Kommandozeilenversion:
Besser ist diese Variante (und mit timeout auch sicherer)
nircmd win close stitle "MediathekView 1" timeout 2 nircmd win activate title "MediathekView beenden" timeout 2 nircmd sendkeypress a timeout 2 nircmd sendkeypress enter
Leider ist es mir bisher aber nicht gelungen, dass enter auch bei gesperrtem Bildschirm angenommen wird.
Und
nircmd sendkeypress a
funktioniert bei gesperrtem Bildschirm?
Falls ja, versuchenircmd sendkey enter press
.
Oder versuche, vor dem enter noch einmalnircmd win activate title "MediathekView beenden"
abzusetzen.
Wenn das auch nicht funktioniert, mache dir mitnircmd sendkey printscreen press
nach demactivate
ein Bild des gesperrten Bildschirms in die Zwischenablage.