Office: Sendkeys an Windows Bild- und Faxanzeige

Helfe beim Thema Sendkeys an Windows Bild- und Faxanzeige in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich möchte gern per VBA SendKeys("PGDN") an die Windows Bild- und Faxanzeige senden um die Seiten eines MultiTifs zu durchblättern.... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von sven78hh, 11. September 2013.

  1. sven78hh
    sven78hh Erfahrener User

    Sendkeys an Windows Bild- und Faxanzeige


    Hallo zusammen,

    ich möchte gern per VBA SendKeys("PGDN") an die Windows Bild- und Faxanzeige senden um die Seiten eines MultiTifs zu durchblättern.

    Die Tif-Datei rufe ich bisher so auf:
    Shell "rundll32.exe shimgvw.dll,ImageView_Fullscreen C:\Dokumente und Einstellungen\Sven\Desktop\testtif.tif"

    Hat jemand eine Idee und kann mir helfen?


    Das System das ich zur Verfügung habe: Win XP mit Office 2003

    Vielen Dank und Viele Grüße
    Sven
     
    Zuletzt bearbeitet: 11. September 2013
  2. Exl121150 Erfahrener User
    Hallo Sven,

    Du wendest die shimgvw.dll auf einen Dateipfad an, der Leerzeichen enthält: C:\Dokumente und Einstell...".
    Ein solcher Dateipfad muss jedoch in solche "..." Anführungszeichen gesetzt werden, damit die einzelnen Pfadbestandteile nicht als mehrere Parameter aufgefasst werden. Aber genau mit diesen Anführungszeichen beim Dateipfad kann jedoch die shimgvw.dll nichts anfangen.
    Diese verquere Eigenschaft konnte ich durch Tests herausfinden (ich habe allerdings Windows8):
    1) Entweder Du verwendest einen Dateipfad, der keine Leerzeichen enthält. Dann brauchst Du den Dateipfad nicht in Anführungszeichen setzen. Dann kannst Du die shimgvw.dll verwenden. Dann funktioniert sie auch unter Windows8.
    2) Oder aber Du kannst nicht auf einen solchen Dateipfad verzichten: Dann musst Du einen anderen Grafikviewer verwenden, zB. Irfanview. Dieser ist noch dazu gratis. Dieser versteht natürlich auch die Page-Down- und Page-Up-Tasten.

    Nachfolgend der Code, den ich verwendet habe, mit reichlich Kommentar:
    Code:
    Option Explicit
    '
    'Die Variable varProgID ist hier auf Modulebene zu deklarieren, damit sie
    'sowohl in der SUB cmdNxtSeite_Click als auch in der SUB AnwendungÖffnen verfügbar ist.
    Dim varProgID As Variant
    '
    'Click-Ereignis für den ActiveX-Button "cmdNxtSeite":
    '
    Private Sub cmdNxtSeite_Click()
    '
      'varProgID = Range("A3").Value
      If varProgID Then
        'Sendkeys sendet die Tastaturbefehle an die Anwendung, die gerade den Fokus hat.
        'In der Shell-Funktion wurde zwar die Anwendung in einem Fenster mit NormalFocus geöffnet;
        'damit sie aber vor dem Senden des Tastenbefehls tatsächlich noch/wieder den Fokus hat/bekommt,
        'wird auf die erfolgreiche Ausführung des AppActivate-Befehls gewartet:
        VBA.AppActivate Title:=varProgID, Wait:=True
        'Der Tastenbefehl "Page-Down" wird an die Anwendung, die momentan den Fokus hat, gesendet.
        'Damit eine Wirkung feststellbar ist, muss diese Anwendung diesen Tastenbefehl tatsächlich auch "verstehen".
        SendKeys String:="{PGDN}", Wait:=True
      Else
        MsgBox "Die ProgID = 0 ! --> Abbruch."
      End If
      '
    End Sub
    '
    'Click-Ereignis für den ActiveX-Button "cmdÖffnen":
    '
    Private Sub cmdÖffnen_Click()
      Call AnwendungÖffnen
    End Sub
    '
    Private Sub AnwendungÖffnen()
      '
      Dim Anwendung As String, PfadDatei As String
      '
      Anwendung = "Rundll32.exe shimgvw.dll,ImageView_Fullscreen "
                  'Anwendung = "C:\Windows\System32\notepad.exe" '<--- Damit habe ich getestet.
      PfadDatei = "C:\Dokumente und Einstellungen\Sven\Desktop\testtif.tif"
                  'PfadDatei = "I:\VecWaWi\Export\Stamm12.txt"   '<--- Damit habe ich getestet.
      'Enthält der Pfad/Dateiname Leerzeichen, muss das Ganze in ".." gesetzt werden:
      'PfadDatei = Chr(34) & PfadDatei & Chr(34)
      'shimgvw.dll erkennt aber leider nicht einen solchen in ".."-gesetzten Dateipfad !!!
      'Hier ist es besser einen anderen Viewer zu verwenden, zB. Irfanview  (dieser ist noch dazu gratis)
      '
      'Damit die Anwendung auf Sendkeys reagiert, muss ihr Anwendungsfenster den Fokus haben.
      'Außerdem wird der Rückgabewert der Shell-Funktion benötigt, um ermitteln zu können, ob die Anwendung gestartet ist.
      varProgID = VBA.Shell(PathName:=Anwendung & " " & PfadDatei, WindowStyle:=vbNormalFocus)
      '
      'Da die Shell-Funktion die Anwendung asynchron startet, ist es notwendig,
      'zu überprüfen, ob die Variable varProgID bereits einen Wert ungleich Null (= Anwendung ist gestartet) enthält.
      'Damit die Abarbeitung anderer Ereignisse unter Windows nicht behindert wird,
      'ist zwischenzeitlich der Aufruf der DoEvents-Prozedur notwendig.
      Do While varProgID = 0
        DoEvents
      Loop
      'Range("A3").Value = varProgID
    End Sub
    
    Diesen Code habe ich im Codemodul eines Arbeitsblattes verwendet. Im Arbeitsblatt selber habe ich 2 ActiveX-Buttons platziert namens "cmdÖffnen" und "cmdNxtSeite". Durch Anklicken dieser beiden Buttons werden die Klick-Prozeduren "cmdÖffnen_Click()" und "cmdNxtSeite_Click()" ausgeführt.
     
    Zuletzt bearbeitet: 11. September 2013
    Exl121150, 11. September 2013
    #2
  3. sven78hh
    sven78hh Erfahrener User
    Hallo Anton,
    vielen Dank das Du dir so viel Arbeit gemacht hast.
    Ich werde das morgen gleich ausprobieren.
    Was einen anderen Viewer wie z.B. Irfanview angeht... ich darf (kann) keine Software auf meinen Firmen PC installieren.
    Daher muss ich alles was Tools und Automatisierung betrifft mit vba/vbs und mit den Anwendung die MS bereitstellt erledigen :-(

    Viele Grüße
    Sven
     
  4. sven78hh
    sven78hh Erfahrener User

    Sendkeys an Windows Bild- und Faxanzeige

    Funktioniert wunderbar!!!
    Vielen Dank nochmals.
     
Thema:

Sendkeys an Windows Bild- und Faxanzeige

Die Seite wird geladen...
  1. Sendkeys an Windows Bild- und Faxanzeige - Similar Threads - Sendkeys Bild Faxanzeige

  2. Bilder und Absatzmarke automatisch einfügen

    in Microsoft Word Hilfe
    Bilder und Absatzmarke automatisch einfügen: Hallo, wenn ich in Word mehrere Bilder über „Grafik einfügen“ markiere, werden die hintereinander eingefügt, siehe erste Spalte im beigefügten Bild. Für die nachträgliche Bearbeitung wäre es...
  3. Die Aktion von F2 und Enter als Makro ohne Sendkeys

    in Microsoft Excel Hilfe
    Die Aktion von F2 und Enter als Makro ohne Sendkeys: Hallo Community, ich habe das Problem, dass in Zeitpunkte mit Datum und Zeit inkl. Millisekunden habe und mit einer anderen Datenquelle vergleichen muss. Durch das Aufbereiten der Daten...
  4. VBA Sendkeys + Application.Wait

    in Microsoft Excel Hilfe
    VBA Sendkeys + Application.Wait: Guten Abend zusammen an Halloween *G* *tongue.gif* ich habe folgendes Problem: Auf der Arbeit habe ich ein Makro geschrieben, welches mehrere "Sheets" nacheinander abruft und dann dort...
  5. SendKeys "^v", True

    in Microsoft Access Hilfe
    SendKeys "^v", True: Hallo Kann mir bitte jemand sagen warum folgender Code: DoCmd.GoToControl "WebBrowser0" SendKeys "^v", True nicht mehr funktioniert?? Es dabei darum, dass ich eine Datei in den...
  6. Probleme mit SendKeys

    in Microsoft Access Hilfe
    Probleme mit SendKeys: Hallo zusammen, ich benutze eine Access Datenbank aus Office 2000 mit vielen Tastaturbefehlen (ENTER; LEFT; DOWN usw.). Nach Umstellung auf Office 365 funktionieren diese Befehle nicht mehr. Habe...
  7. Über sendkeys Fritzfax drucker steuern

    in Microsoft Access Hilfe
    Über sendkeys Fritzfax drucker steuern: Hallo Ich hab mal wieder ein Problem. Ich möchte über ein formular Automatisch ein Bericht in fritzfax drucken. Wenn man dies tut dann kommt ja das Fenster für die Faxnummer. Um die Faxnummer...
  8. VBA Excel: sendkeys beim Windows7

    in Microsoft Excel Hilfe
    VBA Excel: sendkeys beim Windows7: Hi, ich möchte einem externen Programm über VBA ein Befehl senden (ein Progamm mit Tastensteuerung steuern). Leider geht die einfache Lösung mit sendkeys-Methode unter Win7 nicht....
Schlagworte:
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden