![]() |
Kontextmenüpunkt Drucken
Hallo,
woher weiß das Kontextmenü, dass ich eine Datei drucken kann? Wo steht das genau in der Registry? z.b. für eine .txt, .ini oder .jpg Ich möchte bei unserer Dokumentenverwaltung einen Menüpunkt erstellen, mit dem ich dokumente Drucken kann. Dieser Menüpunkt solle aber nur enabled sein, wenn ich die Datei auch über das Kontextmenü drucken kann. |
AW: Kontextmenüpunkt Drucken
Hallo,
schau mal unter HKEY_CLASSES_ROOT. Dort findest Du Schlüssel mit den jeweiligen Dateiendungen (.txt, .ini, .jpg etc.). Für die jeweilige Dateiendung dann den Datenwert für Standard auslesen (für den Schlüssel .txt z. B. ist das txtfile). Anschließend nach diesem Unterschlüssel suchen. Unter diesem Unteschlüssel (z. B. txtfile) existiert ggf. der Unterschlüssel shell und darunter print (oder auch nicht, wenn keine Druckanwendung hinterlegt ist). Unter dem Schlüssel print existiert der Unterschlüssel command. Dort steht im Datenwert Standard die Anwendung zum Drucken. Gruß |
AW: Kontextmenüpunkt Drucken
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Volker,
dabe ich schon nachgeschaut und werde nicht ganz schlau. Im Anhang habe ich den Auszug für die Ini-Datei. Unter Persitstenhandler ist nur eine Guid eingetragen. Unter diese finde ich aber keinen Eintrag. Win8 64Bit verwende ich |
AW: Kontextmenüpunkt Drucken
Das stimmt zwar in den meisten Fällen, aber wohl leider nicht immer. Es kann auch sein, dass der Standardwert zu einer Endung eine GUID ist, die man dann auch wieder erst mühsam suchen muss, oder dass der Unterschlüssel nicht print, sondern printto heißt.
|
AW: Kontextmenüpunkt Drucken
Doch die Klasse solltest du unter CLSID finden. U.U. verweist diese aber auf eine andere GUID
|
AW: Kontextmenüpunkt Drucken
Da wäre es doch toll gewesen, wenn Microsoft äquivalent zu FindExecutable auch FindPrintable implementiert hätte. Dieses Registry-Gehangel macht ja nur bedingt Spaß.
|
AW: Kontextmenüpunkt Drucken
Hallo,
Zitat:
Zitat:
Gruß |
AW: Kontextmenüpunkt Drucken
ShellExecute kann doch das Verb 'print', oder? Das müsste doch genau dem Kontextmenüeintrag entsprechen.
|
AW: Kontextmenüpunkt Drucken
Hallo,
wenn das (Windows Explorer) Kontextmenü den Menüpunkt "Drucken" anbieten, dann sollte Dir folgender Code einen nicht leeren Wert (string) zurückliefern.
Delphi-Quellcode:
Gruß
function ReadRegistryShellPrintCommand (const Extention : string) : string;
var r : TRegistry; s : string; begin r := TRegistry.Create; try r.RootKey := HKEY_CLASSES_ROOT; if not r.OpenKeyReadOnly (Extention) then Result := '' else try s := r.ReadString (''); r.CloseKey; if s = '' then Result := '' else begin s := IncludeTrailingPathDelimiter (s) + 'shell\'; if r.OpenKeyReadOnly (s + 'print\command') then Result := r.ReadString ('') else if r.OpenKeyReadOnly (s + 'printto\command') then Result := r.ReadString ('') else Result := '' end except // Deine Fehlerbehandlung Result := '' end finally FreeAndNil (r) end end; |
AW: Kontextmenüpunkt Drucken
Danke,
werde ich mal testen. Edit: Ja es funktioniert wunderbar! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz