2016-05-20 13 views
3

Ich möchte in der Lage sein, einen aktiven Prozess zum Öffnen einer Datei über die Windows-Befehlszeile im Idealfall zu sagen - aber jede Lösung mit integrierten Windows (7+) -Funktionen (zB Powershell oder VBScript) funktioniert auch.Windows-Befehlszeile: Datei mit aktivem Prozess öffnen?

Zum Beispiel, wenn ich eine Instanz von Notepad geöffnet haben und wissen seine processid 1234 ist, wäre es toll, der Lage sein, so etwas wie:

notepad.exe "myfile.txt" /pid=1234

und haben Notizblock versuchen das öffnen Datei im Fenster für den bestehenden Prozess.

Ist das möglich?

+0

Für Notepad, ein Programm, das keine externe Kontrolle hat (anders als IE, Word, Autocad, etc) können Sie VBS 'wshshell.appactivate 1234' und' wshshell.sendkeys "% FO" & "filename.ext" 'verwenden. Dies ist ein flockiger Weg, Dinge zu tun. –

Antwort

0

Sie sollten Autohotkey dafür verwenden. Obwohl dies auch in der Powershell gemacht werden kann, ist es viel komplizierter als in einem spezialisierten Tool. In AHK würden Sie die geöffnete Datei simulieren (das übliche Kürzel Strg + O), dann würde AHK den Dialog erkennen und Dateinamen und ENTER am Ende einfügen. Das würde die Anzahl der standardisierten Anwendungen handhaben, aber Sie müssen immer noch einige ungewöhnliche Anwendungen von Fall zu Fall behandeln.

0

Als allgemeine Methode, die für alle Anwendungen funktioniert, die Dateien öffnen, ist dies nicht möglich. Das Programm müsste einige Schnittstellen offen legen (wie eine COM-Schnittstelle) oder bestimmte Windows-Nachrichten oder Netzwerkverkehr abhören, und Ihr Controller müsste genau wissen, welche Methode aufgerufen oder welche Nachricht gesendet werden muss, um das gewünschte Verhalten auszulösen.

Selbst für nicht laufende Prozesse ist nicht garantiert, dass das erste Argument der Befehlszeile als Name einer Datei interpretiert wird, die geöffnet werden soll. In den Tagen vor der GUI gab es jedoch keinen anderen Weg, so dass die Benutzer dies schon lange erwartet haben. Daher wird dies als grundlegendes Verhalten betrachtet und jede dokumentenorientierte Anwendung wird es unterstützen. Dies ist bei Ihrem Szenario nicht der Fall, und es würde auch einige Probleme aufwerfen. Mit einer Benutzeroberfläche für mehrere Dokumente könnte es funktionieren. Mit einem einzigen Dokument UI ... wahrscheinlich keine gute Idee. Soll das aktuelle Dokument verworfen werden? Angefügt? Kann der Benutzer ja speichern, speichern oder abbrechen?