Windows-Foto-Anzeige nutzen [Erledigt]

Fragen rund um diverse Windows-Versionen, ihr Verhalten unter Xbase++ und den Umgang mit der API

Moderator: Moderatoren

Windows-Foto-Anzeige nutzen [Erledigt]

Beitragvon Gerd König » Do, 17. Dez 2015 11:25

Hi,

ich experimentiere schon eine ganze Weile daran herum und habe noch keine Lösung gefunden:

Ich habe einen Ordner mit verschiedenen Dateien (vorwiegend PDFs, aber auch jpg-, bmp-, tif-Dateien)
PDFs öffne ich mit der Standardappliketion (Acrobat Reader)
Wenn ich die Standard-App auf Bilder anwende, startet immer ein Programm, mit dem ich auch die Bilder bearbeiten kann (z.B. Photoeditor).

Ich möchte aber einheitlich auf jedem PC im Netzwerk diese Bilder mit dem Windows-Photoviewer anzeigen und habe schon einiges mit RunShell() und Rundll32.exe ausprobiert.
Leider ohne Erfolg :banghead: :book: #-o

Vielleicht hat einer von Euch bereits dieses Problm gelöst?
Schon mal im Voraus herzlichen Dank
Gerd
Zuletzt geändert von Gerd König am Do, 17. Dez 2015 14:44, insgesamt 2-mal geändert.
Benutzeravatar
Gerd König
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 193
Registriert: Fr, 09. Jun 2006 6:52
Wohnort: Nähe Sömmerda

Re: Windows-Foto-Anzeige nutzen

Beitragvon brandelh » Do, 17. Dez 2015 11:49

Am einfachsten ist es das Standardprogramm festzulegen, aber wenn das nicht geht, müsste die EXE per Runshell funktionieren.

Kennst du die EXE dieses Windows-Photoviewers ?
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13323
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: Windows-Foto-Anzeige nutzen

Beitragvon Gerd König » Do, 17. Dez 2015 12:02

Hallo Hubert,
der Photoviewer wird über die Rundll32.exe gestartet.

RunShell("PhotoViewer.dll ,ImageView_Edit +cFile","Rundll32.exe",.T.,.T.)

liefert z.B. den Fehler:

Problem beim Starten von PhotoViewer.dll
Das angegebene Modul wurde nicht gefunden.
Zuletzt geändert von Gerd König am Do, 17. Dez 2015 12:54, insgesamt 1-mal geändert.
Benutzeravatar
Gerd König
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 193
Registriert: Fr, 09. Jun 2006 6:52
Wohnort: Nähe Sömmerda

Re: Windows-Foto-Anzeige nutzen

Beitragvon Rolf Ramacher » Do, 17. Dez 2015 12:35

Hallo Gerd

ich nutze ShellExecute - damit kannst du jede Art von Anzeige starten- ob PDF jpg, png

Code: Alles auswählen
#include "Common.ch"
#include "Gra.ch"
#include "Xbp.ch"
#include "Appevent.ch"
#include "Font.ch"
#include "Inkey.ch"
#include "dll.ch"

    #DEFINE  SW_HIDE              0
    #DEFINE  SW_SHOWNORMAL        1
    #DEFINE  SW_NORMAL            1
    #DEFINE  SW_SHOWMINIMIZED     2
    #DEFINE  SW_SHOWMAXIMIZED     3
    #DEFINE  SW_MAXIMIZE          3
    #DEFINE  SW_SHOWNOACTIVATE    4
    #DEFINE  SW_SHOW              5
    #DEFINE  SW_MINIMIZE          6
    #DEFINE  SW_SHOWMINNOACTIVE   7
    #DEFINE  SW_SHOWNA            8
    #DEFINE  SW_RESTORE           9
    #DEFINE  SW_SHOWDEFAULT      10

    FUNCTION ShellExecute( hWnd,cOperation,cFile,cParameters,cDir,nShowCmd )
    LOCAL hDLL
    LOCAL nResult
    DEFAULT cOperation TO "open"
    DEFAULT cParameters TO ""
    DEFAULT cDir TO SubStr(cFile,1,RAT("\",cFile)-1)
    DEFAULT nShowCmd TO SW_SHOW
      hDLL := DLLLoad("Shell32.DLL")
      IF hDll > 0
        nResult := DLLCall( hDll,DLL_STDCALL,"ShellExecuteA",hWnd,@cOperation,@cFile,@cParameters,@cDir,nShowCmd )
        DllUnload(hDll)
      ELSE
        nResult := -1
      ENDIF
    RETURN( nResult )


In diesem fall eine PDF
Code: Alles auswählen
   cVerz:=CurDrive()+":\"+CurDir()
         cFile:="inventurbeschreibung.pdf"
         ShellExecute(Nil,"open",cFile,Nil,cVerz)
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1807
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim

Re: Windows-Foto-Anzeige nutzen

Beitragvon Jan » Do, 17. Dez 2015 12:51

Rolf,

das hilft leider nicht. Denn damit wird die Datei mit dem konfigurierten Standardprogramm geöffnet. Aber genau das will Gerd nicht haben. Der will ein selber fest vorgegebenes Programm nutzen.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Foren-Administrator
Foren-Administrator
 
Beiträge: 11618
Registriert: Fr, 23. Sep 2005 17:23
Wohnort: 49328 Melle

Re: Windows-Foto-Anzeige nutzen

Beitragvon Gerd König » Do, 17. Dez 2015 13:40

DIe Aufrufe

Code: Alles auswählen
i:=RunShell('"C:\WINDOWS\System32\shimgvw.dll, ImageView_Fullscreen "'+cFile,"Rundll32.exe",.T.,.F.)
i:=RunShell('"%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll, ImageView_Fullscreen "'+cFile,"Rundll32.exe",.T.,.F.)


liefern zwar keinen Fehler, aber es wird auch nichts angezeigt.

Im I-Net habe ich jetzt den Hinweis gefunden, eine Batch-Datei aufzurufen und dieser die anzuzeigende Datei als Parameter zu übergeben.
...aber irgendwie ist das von hinten durch die Brust ins Auge...

Gerd
Benutzeravatar
Gerd König
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 193
Registriert: Fr, 09. Jun 2006 6:52
Wohnort: Nähe Sömmerda

Re: Windows-Foto-Anzeige nutzen

Beitragvon Werner_Bayern » Do, 17. Dez 2015 14:15

Servus Gerd,

zeig sie halt selber in einem xbPStatic an, ist doch trivial?
es grüßt euch

Werner
Benutzeravatar
Werner_Bayern
Programmier-Gott
Programmier-Gott
 
Beiträge: 1215
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern

Re: Windows-Foto-Anzeige nutzen

Beitragvon brandelh » Do, 17. Dez 2015 14:32

Gerd König hat geschrieben:[code]
i:=RunShell('"C:\WINDOWS\System32\shimgvw.dll, ImageView_Fullscreen "'+cFile,"Rundll32.exe",.T.,.F.)


fehlt da nicht ein , nach ImageView_Fullscreen ?

Gerd König hat geschrieben:Im I-Net habe ich jetzt den Hinweis gefunden, eine Batch-Datei aufzurufen und dieser die anzuzeigende Datei als Parameter zu übergeben.
...aber irgendwie ist das von hinten durch die Brust ins Auge...
Gerd


wie sieht denn die Batch aus ?

Man kann darin die Syntax sehen UND man kann solche ja auch dynamisch erzeugen und ausführen (so fällt es niemand auf).
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13323
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: Windows-Foto-Anzeige nutzen

Beitragvon Gerd König » Do, 17. Dez 2015 14:42

Vielen Dank für die Hinweise, folgender Code funktioniert:

Code: Alles auswählen
i:=RunShell("C:\WINDOWS\System32\shimgvw.dll, ImageView_Fullscreen "+cFile,"Rundll32.exe",.T.,.F.)


Gerd
Benutzeravatar
Gerd König
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 193
Registriert: Fr, 09. Jun 2006 6:52
Wohnort: Nähe Sömmerda

Re: Windows-Foto-Anzeige nutzen [Erledigt]

Beitragvon brandelh » Do, 17. Dez 2015 15:11

Jetzt sehe ich es auch ... ( Blanks zwischen ' und " zur Verdeutlichung eingefügt.)

Code: Alles auswählen
i := RunShell ( '  "C:\WINDOWS\System32\shimgvw.dll, ImageView_Fullscreen "  '+cFile  ,"Rundll32.exe",.T.,.F.)


wurde als Parameter zu ...

Code: Alles auswählen
"C:\WINDOWS\System32\shimgvw.dll, ImageView_Fullscreen "MeinDateiname.PNG


dein neuer Vorschlag wird übersetzt nach

Code: Alles auswählen
C:\WINDOWS\System32\shimgvw.dll, ImageView_Fullscreen MeinDateiname.PNG


was auf jeden Fall geht, solange cFile keine Blanks enthält. Eventuell auch mit Blanks, ich weiß es nicht. Ansonsten so versuchen ...

Code: Alles auswählen
i := RunShell ( chr(34) + 'C:\WINDOWS\System32\shimgvw.dll, ImageView_Fullscreen ' + cFile + chr(34)  ,"Rundll32.exe",.T.,.F.)

möglicherweise auch so (ich kenn die Syntax von dem Viewer nicht):

Code: Alles auswählen
i := RunShell ( 'C:\WINDOWS\System32\shimgvw.dll, ImageView_Fullscreen ' + chr(34) + cFile + chr(34)  ,"Rundll32.exe",.T.,.F.)
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13323
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: Windows-Foto-Anzeige nutzen [Erledigt]

Beitragvon Gerd König » Fr, 18. Dez 2015 7:06

Auch mit Blanks im Dateinamen funktioniert die Anzeige.

Gerd
Benutzeravatar
Gerd König
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 193
Registriert: Fr, 09. Jun 2006 6:52
Wohnort: Nähe Sömmerda

Re: Windows-Foto-Anzeige nutzen [Erledigt]

Beitragvon brandelh » Fr, 18. Dez 2015 8:14

schön :D
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13323
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim


Zurück zu Windows, API

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast