ERLEDIGT
JA
JA
ANTWORTEN
5
5
ZUGRIFFE
841
841
EMPFEHLEN
-
Hallo!
Vorerst möchte ich sagen, dass ich schon 2 solche Themen in diesem Forum gefunden habe, jedoch behandeln diese nicht das genau gleiche Problem und auch funktionierten deren Lösungen bei mir nicht.
Ich habe vor, ein Programm zu schreiben, das beim Klicken auf den "START"-Button alle 10 Sekunden einen Screenshot erstellt, und diese speichert. Beim Klicken auf einen zweiten "Stop"-Button soll diese Schleife unterbrochen werden.
Nun habe ich mit dem ersten Button begonnen und folgendes geschrieben:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim b As New Bitmap(1280, 800) Using g As Graphics = Graphics.FromImage(b) g.CopyFromScreen(0, 0, 0, 0, New Size(1280, 800)) End Using b.Save("C:\screenshot1.jpg", Imaging.ImageFormat.Jpeg) System.Threading.Thread.Sleep(10000) Dim a As New Bitmap(1280, 800) Using g As Graphics = Graphics.FromImage(a) g.CopyFromScreen(0, 0, 0, 0, New Size(1280, 800)) End Using a.Save("C:\screenshot2.jpg", Imaging.ImageFormat.Jpeg) End Sub End Class
Nun werden beim Klicken auf den "START"-Button zwei Screenshots erstellt, mit einer Verzögerung von 10 Sekunden.
Nun hätte ich 2 Fragen:
1. Ich krieg das mit der Schleife nicht hin. Ich hab versucht, den Namen des Bildes durch eine Variable zu ersetzen, und dieser Variable die Systemzeit zuzuweisen, jedoch bin ich entweder zu dumm, die Befehle richtig anzuschreiben oder aber es klappt einfach nicht. Außerdem müsste nicht nur der Name des Bildes bei jedem Screenshot geändert werden, sondern auch der Buchstabe (beim ersten das "b", beim zweiten das "a").
2. Wenn die Schleife dann läuft, wie kann ich diese mit einem zweiten "STOP"-Button augenblicklich beenden? Wenn bei mir dieses Programm läuft, sind für diese Dauer alle anderen Buttons komischerweise deaktiviert bzw. kann ich diese nicht anklicken.
VIELEN Dank schonmal für die Hilfe und mit freundlichen Grüßen,
Markus
-
Hallo Markus,
ich fange mal mit deinem 2. Punkt an.
Die Variante mit der Schleife ist der denkbar ungünstigste Lösungsansatz, weil du damit die ganze GUI blockierst. Besser du installierst einen Timer mit dem 10-Sekunden-Intervall, den du dann mit den Start/Stopp-Buttons startest oder anhältst.
Einen Zeitstempel kannst du dir mit Hilfe der DateTime-Struktur generieren, z.B.:
Zu dem Problem mit "a" und "b": Du brauchst Bitmap und Graphics-Object nur einmal anzulegen:Code vb:1
DateTime.Now.ToShortDateString() + DateTime.Now.ToLongTimeString()
GrußCode vb:1 2 3 4 5 6 7 8 9 10
Dim b As New Bitmap(1280, 800) Using g As Graphics = Graphics.FromImage(b) g.CopyFromScreen(0, 0, 0, 0, New Size(1280, 800)) b.Save("C:\screenshot1.jpg", Imaging.ImageFormat.Jpeg) System.Threading.Thread.Sleep(10000) g.CopyFromScreen(0, 0, 0, 0, New Size(1280, 800)) b.Save("C:\screenshot2.jpg", Imaging.ImageFormat.Jpeg) End Using
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
Vielen Dank für die Antwort!
Das mit den Buchstaben ("b" und "a") hab ich nun ausgebessert.
Aber ich verstehe nicht ganz, wo ich diesen Code einbauen soll, damit der Bildname durch die Systemzeit ersetzt wird:
Code :1
DateTime.Now.ToShortDateString() + DateTime.Now.ToLongTimeString()
Das mit dem Timer hab ich nun auch geschafft, vielen Dank!
MfGGeändert von Afritus (19.11.09 um 17:30 Uhr)
-
zum Beispiel so:
GrußCode vb:1
Save("C:\screenshot_" + DateTime.Now.ToShortDateString() + DateTime.Now.ToLongTimeString() + ".jpg", ...
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
Ok, das geht bei mir nicht.
Hab aber jetzt herumprobiert und das ganze so gelöst:
Code :1
Save("C:\Umbrella_Data\screenshot" & Format$(Now, "dd-mm-yy hh-mm-ss") & ".jpg", Imaging.ImageFormat.Jpeg)
Vielen Dank für deine Hilfe, hätte ich alles ohne dich nicht geschafft
MfG
AfritusGeändert von Afritus (19.11.09 um 21:01 Uhr)
-
"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
Ähnliche Themen
-
SWT Screenshots erstellen
Von Thomas Darimont im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 01.09.11, 13:48 -
Beenden Button erstellen
Von hotze_klotz im Forum C/C++Antworten: 4Letzter Beitrag: 11.09.07, 13:42 -
for Schleife beenden
Von campari im Forum PHPAntworten: 14Letzter Beitrag: 13.12.06, 17:10 -
screenshots erstellen
Von Tosso im Forum VisualStudio & MFCAntworten: 3Letzter Beitrag: 06.07.04, 10:04 -
Von DVD Filmen screenshots erstellen
Von Andrew im Forum Videoschnitt, Videotechnik & -produktionAntworten: 6Letzter Beitrag: 15.12.02, 17:49





Zitieren


Login





