AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Windows 7 Fotoanzeige Workaround

Ein Thema von Moombas · begonnen am 9. Dez 2020 · letzter Beitrag vom 14. Dez 2020
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#1

Windows 7 Fotoanzeige Workaround

  Alt 9. Dez 2020, 07:59
Moin zusammen,

ich möchte mich einem aktuellen Problem widmen, brauche da aber eure Erfahrung, evtl. hat schon jemand eine Lösung die er teilen mag, man muss das Rad ja nicht neu erfinden.

Problematik: Ab Android 10 werden die Bilder, die in Apps (mit der Kamera) gemacht und komprimiert werden, leider für die Windows Fotoanzeige in windows 7 (und ggf. darunter) nicht mehr angezeigt (nur das Vorschaubild bei der Datei) und es gibt eine leicht irreführende Fehlermeldung:

"Das Bild kann nicht angezeigt werden, da möglicherweise nicht genügend Arbeitsspeicher zur Verfügung steht. Schließen sie nicht verwendete Programme, oder geben sie Festplattenspeicher frei (wenn die Festplatte fast voll ist). Versuchen sie es anschließend erneut."

Wir haben dazu leider keine Lösung innerhalb von Windows 7 gefunden und wollten ein anderes Programm als die Fotoanzeige verwenden. Diese bieten leider viel zu viele Funktionen (die Standard Fotoanzeige war hierfür ideal).

Idee ist nun das in Delphi quasi selber nachzubauen (das TImage zeigt das Bild korrekt an), leider habe ich keine Ahnung wie Windows die Dateiinformation weitergibt, wenn man das Programm als "Standardprogramm" für Bilder hinterlegt hat.
Von anderen Sachen wie "Bild drehen" etc. will ich erst mal noch gar nicht reden
Oder ich speicher es einfach als bmp und öffne es dann in der Fotoanzeige (also als Middleware), das geht auch.

Aber dafür muss ich wissen, wie Windows die Dateiinformation übergibt (Parameter?).
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.

Geändert von Moombas ( 9. Dez 2020 um 08:52 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Windows 7 Fotoanzeige Workaround

  Alt 9. Dez 2020, 09:02
Problematik: Ab Android 10 werden die Bilder, die in Apps (mit der Kamera) gemacht und komprimiert werden, leider für die Windows Fotoanzeige in windows 7 (und ggf. darunter) nicht mehr angezeigt
Es geht hier um das neue HEIC Format, das dank Anlehnung an den H.265 Codec deutlich besser komprimieren kann und zusätzlich noch deutlich mehr kann.
Unter Windows 10 kam die Unterstützung glaube ich 2018.
Das uralte Windows 7 hat natürlich kein solches Funktionsupdate mehr bekommen.

Delphi selbst kann das Format auch nicht lesen, wenn das Betriebssystem es nicht kann. Unter Windows 10 kann man die Imaging-Routinen von Windows dafür nutzen.

Es bleibt daher entweder nicht nur bei Android sondern auch bei Windows auf eine neue Version zu wechseln oder Drittanbieterlösungen wie diese auszuprobieren:
https://www.copytrans.de/copytransheic/

Aber dafür muss ich wissen, wie Windows die Dateiinformation übergibt (Parameter?).
Der Dateiname wird einfach im ersten Parameter übergeben.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Windows 7 Fotoanzeige Workaround

  Alt 9. Dez 2020, 10:08
Danke @ jaenicke. Ich war mir dessen nicht so sicher

Für den, den es interessiert hier der Code, jedoch für Lazarus:
Delphi-Quellcode:
unit Middleware;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, LCLIntf, Windows;

type

  { TFotoviewerMiddleware }

  TFotoviewerMiddleware = class(TForm)
    Image1: TImage;
    procedure FormCreate(Sender: TObject);
  private

  public

  end;

var
  FotoviewerMiddleware: TFotoviewerMiddleware;

implementation

{$R *.lfm}

{ TFotoviewerMiddleware }

procedure TFotoviewerMiddleware.FormCreate(Sender: TObject);
var
  Filename : WideString;
begin
  Application.ShowMainForm := false;
  if ParamStr(1) <> 'then
  begin
    Image1.Picture.LoadFromFile(ParamStr(1));
    Filename := Widestring(Extractfilename(ParamStr(1)));
    Filename := Widestring(LeftStr(Filename, Length(Filename) - 3));
    Filename := Widestring('C:\temp\' + Filename + 'bmp');
    Image1.Picture.SaveToFile(Filename);
    OpenDocument(Filename);
    ShellexecuteW(Handle, 'open', PWideChar(Filename), PWideChar(''), nil, SW_MAXIMIZE);
  end;
  Application.Terminate;
end;

end.
Geht sicherlich auch schöner ohne Form etc. aber das sollte bis zur Umstellung auf W10 reichen.
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Windows 7 Fotoanzeige Workaround

  Alt 9. Dez 2020, 10:27
Hat sich erledigt
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.

Geändert von Moombas ( 9. Dez 2020 um 10:49 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Windows 7 Fotoanzeige Workaround

  Alt 9. Dez 2020, 11:10
Den Dateinamen kannst du auch einfach mit ChangeFileExt ändern, sowohl bei Delphi als auch bei Lazarus.

Lazarus kann HEIC? Oder das ist doch kein HEIC, sondern irgendetwas anderes. Denn mit dem Picture.SaveToFile wird ja auch normalerweise nichts konvertiert nur weil der Dateiname anders ist, sondern nur im aktuellen Format neu gespeichert.

Egal, die Hauptsache ist ja, dass es funktioniert. Denn für Windows 7 lohnen sich ja keine großen Untersuchungen mehr.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Windows 7 Fotoanzeige Workaround

  Alt 9. Dez 2020, 12:42
Nein, zumal auch eine Umstellung auf W10 mehr oder weniger im Gange ist.
Weißt du (oder von mir aus auch jemand anders) wie ich den Registry Key für die Standard Programme richtig ändere?

...
habs auf einem Testsystem mal manuell gesetzt, er setzt dann folgende Werte, das werde ich dann per Script auch setzen und hoffen das es klappt

HKEY_CLASSES_ROOT\Applications\*.exe\shell\open\co mmand\ (Standard) "c:\custom\*.exe" "%1"
HKEY_USERS\SSID\Software\Classes\Applications\*.ex e\shell\open\command\ (Standard) "c:\custom\*.exe" "%1"
HKEY_USERS\SSID\Software\Microsoft\Currentversion\ Explorer\FileExts\.jpg\UserChoice ProgId REG_SZ Applications\*.exe
HKEY_USERS\SSID_Classes\Applications\*.exe\shell\o pen\command\ (Standard) "c:\custom\*.exe" "%1"
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.

Geändert von Moombas ( 9. Dez 2020 um 13:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Windows 7 Fotoanzeige Workaround

  Alt 9. Dez 2020, 17:19
Es sollte unter Windows 7 genügen folgende Werte anzuschauen:
Code:
HKEY_CLASSES_ROOT\.jpg
--> unter dem Standardwert steht etwas wie jpegfile
Dann suchst du diesen Wert unter CLASSES_ROOT, z.B.:
HKEY_CLASSES_ROOT\jpegfile
Dort kannst du nun unter shell\open\command\ (Standard) deine Anwendung eintragen.

Wichtig:
Hier hat sich ab Vista viel geändert, weil Programme diese Änderung oft ohne Zustimmung des Benutzers gemacht haben. Unter Windows 10 wird immer nach einer Registrierung eines neuen Programms für einen Dateityp der Benutzer gefragt, wenn er das nächste Mal eine solche Datei öffnen möchte.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Windows 7 Fotoanzeige Workaround

  Alt 10. Dez 2020, 15:19
Hallo jaenicke,

danke für den Input, wir werden das nur bei den W7 Rechnern ändern, da das Problem bei W10 ja nicht besteht.
Ich test gerade noch die Registry zu ändern, da ich das aber mit einem AutoIt Script mache, wollte ich euch hier damit nicht behelligen

Aber geholfen hast du mir dennoch schon sehr.
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Windows 7 Fotoanzeige Workaround

  Alt 10. Dez 2020, 15:22
Ich test gerade noch die Registry zu ändern, da ich das aber mit einem AutoIt Script mache, wollte ich euch hier damit nicht behelligen
Aus der Registry den Eintrag exportieren, dann einfach mit dem Befehl reg (und entsprechenden Rechten natürlich) importieren:
Code:
reg import blub.reg
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.081 Beiträge
 
Delphi 2009 Professional
 
#10

AW: Windows 7 Fotoanzeige Workaround

  Alt 10. Dez 2020, 17:45
Wir können jetzt noch paar Seiten um den heißen Brei drum rum reden. Daher jetzt mal Butter bei die Fische: Welche Erweiterung und mal den Anfang der Datei mit HxD ansehen.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz