Vista: Fehler beim Programmaufruf

German support forum

Moderators: Hacker, Stefan2, white

User avatar
Lefteous
Power Member
Power Member
Posts: 9536
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

2ghisler(Author)
Ich hoffe mein Problem passt hier rein. Ich kann die Assoziation für den Typ JPG nicht mehr ändern. Wenn ich auf "Typ bearbeiten" klicke, dann passiert einfach nichts. Ich arbeite wie immer als normaler Benutzer (Windows XP Pro SP2). Andere Typen können nach wie vor geändert werden.

Ich habe mal die Schlüssel herauskopiert, die in diesem Thread als wichtig genannt wurden. Di ersten beiden dürften nicht so sehr relevant sein, weil sie ja nur vom Admin bearbeitet werden können. Wenn noch weitere benötigt werden einfach Bescheid geben.

Code: Select all

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.jpg]
"PerceivedType"="image"
@="jpegfile"
"Content Type"="image/jpeg"

[HKEY_CLASSES_ROOT\.jpg\OpenWithProgids]
"jpegfile"=hex(0):

[HKEY_CLASSES_ROOT\.jpg\PersistentHandler]
@="{098f2470-bae0-11cd-b579-08002b30bfeb}"

Code: Select all

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\jpegfile]
@="JPEG-Bild"
"EditFlags"=dword:00010000
"FriendlyTypeName"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,\
  00,6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,\
  32,00,5c,00,73,00,68,00,69,00,6d,00,67,00,76,00,77,00,2e,00,64,00,6c,00,6c,\
  00,2c,00,2d,00,33,00,30,00,33,00,00,00
"ImageOptionFlags"=dword:00000003

[HKEY_CLASSES_ROOT\jpegfile\CLSID]
@="{25336920-03F9-11cf-8FD0-00AA00686F13}"

[HKEY_CLASSES_ROOT\jpegfile\DefaultIcon]
@="shimgvw.dll,3"

[HKEY_CLASSES_ROOT\jpegfile\shell]

[HKEY_CLASSES_ROOT\jpegfile\shell\open]
"MuiVerb"="@shimgvw.dll,-550"

[HKEY_CLASSES_ROOT\jpegfile\shell\open\command]
@="rundll32.exe C:\\WINDOWS\\system32\\shimgvw.dll,ImageView_Fullscreen %1"

[HKEY_CLASSES_ROOT\jpegfile\shell\open\DropTarget]
"Clsid"="{E84FDA7C-1D6A-45F6-B725-CB260C236066}"

[HKEY_CLASSES_ROOT\jpegfile\shell\printto]

[HKEY_CLASSES_ROOT\jpegfile\shell\printto\command]
@="rundll32.exe C:\\WINDOWS\\system32\\shimgvw.dll,ImageView_PrintTo /pt \"%1\" \"%2\" \"%3\" \"%4\""

Code: Select all

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg]
"Application"="xnview.exe"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg\OpenWithList]
"MRUList"="a"
"a"="xnview.exe"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg\OpenWithProgids]
"jpegfile"=hex(0):
Dieser Schlüssel schien mir auch irgendwie wichtig zu sein:

Code: Select all

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\Applications\xnview.exe]

[HKEY_CURRENT_USER\Software\Classes\Applications\xnview.exe\shell]

[HKEY_CURRENT_USER\Software\Classes\Applications\xnview.exe\shell\open]

[HKEY_CURRENT_USER\Software\Classes\Applications\xnview.exe\shell\open\command]
@="\"C:\\Programme\\XnView\\xnview.exe\" \"%1\""
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50386
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Ich würde mal TC mit vollen Admin-Rechten starten (über das Rechtsklickmenü des Desktop-Symbols), dann sollte es gehen.
Author of Total Commander
https://www.ghisler.com
User avatar
Lefteous
Power Member
Power Member
Posts: 9536
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

2ghisler(Author)
Ich würde das aber gerne ohne Adminrechte ändern. Mit dem Befehl Rechtsklickmenü kann ich das erreichen. Allerdings nur die Anwendung, aber nicht das Symbol. Ja und wie gesagt geht es ja bei anderen Assoziationen ohne Adminrechte bestens.

Wahrscheinlich wäre allerdings ein TC eigenes Assoziationssystem ("nach Dateityp") doch die zuverlässigste Lösung :-) Die Programme schnappen sich andauernd die Assoziationen gegenseitig weg. Das wird mich eines Tages nochmal ins Grab bringen. TC 7.5 oder 8? 8)
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50386
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Mit dem Befehl Rechtsklickmenü kann ich das erreichen.
Welcher Befehl? Open With? Wenn man das auch nur 1x benutzt, wird ein Schlüssel UserChoice angelegt, der lässt sich dann von keinem Programm mehr ändern! Ist UserChoice nicht vorhanden, dann sollte es eigentlich gehen, die Verknüpfungen zu ändern. Wieso das im vorliegenden Fall nicht geht, ist mir schleierhaft. Eventuell hat ja ein Programm die Permissions der Keys so geändert, dass sie nicht mehr änderbar sind...
Author of Total Commander
https://www.ghisler.com
User avatar
Lefteous
Power Member
Power Member
Posts: 9536
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

2ghisler(Author)
Welcher Befehl? Open With?
Ja "öffnen mit".
Wenn man das auch nur 1x benutzt, wird ein Schlüssel UserChoice angelegt, der lässt sich dann von keinem Programm mehr ändern! Ist UserChoice nicht vorhanden, dann sollte es eigentlich gehen, die Verknüpfungen zu ändern. Wieso das im vorliegenden Fall nicht geht, ist mir schleierhaft. Eventuell hat ja ein Programm die Permissions der Keys so geändert, dass sie nicht mehr änderbar sind...
Ich benutze ja wie gesagt Windows XP. Da werden solche Schlüssel offenbar nicht angelegt. Vielmehr scheinen die oben aufgeführten Schlüssel benutzt zu werden (die unteren beiden). Die Berechtigungen scheinen auch nicht das Problem zu sein. Ich habe das gerade mal überprüft.
User avatar
sqa_wizard
Power Member
Power Member
Posts: 3893
Joined: 2003-02-06, 11:41 UTC
Location: Germany

Post by *sqa_wizard »

2Lefteous: Ich nehme an, du möchtest hier ".jpg" mit XnView öffnen ?

Dazu wird normalerweise ein Benutzer-Schlüssel erzeugt, der auf die neue ProgID verweist.

Bei IrfanView ist das

Code: Select all

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg]
"ProgID"="IrfanView.JPG"
Vorraussetzung ist allerdings, dass diese ProgID bereits unter "HKEY_CLASSES_ROOT" existiert.
Für solche HKEY_CLASSES_ROOT Einträge sind allerdings Administrationsrechte erforderlich.

Das bedeutet, wenn einmal als Administrator die Zuweisung erfolgt, wird der HKEY_CLASSES_ROOT Eintrag erzeugt.
Dieser ist dann auch bei mehrfacher Änderung (weggeschnappt) auch als normaler Benutzer wieder referenzierbar.

Das erklärt auch, warum einige Assoziationen funktionieren (passender HKEY_CLASSES_ROOT Eintrag existiert) und bei anderen nicht (HKEY_CLASSES_ROOT Eintrag fehlt und kann als normaler Benutzer nicht angelegt werden)
#5767 Personal license
User avatar
Lefteous
Power Member
Power Member
Posts: 9536
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

2sqa_wizard
Vorraussetzung ist allerdings, dass diese ProgID bereits unter "HKEY_CLASSES_ROOT" existiert.
Wo genau?
User avatar
sqa_wizard
Power Member
Power Member
Posts: 3893
Joined: 2003-02-06, 11:41 UTC
Location: Germany

Post by *sqa_wizard »

Für IrfanView sieht es so aus:

Code: Select all

[HKEY_CLASSES_ROOT\IrfanView.JPG]
@="IrfanView JPG File"

[HKEY_CLASSES_ROOT\IrfanView.JPG\DefaultIcon]
@="C:\\Programme\\Grafik\\IrfanView\\i_view32.exe,0"

[HKEY_CLASSES_ROOT\IrfanView.JPG\shell]

[HKEY_CLASSES_ROOT\IrfanView.JPG\shell\open]

[HKEY_CLASSES_ROOT\IrfanView.JPG\shell\open\command]
@="\"C:\\Programme\\Grafik\\IrfanView\\i_view32.exe\" \"%1\""
bzw.

Code: Select all

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg]
@=""
"ProgID"="IrfanView.JPG"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg\OpenWithList]
"a"="firefox.exe"
"MRUList"="ciadgjefb"
"b"="PSP.EXE"
"c"="tl.exe"
"d"="mspaint.exe"
"e"="i_view32.exe"
"f"="Mozilla.exe"
"g"="viewer.exe"
"h"="dellix.exe"
"i"="Paint Shop Pro X.exe"
"j"="thunderbird.exe"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg\OpenWithProgids]
"jpegfile"=hex(0):
"DellImageExpertImage"=hex(0):
"MozillaJPEG"=hex(0):
"ViewerFrameClass"=hex(0):
#5767 Personal license
User avatar
Lefteous
Power Member
Power Member
Posts: 9536
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

HKEY_CLASSES_ROOT\IrfanView.JPG existiert hier nicht. Trotzdem kann ich als normaler Benutzer - wie oben geschrieben - mit "öffnen mit"ein anderes Programm auswählen.
Es funktioniert jedoch nicht mit der Assoziieren-Funktion im TC. Außerdem kann ich mit "öffnen mit" kein eigenes Symbol benutzen.
Schau dir mal die letzten beiden von mir oben reinkopierten Schlüssel an. Könnte es nicht einfach sein, dass erst in HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg "Application" gelesen/geschrieben wird und dann in HKEY_CURRENT_USER\Software\Classes\Applications\xnview.exe (Name des Schlüssels = Wert des zuvor gelesenen Eintrags) nachgeschaut und wenn dieser Schlüssel nicht existiert erstellt wird?
User avatar
sqa_wizard
Power Member
Power Member
Posts: 3893
Joined: 2003-02-06, 11:41 UTC
Location: Germany

Post by *sqa_wizard »

Ich habe mal jpg mit XnView verknüpft.

Das erzeugt folgende Schlüssel:

Code: Select all

[HKEY_CLASSES_ROOT\XnView.jpg]
@="JPE Bild"

[HKEY_CLASSES_ROOT\XnView.jpg\DefaultIcon]
@="c:\\Programme\\Grafik\\XnView\\xnview.exe,5"

[HKEY_CLASSES_ROOT\XnView.jpg\shell]

[HKEY_CLASSES_ROOT\XnView.jpg\shell\open]

[HKEY_CLASSES_ROOT\XnView.jpg\shell\open\command]
@="\"c:\\Programme\\Grafik\\XnView\\xnview.exe\" \"%1\""
bzw.

Code: Select all

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg]
"ProgID"="XnView.jpg"
Im TC wird dann die Vernüpfung "JPG" => "JPE Bild" angezeigt.
#5767 Personal license
User avatar
Lefteous
Power Member
Power Member
Posts: 9536
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

2sqa_wizard
Jetzt erinnere ich mich wieder. Wir hatten das schon mal im Alphatest diskutiert (ewig her). Es ist so: Natürlich kann man nicht direkt in HKEY_CLASSES_ROOT reinschreiben, ABER wenn man als normaler Benutzer diese Operation so wie du jetzt durchführt, dann schreibt er nach HKEY_CURRENT_USER\Software\Classes\Applications\xyz.exe. Der Trick ist jetzt aber, dass dieser Eintrag auch in HKEY_CLASSES_ROOT auftaucht.
Tja und der TC kommt damit offensichtlich nicht zurecht.
User avatar
sqa_wizard
Power Member
Power Member
Posts: 3893
Joined: 2003-02-06, 11:41 UTC
Location: Germany

Post by *sqa_wizard »

IM TC kannst du mit "Datei verknüpfen - Typ bearbeiten" Knopf nur die "ProgID" Zuordnug bearbeiten.
Dort werden auch der konkrete Programmaufruf und das verwendete Icon berücksichtigt.

Wenn du über das Kontext-Menü ein Programm direkt (also XnView.exe) zuweist, wird nur die Kombination :

Code: Select all

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg]
"Application"="xnview.exe" 

[HKEY_CURRENT_USER\Software\Classes\Applications\xnview.exe\shell\open\command]
@="\"C:\\Programme\\XnView\\xnview.exe\" \"%1\""
verwendet.

Dies ist aber keine "Typ"-Zuweisung sondern eine "Applikations"-Zuweisung.

(Die auch gar keinen eigenen Icon Eintrag hat ...)
#5767 Personal license
User avatar
Lefteous
Power Member
Power Member
Posts: 9536
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

Man kann übrigens auch bei diesem Assoziationstyp das Symbol ändern - manuell über die Registry :(
Das sieht dann z.B. so aus:

Code: Select all

[HKEY_CURRENT_USER\Software\Classes\Applications\xnview.exe]

[HKEY_CURRENT_USER\Software\Classes\Applications\xnview.exe\DefaultIcon]
@="c:\\Dokumente und Einstellungen\\lefteous\\Eigene Dateien\\Bilder\\Symbole\\Luigi.ico"

[HKEY_CURRENT_USER\Software\Classes\Applications\xnview.exe\shell]

[HKEY_CURRENT_USER\Software\Classes\Applications\xnview.exe\shell\open]

[HKEY_CURRENT_USER\Software\Classes\Applications\xnview.exe\shell\open\command]
@="\"C:\\Programme\\XnView\\xnview.exe\" \"%1\""
Oh ich sehe unsere Antworten haben sich zeitlich überschnitten. Ich denke mal du liegst wohl nicht so ganz richtig: ;-)
IM TC kannst du mit "Datei verknüpfen - Typ bearbeiten" Knopf nur die "ProgID" Zuordnug bearbeiten.
Dort werden auch der konkrete Programmaufruf und das verwendete Icon berücksichtigt.
Mag sein, dass das Idee ist, aber es geht ja einfach nicht.
Wenn du über das Kontext-Menü ein Programm direkt (also XnView.exe) zuweist, wird nur die Kombination
Genau da sind wir uns einig. Das habe ich ja oben schon geschrieben.
ies ist aber keine "Typ"-Zuweisung sondern eine "Applikations"-Zuweisung.
Ich denke der Standardwert von HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg kann für den Typen benutzt werden. "Öffnen mit" trägt den Typ zwar nicht ein, aber das heißt ja nichts.
(Die auch gar keinen eigenen Icon Eintrag hat ...)
siehe oben
JFierce7
Senior Member
Senior Member
Posts: 214
Joined: 2005-07-17, 10:47 UTC

Post by *JFierce7 »

2Lefteous -
Du könntest ja mal versuchen, mit Regmon herauszubekommen, was schief geht. Evtl. kann man so einen Dateityp, bei dem es klappt, mit dem .jpg vergleichen?
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

Adminrechte helfen hier nicht weiter, der TC-Dialog ist buggy!

Der Button "Typ bearbeiten" ist gesperrt, wenn unter HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg KEIN ProgID-Eintrag steht UND ein Application-Eintrag, der NICHT leer ist. "ProgID" hat Vorrang vor "Application".

Was Du bei der Betrachtung nicht berücksichtigt hast ist der "PerceivedType":
HKEY_CLASSES_ROOT\SystemFileAssociations\image

Wenn im TC ein falsches Icon dargestellt wird und Du es mit Öffnen mit nicht ändern kannst, liegt das vermutlich am DefaultIcon, das dort referenziert wird. Der Explorer dürfte in dem Fall das korrekte Icon anzeigen, das Du mit "Öffnen mit" zugewiesen hast.

HKEY_CLASSES_ROOT ist übrigens kein eigenständiger Ast, sondern spiegelt die Inhalte von HKEY_CURRENT_USER\Software\Classes\ sowie HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ wieder.

HKCU hat Vorrang vor HKLM. Wenn man also nach HKCR schreibt und ein Eintrag unter HKCU exisitiert, wird dieser geändert, was dazu führen dürfte, daß man auch als Nichtadmin nach HKCR schreiben darf.

Icfu
This account is for sale
Post Reply