Antibiotik Geschrieben 11. November 2006 Teilen Geschrieben 11. November 2006 Hallo zusammen, ich verwende Printkey2000 um Screenshots zu erstellen. Beim Klicken auf die .exe wird das Programm gestartet und ist als Icon Taskleiste (neben der Windows Uhr) zu sehen. Beim Klick auf das Symbol oder betätigen der "Druck" Taste wird ein Screenshot erstellt. Ich möchte dieses Programm nun aus C# fernsteuern, d.h. beim Klick auf einen Button in meiner C# Anwendung will ich mit dem Printkey Programm ein Screenshot erstellen. Ne Idee wie ich es lösen kann? Danke Ciao Antibiotik Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Majestix Geschrieben 19. November 2006 Teilen Geschrieben 19. November 2006 ? was macht das program? speichert es dir das bild direkt irgendwo ? weil kannst ja auch so einfach in windows ohne solche proggys mit druck screenshots machen... aber egal zurück zum thema. hat das program irgendwelche parameter die du ihm übergeben kannst ?( mal in der hilfe von dem proggy lesen.. ) wenn ja könntest du es einfach als cmd befehl starten und den benötigten parameter mitgeben um den screenshot zumachen.. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Argbeil Geschrieben 21. November 2006 Teilen Geschrieben 21. November 2006 Hi, mach den Screenshot doch selbst, es gibt eine API Funktion die du dafür verwenden kannst, google bietet da so einiges, z.B. hier. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Antibiotik Geschrieben 21. November 2006 Autor Teilen Geschrieben 21. November 2006 hallo, wenn ich den screenshot mach, muss ich mich um die anderen sachen wie anzeigen, drucken, speichern auch selbst kümmern. Mit Hilfe der Anwendung muss ich das alles nicht machen. Ciao Antibiotik Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
maddin Geschrieben 23. November 2006 Teilen Geschrieben 23. November 2006 Also, - Screenshot machen kenne ich nur mit der WinSDK - und da ist es ziemlich trivial. - anzeige mit C# --> PictureBox - drucken mit C# --> PrintDialog und im Callback Graphics.drawImage oder so - speichern mit C# --> OpenDialog und Bitmap.save sind nicht so komplizierte Dinge, da die meisten Funktionen bereits als Steuerelement zu bekommen sind. Ist also imho sogar einfacher als Printkey 'fernzusteuern'. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Antibiotik Geschrieben 23. November 2006 Autor Teilen Geschrieben 23. November 2006 hallo, ok. Kann ich mit dem DruckDialog evtl. gleich die Form ausdrucken? Danke Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
maddin Geschrieben 23. November 2006 Teilen Geschrieben 23. November 2006 Nein, leider nicht. Aber: 1) Drucken-Dialog und Dokument hinzufügen. 2) Beim Dialog das Dokument festlegen (irgendwo in den Eigenschaften). 3) Event vom Dokument (imho PrintPage) hinzufügen. 4) Mit dem Graphics Objekt aus dem EventArgs das Bild auf der Seite platzieren. alles zusammen würde ich vieleicht 15min einplanen - hab das aber auch schon ein paar mal gemacht. Etwas komplizierter wird das ganze, wenn sich das Bild über mehrere Seiten erstrecken soll. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Trux Geschrieben 27. November 2006 Teilen Geschrieben 27. November 2006 Also wenn du die Form deiner applikation drucken möchtest kannst du das Graphics über CreateGraphics() von der Form abrufen. Wenn der druck kram von C# (hab noch nie gedruckt) ein image haben möchte (wo von ich ausgehe) kann man den Graphic mittels BitBlt kopieren: /// <summary> /// BitBlt /// </summary> [DllImport("gdi32.dll", ExactSpelling=true, SetLastError=true)] public static extern bool BitBlt(IntPtr hObject,int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hObjSource, int nXSrc, int nYSrc, TernaryRasterOperations dwRop); Graphics gr = Form.CreateGraphics(); //Graphics von der Form erstellen lassen IntPtr pGr = gr.GetHdc(); //Pointer auf den Hdc BitMap bmp = new BitMap(Form.Width,Form.Height); // Neues Bitmap erstellen => Ziel Graphics tmpGr = Graphics.FromImage(bmp); //Temp Graphics für das BitMap IntPtr pTmpGr = tmpGr.GetHdc(); //Pointer vom tmpGraphis BitBlt(pTmpGr,0,0,Form.Width,Form.Height,pGr,0,0,0x00CC0020); //Graphic inhalt kopieren gr.ReleaseHdc(pGr); //Hanleds wieder releasen tmpGr.ReleaseHdc(pTmpGr); gr.Dispose();//Disposen tmpGr.Save(); tmpGr.Dispose(); bmp ///Bitmap von der Form Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.