Wie lösche ich System-Standarddruckerformulare?

12

Unter Windows gibt es Systemstandarddruckerformulare, die nicht im Dialogfeld "Druckservereigenschaften" gelöscht werden können. Gibt es eine andere Möglichkeit, sie zu entfernen? Wir werden niemals Seitengrößen wie Envelope, B5 (JIS), US Std Fanfold usw. verwenden, und ich möchte den Benutzern (und mir selbst!) Das Scrollen durch eine lange Liste von Rauschen ersparen.

Das Druckservereigenschaftenfeld verfügt über eine unbrauchbare Schaltfläche zum Löschen

Unsere Druckserver sind Windows Server 2003, wenn dies einen Unterschied macht.

Matt Wilkie
quelle
Das Löschen der Systemformulare ist möglicherweise keine Option. Warum nicht versuchen, ein Standardformular für jedes Fach des Druckers festzulegen, anstatt jedes Mal nach unten scrollen zu müssen?
ServerFaulter
@ServerFaulter, ich benötige die gleichen Formulare für mehrere Drucker (und sie haben größtenteils nur ein Fach; die meisten sind Großformat-Rollenzuführungsplotter).
Matt Wilkie
2
Das ist komplett Ghetto, aber Sie können Ihre Formulare 000 MyForm - MyPageSizeoder ähnliches nennen.
Voretaq7
@ voretaq7 Ich denke, das ist eigentlich die beste Option.
Dan
2
@Dan Es vermeidet das Problem, aber es löst es auf keinen Fall. Sie MÜSSEN wirklich in der Lage sein, unnötige Vorlagen zu löschen, aber wenn MS das zu einer lästigen Aufgabe macht, dann schrauben Sie es.
Voretaq7

Antworten:

5

Mein erster Gedanke war, zu prüfen, ob dies mithilfe der Windows-APIs erreicht werden kann. Laut dieser Website über die Win32-API für Druckerformulare ist es jedoch nicht einmal möglich, Systemformulare programmgesteuert zu löschen:

Man kann DeleteForm () in einem eingebauten Formular nicht löschen: Es schlägt mit ERROR_INVALID_PARAMETER fehl.

Mein zweiter Gedanke war, einen relativ eindeutigen Formularnamen zu finden, z. B. US Std Fanfoldund die gesamte Registrierung zu durchsuchen. Überraschenderweise findet der Einstieg an etlichen Stellen statt. Mein Vorschlag wäre daher, eine leere 32-Bit-Maschine zu bauen (32-Bit, um Verwechslungen mit Schattenschlüsseln zu vermeiden) und mit einigen dieser Schlüssel in die Stadt zu fahren. Wenn Sie es zum Laufen bringen, sollte es leicht zu transponieren sein, wo immer Sie dies tun müssen.

Es muss jedoch gesagt werden, dass Sie sich angesichts der Tatsache, dass Microsoft dies eindeutig nicht möchte, für Support- und Kompatibilitätsprobleme öffnen.

Dan
quelle
Die API-Seite für verknüpfte Formulare ist außergewöhnlich gut geschrieben. Auch wenn ich kein Entwickler bin, macht es mir vieles klarer. Vielen Dank.
Matt Wilkie
2

Standard-Papierformulare sind Bestandteil der Druckertreiber und können nur manuell aus den entsprechenden Dateien gelöscht werden.

Hier ist eine Anleitung, wie ich es geschafft habe:

1. Öffnen Sie CMD als Administrator.

2. Geben Sie "printui / s / t2" (ohne Anführungszeichen) ein.

3.Wählen Sie im geöffneten Fenster einen Drucker aus, für den Papierformulare gelöscht werden sollen, und klicken Sie unten auf Eigenschaften.

4.Suchen Sie im Explorer nach den aufgelisteten Dateien unter dem angegebenen Pfad (wahrscheinlich C: \ Windows \ System32 \ spool \ drivers \ x64 \ 3).

5.Erstelle eine Sicherungskopie all dieser Dateien (zB in einem Ordner auf dem Desktop)

6.Öffnen Sie jede der Originaldateien mit dem Editor (einzeln). Wenn es lesbaren Code enthält, drücken Sie Strg + F (um die Suche zu öffnen) und geben Sie eines der bekannteren Papierformulare ein, das gelöscht werden soll (z. B. Postkarte, Legal, Brief ...). Wenn keines der gesuchten Wörter gefunden wird, Schließen Sie die Datei, ohne zu speichern, und versuchen Sie es mit der nächsten Datei. (In meinem Fall fand ich sie in Dateien mit der Erweiterung ".gpd" und ".inx" für physische Drucker, ".PPD" für meinen PDF-Creator)

7.Wenn ein Eintrag gefunden wird: Für alle Papierformulare sollte ein Absatz mit Codeblöcken aufgeführt sein. Einige Beispiele:

    [JAPANESE_POSTCARD]
    MediaType=8.1055
    InputBin=7

oder

    *Option: JAPANESE_POSTCARD_90x90x50x95
    {
        *Name: ""
    }

oder

    *Option: JAPANESE_POSTCARD
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *Constraints: LIST(Duplex.VERTICAL, Duplex.HORIZONTAL)
        *Constraints: InputBin.4
        *PageDimensions: PAIR(4724, 6992)
        *PrintableArea: PAIR(4412, 6680)
        *PrintableOrigin: PAIR(156, 156)
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *CursorOrigin: PAIR(156, 156)
            }
            *case: LANDSCAPE_CC270
            {
                *CursorOrigin: PAIR(4568, 156)
            }
        }
        *Command: CmdSelect
        {
            *CallbackID: 0x00470002
            *Order: DOC_SETUP.2
        }
        *Command: CmdSelect
        {
            *CallbackID: 0x00470002
            *Order: PAGE_SETUP.2
        }
    }

Löschen Sie alle derartigen Blöcke für alle unerwünschten Papierformulare. Höchstwahrscheinlich gibt es mehr als einen Absatz mit ähnlichen Blöcken. Suchen Sie also die Datei weiter und wiederholen Sie den Vorgang, bis keiner gefunden wird. Speichern und schließen Sie dann die Datei.

8.Öffnen Sie nach jeder Änderung einer Datei ein Dokument (z. B. Word, Excel ...) und überprüfen Sie, ob die unerwünschten Papierformulare noch in den Druckeinstellungen dieses Druckers aufgeführt sind.

-wenn noch vorhanden: Zurück zu Schritt 6, nächste Datei suchen.

-wenn nicht: herzlichen glückwunsch! (Zurück zu Schritt 3, wenn mehr Drucker vorhanden sind, um unerwünschte Formulare zu entfernen).

-wenn es Probleme gibt: Zuletzt bearbeitete Datei mit Backup überschreiben. (Vielleicht haben Sie einen Fehler gemacht, versuchen Sie es erneut.)

Hoffe das hilft. Prost!

Stallnig
quelle
1

Starten Sie den Prozess "Print Management" (printmanagement.msc).

Unter Druckserver / Formulare können Sie Druckerformulare, jedoch keine vordefinierten Formulare löschen.

Ich habe noch keine Methode zum Löschen von eingebauten Formularen gefunden, da ich auch nicht all das "Rauschen" in dieser Dropdown-Liste sehen möchte.

BlakBat
quelle
1
Dies ist eine viel bessere Oberfläche als die Druckereigenschaften, um mehrere Drucker- oder Benutzerformulare zu verwalten. Vielen Dank. Schade, dass die eingebauten nicht entfernt oder zumindest aus der normalen Ansicht ausgeblendet werden können.
Matt Wilkie
0

Auf dem Druckserver selbst befinden sich die Formulare in der Registrierung:

HKLM \ System \ CurrentControlSet \ Control \ Print \ Forms

(HINWEIS: Ich habe die Formulare selbst nie von hier gelöscht, sodass ich zuerst eine Sicherungskopie des Schlüssels erstellt habe, bevor ich die Ergebnisse lösche und teste.)

Der Reiniger
quelle
Ich habe die Einträge unter diesem Schlüssel gelöscht und neu gestartet, aber sie werden weiterhin in der Liste angezeigt (Drucker und Faxgeräte> Servereigenschaften> Formulare).
Matt Wilkie
... außerdem sind im Dialogfeld "Servereigenschaften" viele Formulare aufgeführt, die unter diesem Registrierungsschlüssel nicht angezeigt werden.
Matt Wilkie