[Druck-Symbol] Drucke aktives Fenster

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    [Druck-Symbol] Drucke aktives Fenster

    Hi LeutZ ;)

    Vorab: Habe VS 2013 Express und gestern Visual Studio (Community) 2015 (soll angeblich kostenlos sein - nach 30 Tagen eine Registrierung mit´m Microsoft-Konto) geladen/installiert.

    Habe schon solch ein Programm im Netz gefunden, lautet Hardcopy. Macht eigentlich genau das, was ich möchte.
    Was soll es tun? In jedem aktiven Fenster (auch innerhalb einer Anwendung) ein Drucker-Symbol anzeigen (links von minimieren, maximieren und schließen), wenn man diesen anklickt, soll dieses Fenster gedruckt werden.
    Vielleicht noch später, dass eine Chronik angelegt wird, was gedruckt wurde, dass man diese vielleicht erneut ausdrucken kann.

    Aber ich würde gerne mal schreiben. ;)

    Meinte Kenntnisse sind leicht eingerostet. Schon lang nichts mehr mit VB gemacht ^^.

    Die Frage ist, wie gehe ich am Besten an solch ein Projekt ran?
    Geht das überhaupt und mit was? ;)
    Grüße JackCimberly

    Deine Anfrage erledigt?
    Als erledigt markieren
    zunächstmal sollteste dich dem Registrierungs-Elend unterziehen. Sonst haste am Ende was dolles gecodet, kannst aber nach 30 Tagen nicht mehr weiter machen, evtl. auch garnet, falls das Registrierungs-Theater sich iwie verhaspelt.

    Dann - immer wichtig: Visual Studio - Empfohlene Einstellungen

    Zu deim eiglichen Problem weiß ich nix, Hardcopy kenne ich auch nicht.

    Klingt so, als wollest du deinen Fenstern einen zusätzlichen System-Menü-Punkt angedeihen lassen - keine Ahnung, wie das geht - wird vmtl. nicht einfach.

    JackCimberly schrieb:

    soll dieses Fenster gedruckt werden
    Zunächst musst Du Dir sdieses Fenster als Bildschirmkopie holen, gugst Du Graphics.CopyFromScreen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    ErfinderDesRades schrieb:

    zunächstmal sollteste dich dem Registrierungs-Elend unterziehen. Sonst haste am Ende was dolles gecodet, kannst aber nach 30 Tagen nicht mehr weiter machen, evtl. auch garnet, falls das Registrierungs-Theater sich iwie verhaspelt.

    Dann - immer wichtig: Visual Studio - Empfohlene Einstellungen



    Registrierung schon lange gemacht ;).
    Einstellungen - habe ich mir durchgesehen, aber so wie es ausschaut, muss ich da wohl keine Einstellungen mehr vornehmen.


    Das Drucker-Symbol soll bei jeder Anwendung (nicht, die ich erstelle) angezeigt werden, dann eben den Druck mit diesen veranlassen.

    RodFromGermany schrieb:

    Zunächst musst Du Dir sdieses Fenster als Bildschirmkopie holen, gugst Du Graphics.CopyFromScreen.

    Ja, das schaut gar nicht mal so schlecht aus.
    Grüße JackCimberly

    Deine Anfrage erledigt?
    Als erledigt markieren

    JackCimberly schrieb:

    VB6-Sachen
    Du musst die .NET-Deklarationen verwenden.
    Gugst Du hier.

    VB.NET-Quellcode

    1. Imports System.Runtime.InteropServices
    2. '...
    3. <DllImport("user32.dll", SetLastError:=True)> _
    4. Private Shared Function GetActiveWindow() As IntPtr
    5. End Function
    6. <DllImport("user32.dll", SetLastError:=True)> _
    7. Private Shared Function GetFocus() As IntPtr
    8. End Function
    9. <DllImport("user32.dll", SetLastError:=True)> _
    10. Private Shared Function GetForegroundWindow() As IntPtr
    11. End Function
    12. <DllImport("USER32.dll")> Public Shared Function GetTopWindow (ByVal hwnd As IntPtr) As IntPtr
    13. End Function
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke Dir.
    Gleich mal das "Plugin" installiert.

    Aber die Frage, die ich mir stelle ist, wie bewerkstellige ich das, wenn ich eine Exe ansprechen möchte?
    Möchte nur einer bestimmten Anwendung einen Button hinzufügen. Auch zu jedem geöffneten Fenster innerhalb einer Anwendung.
    Grüße JackCimberly

    Deine Anfrage erledigt?
    Als erledigt markieren

    JackCimberly schrieb:

    Auch zu jedem geöffneten Fenster innerhalb einer Anwendung.
    Mach Dier eine entsprechende Template-Klasse MyButtonForm, die diesen Button generiert und behandelt.
    Lass dann alle entsprechenden Forms von dieser Form erben:
    FormX.Designer.vb:
    aus

    VB.NET-Quellcode

    1. Partial Class Form1
    2. Inherits System.Windows.Forms.Form
    machst Du einfach

    VB.NET-Quellcode

    1. Partial Class Form1
    2. Inherits MyButtonForm

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!