Hallo,
ich möchte gerne von meinem Programm aus den Dialog für die Druckereinstellungen öffnen. Dieser ist zu finden unter Systemsteuerung/Drucker und Faxgeräte/[Druckername]/Eigenschaften/Druckereinstellungen.
Der Druckername ist variabel.
Weiß jemand wie ich den Dialog öffnen kann?
Danke schon Mal!
Gruß
Cyn
Leider weiß ich nicht mal einen Lösungsansatz.
Denke dass es evtl. über die Registry gehen würde...
Weiß keiner einen Rat? Wäre wirklich wichtig 🤔
Ich habe ein Beispiel erstellt. Der Code sieht ungefähr so aus:
private void btnInvoke_Click(object sender, EventArgs e)
{
PrinterSettings psSettings = new PrinterSettings();
psSettings.PrinterName = cbPrinters.SelectedItem.ToString();
IntPtr ipDevMode = psSettings.GetHdevmode(psSettings.DefaultPageSettings);
IntPtr pDevMode = GlobalLock(ipDevMode);
int nSize = DocumentProperties(this.Handle, IntPtr.Zero, psSettings.PrinterName, pDevMode, ref pDevMode, 0);
IntPtr ipDevModeData = Marshal.AllocHGlobal(nSize);
DocumentProperties(this.Handle, IntPtr.Zero, psSettings.PrinterName, ipDevModeData, ref pDevMode, 14);
GlobalUnlock(ipDevMode);
psSettings.SetHdevmode(ipDevModeData);
psSettings.DefaultPageSettings.SetHdevmode(ipDevModeData);
GlobalFree(ipDevMode);
Marshal.FreeHGlobal(ipDevModeData);
}
Das Project kannst du nach folgenden Link herunterladen
http://rongchaua.net/Web/Source/Printer%20Propeties%20Dialog.zip
Vielen, vielen Dank!
Kannst du evtl den Code noch bisl Kommentieren? Habe gestern abend alles mal durchgegoogelt was ich nicht verstanden habe.
Wie war deine Vorgehensweise, um die Funktion zu ermöglichen? Ich wusste garnicht wie ich das anpacken muss...
Danke noch Mal!
Hallo cyntonix,
gibt man eine Beschreibung, wollen die Leute Code, gibt man Code, wollen die Leute eine Beschreibung.
Kannst du evtl den Code noch bisl Kommentieren?
Auch wenn es nur eine Frage ist, gefällt mir die Haltung nicht. Du hast doch selbst geschrieben, dass du alles mal durchgegoogelt hast, was du nicht verstanden hast. Dann schreib du doch bitte die Kommentare. Dann muss rongchaua - der sich ja eh schon die Mühe für dich gemacht hat -, wenn alles stimmt, nur schreiben, dass es ok ist, statt sich selber die Finger wund zu tippen.
herbivore
@herbivore: Muss dir Recht geben...
Meine Frage war ziemlich ungenau ausgedrückt, was für keinen Hilfreich ist.
Wie geht man vor, wenn man in Windows einen bestimmten Dialog aufrufen möchte? Wie sucht man die .dll Dateien (Google konnte mir nicht weiterhelfen).
Gibt es evtl. einen Eventhandler, der mir anzeigt was gerade ausgeführt wurde und mit welchen Parametern?
Danke