Canvas not supported
Canvas not supported
Suchen
Bookmark
Canvas not supported
Shine Effekt
Direkt zum Seiteninhalt

Hauptmenü:

Shell Tasks mit Verbs automatisieren

 

Autor:

Oscar Kohler

Version:

0.11

Level:

Einfach

Sprache:

PowerShell


 
Haftungsausschluss / Disclaimer
Kontakt / Contact
Drucken / Print


Dokumente automatisiert auszudrucken war nicht immer eine einfache Sache. Hatte man Glück, so lieferte der Hersteller eine brauchbare API, über die man Dokumente ausdrucken konnte. Beispielsweise liess sich bei Pdf-Dokumenten die Funktion: AcroExch.AVDoc->PrintPagesSilent() benutzen. Wollte man hingegen andere Dokumenttypen ausdrucken, so musste man sich wieder auf die Suche nach einer geeigneten Funktion begehen ...

Das Kontext Menü automatisieren ...


Kontext Menü automatisierenViele Programme bieten zur Verwaltung und Bearbeitung ihrer Dokument-Typen Funktionen im Kontext-Menü (rechte Maustaste) an. Grundfunktionen wie Öffnen, Editieren, Ausdrucken, ... finden sich hier recht häufig.


Praktisch wäre es nun, wenn man diese Funktionen auch in eigenen Scripten und Programmen aufrufen könnte ...

Shell Verbs


Der Mechanismus der hinter diesen Einträgen im Kontext-Menü steckt, nennt sich Verbs. Für jeden Eintrag im Kontext-Menü eines bestimmten Datei-Typs, wurde bei der Verknüpfung mit dem entsprechenden Programm ein sogenannter Verb-Handler in den Registry Classes eingetragen.
Zu diesen explizit registrierten Verbs gesellen sich auch noch einige Standard-Verbs der Shell.

Ein einfacher Shell Verb-Handler sieht z.b. folgendermassen aus:

Shell Verb-Handler
Für diesen Dateityp: txtfile sind drei Verb-Handler eingetragen:

open -> Kommando zum Öffnen der Text-Datei,
print -> Kommando zum Druck auf dem Standard Drucker,
printto -> Kommando zum Druck, wobei der Drucker definiert werden kann.



Mithilfe der dot.net Process-Klassen lassen sich (registrierte) Verbs gezielt auflisten und benutzen.

Shell Verbs auflisten ...


Das folgende PowerShell Prinzip-Beispiel listet die verfügbaren Verbs des Datei-Typs: txtfile auf ...

$fileName = "c:\temp\textfile.txt"

if ( Test-Path( $fileName )) {
   
Write-Output "Verfügbare Verben für diese Erweiterung:"

   
try {
       $processStartInfo =
New-Object System.Diagnostics.ProcessStartInfo( $fileName )

       
foreach ( $verb in $processStartInfo.Verbs ) {
           
Write-Output $verb
       }
   }
   
catch {
       
Write-Output "Verben konnten nicht ausgelesen werden !"
   }
}
else {
   
Write-Output ( "Datei nicht gefunden: " + $fileName )
}


Verfügbare Verben für diese Erweiterung:

  • open

  • print

  • printto


Aufgelistet werden alle Verbs, deren Verb-Handler wir in den Classes gesehen haben.

Shell Verbs benutzen ...


Um nun ein bestimmtes Verb, in unserem Fall das "print" zu benutzen, geben wir das Verb bei der Shell-Execute Funktion mit:

PowerShell Prinzip-Beispiel:

$fileName = "c:\temp\textfile.txt"

if ( Test-Path( $fileName )) {
   
Write-Output ( "Dokument wird gedruckt: " + $fileName )

   
try {
      $processStartInfo =
New-Object System.Diagnostics.ProcessStartInfo( $fileName )
      $processStartInfo.UseShellExecute =
$true
      $processStartInfo.Verb =
"print"
      $process = [System.Diagnostics.Process]::
Start( $processStartInfo )
   }
   
catch {
       Write-Output "Dokument konnte nicht gedruckt werden !"
   }
}
else {
   Write-Output ( "Datei nicht gefunden: " + $fileName )
}

Stimmt soweit alles, so wird das Text-Dokument anstandslos auf dem Standard-Drucker ausgedruckt ...


 
Kein Kommentar
 
Letzte Änderung: 03.02.2015
button Canvas not supported button
Zurück zum Seiteninhalt | Zurück zum Hauptmenü