[API] Tastatur simulieren

sa322

Stammgast
Also ich will ein Programm das mir beim öfnnen eine Screenshot macht und ihn auf dem Desktop speichert. Es muss ohne irgendwelche Tastendruck oder Klicks gehn. Nur öffnen, Screenshot und gleich wieder Schliessen.

Pagefault hat mir den Tipp gegeben (Hier in diesem Beitrag) das ich mit AutoIt Tasten simulieren kann aber wie?

Falls es sogar möglich ist das sich das Programm öffnet, Screenshot macht, ihn per E-mail verschikt und sich wieder schliesst?

Das Programm sollte wenn möglich unsichtbar oder im Hintergrund ohne Befehle also das oben genannte beim öffnen ausführen.

Sollte in XP und Vista funsen.

THX
 

romansvillage

Stammgast
Und das willst du selber Programmieren?
Auf jedenfall lässt die Wahl des Forums für deinen Beitrag darauf schliessen.

In welcher Programmiersprache möchtest du das denn machen und wo sind deine Probleme?
 

Officer

Stammgast
Hallo sa322

Was ist der Hintergrund Deines Wunsches? Ich frage einmal mehr, da es vielleicht andere Wege gibt. Was für ein Programm soll es Printscreenen?
 

Gaby Salvisberg

Super-Moderator
Officer, diese Frage hätte ich wohl auch gleich gestellt :)

Denn wenn es z.B. darum geht, in einem Game bei der letzten Schlacht gegen den Endgegner alle paar Sekunden einen Screenshot oder gar ein Filmli zu machen, gibt es bestimmt eigens dafür geschriebene Tools.

Gaby
 

sa322

Stammgast
Nein, ich will eine Systemüberprüfung von einem anderen PC. Hier etwas genauer:

1. Doppelklick auf Bat, öffnet Avast. --> evtl. sogar mit Autostart beim Hochfahren des PC's.
2. Pause für 1h.
3. Dann soll es einen Screenshot vom Report der am schluss automatisch erscheint machen.
4. Screenshot von Desktop oder wo auch immer an mich per e-mail senden.
5. Fertig.

Die Batch sollte unsichtbar im Hintergrund laufen.

Es fehlt nur noch ein Programm welches den Screenshot gleich beim öffnen macht.

Programmiersprache ist egal da ich sowieso keine Ahnung davon habe und darum frag ich ja. Ich hoffe ihr könnt mihr helfen.

Falls ihr Sites kennt wo es Tutorials gibt, schreibt sie bitte auch auf

THX

P.S: Wie man Batch macht / Programmiert weiss ich.
 

sa322

Stammgast
Keine Ahnung warum ist das so schwer?

Und vorallem wenn ich so ein Prog habe werde ich es auch Vielfältig nutzen.
 

romansvillage

Stammgast
Also ich hab grad bei meinem Kaspersky geschaut.

Da kann man zum Beispiel eine E-Mail Adresse konfigurieren und für verschiedene Ereignisse Benachrichtigungen schicken lassen.
Unter anderem ist da der Fund eines schädlichen Objektes dabei.
 

sa322

Stammgast
Also ich hab grad bei meinem Kaspersky geschaut.

Da kann man zum Beispiel eine E-Mail Adresse konfigurieren und für verschiedene Ereignisse Benachrichtigungen schicken lassen.
Unter anderem ist da der Fund eines schädlichen Objektes dabei.

Ja schön aber hab noch x-andere Verwendungen für dieses Programm also könnt ihr mir da weiterhelfen?
 

pagefault

Inaktiv
Ja schön aber hab noch x-andere Verwendungen für dieses Programm also könnt ihr mir da weiterhelfen?
Üblicherweise helfe ich gerne hier im Forum.

Aber gerade diese nicht näher bezeichneten x-anderen Verwendungen sind es, die sogar mein ausgeprägtes "Helfer-Syndrom" hier zurück treten lassen ...

Ich mache mir etwas Sorgen, dass du damit jemanden ausspionieren willst - da muss ich dir meine weitere (Bei)Hilfe leider versagen.
 

sa322

Stammgast
Klingt spannend aber eigentlich auch nicht das richtige. Ist das mit dem Screenshot wirklich nicht möglich?
 

romansvillage

Stammgast
Natürlich ist das möglich. Aber doof.
Wer sagt denn, dass ein Virenscan nach einer Stunde wirklich beendet ist? Wer sagt, dass ein Report eines Programmes in das angezeigt Fenster passt, ohne das man scrollen muss?
 

sa322

Stammgast
Natürlich ist das möglich. Aber doof.
Wer sagt denn, dass ein Virenscan nach einer Stunde wirklich beendet ist? Wer sagt, dass ein Report eines Programmes in das angezeigt Fenster passt, ohne das man scrollen muss?

Hab erfahrung und kann ja auch 2 oder 3 h nehmen wenn ich will oder? Und der Report brauch ich nur die obersten paar Zeilen mit der Zusammenfassung.

Habe doch noch etwas spannendes gefunden: Nähmlich http://msdn.microsoft.com/de-de/library/8c6yea83(en-us).aspx hier, ist zwar Englisch, habe es aber dann mit der Google Toolbar übersetzt habs zwar nicht ganz gechekt aber hoffentlich könnt ihr helfen.

Kann man eigentlich mit PrntScreen den Screenshot direkt speichern anstatt in die Zwischenablage?

THX
 

romansvillage

Stammgast
Hab erfahrung und kann ja auch 2 oder 3 h nehmen wenn ich will oder? Und der Report brauch ich nur die obersten paar Zeilen mit der Zusammenfassung.
Na wenn du meinst.

Habe doch noch etwas spannendes gefunden: Nähmlich http://msdn.microsoft.com/de-de/library/8c6yea83(en-us).aspx hier, ist zwar Englisch, habe es aber dann mit der Google Toolbar übersetzt habs zwar nicht ganz gechekt aber hoffentlich könnt ihr helfen.
Da ist ein Beispielscript (vbs und jscript) drin, welches eine Applikation startet, und dann Tastencodes an diese Applikation sendet.

Kann man eigentlich mit PrntScreen den Screenshot direkt speichern anstatt in die Zwischenablage?
Nein

Du meintest vorhin, dass du wüsstest wie man Programmiert.
Ich hab mal was in C# gebastelt.
Code:
using System;
using System.Drawing;
using System.IO;
using System.Net;
using System.Net.Mail;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;

namespace SendScreenshot
{
    class Program
    {
        static void Main(string[] args)
        {
            // Screenshot machen
            Image screenshot = ScreenshotWholeDesktop();
            // Screenshot speichern
            screenshot.Save("screenshot.jpg");
            // Screenshot per E-Mail versenden
            SendMail();
        }

        /// <summary>
        /// Erzeugt ein Screenshot vom gesamten Desktop.
        /// </summary>
        /// <returns>Bitmap</returns>
        public static Bitmap ScreenshotWholeDesktop()
        {
            int screenWidth = SystemInformation.VirtualScreen.Width;
            int screenHeight = SystemInformation.VirtualScreen.Height;
            Bitmap bmp = new Bitmap(screenWidth, screenHeight);
            Graphics g = Graphics.FromImage(bmp);
            g.CopyFromScreen(0, 0, 0, 0, new Size(screenWidth, screenHeight));
            g.Dispose();
            return bmp;
        }

        /// <summary>
        /// E-Mail versenden
        /// </summary>
        public static void SendMail()
        {
            MailMessage message = new MailMessage(
                // Absender
                "sender@somewhere.com",
                // Empfänger
                "recipient@somewhere.com",
                // Betreff
                "Screenshot",
                // Nachrichtentext
                "Screenshot");
            // Nachricht als UTF-8 schicken
            message.BodyEncoding = Encoding.UTF8;

            // Anhang hinzufügen
            string file = "screenshot.jpg";
            Attachment attachment = new Attachment(file, "image/jpeg");
            message.Attachments.Add(attachment);

            // SMTP-Server
            SmtpClient smtp = new SmtpClient("mail.provider.com");
            smtp.Credentials = new NetworkCredential("benutzername", "passwort");

            // Nachricht senden
            smtp.Send(message);
        }
    }
}
 

zilti

Stammgast
Ich hab Screenshots auch schon mit Java realisiert, ist ziemlich simpel. Falls du Java favorisierst/verwendest. Einfach mal etwas google. Und mit der Mail API hast du ein mächtiges Werkzeug zum Senden von Mails.
Mit Java kannst du übrigens über die Robot-Klasse auch den ganzen Bericht anzeigen lassen und dann Screenshotten. Oder gleich den Bericht per Mail-API als Anhang senden. u.s.w....
 

romansvillage

Stammgast
Mit Java kannst du übrigens über die Robot-Klasse auch den ganzen Bericht anzeigen lassen und dann Screenshotten.
Du meinst durch den Bericht durchscrollen (mit mouseWheel) und ständig Screenshots machen?
Da muss man dann aber sicherstellen, dass auch wirklich das Fenster mit dem Bericht der AV-Software den Fokus hat.

Irgendwie ist das mit dem Screenshot die falsche Methode für das Vorhaben.

Wie er das beschrieben hat hört es sich nämlich an, dass er eine Art VNC machen möchte.

Aus meiner sicht wäre es sinnvoller dann auch VNC zu benützen, oder die Benachrichtigungsfuntionen der AV-Programme.
 

sa322

Stammgast
Na wenn du meinst.


Da ist ein Beispielscript (vbs und jscript) drin, welches eine Applikation startet, und dann Tastencodes an diese Applikation sendet.


Nein

Du meintest vorhin, dass du wüsstest wie man Programmiert.
Ich hab mal was in C# gebastelt.
Code:
using System;
using System.Drawing;
using System.IO;
using System.Net;
using System.Net.Mail;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;

namespace SendScreenshot
{
    class Program
    {
        static void Main(string[] args)
        {
            // Screenshot machen
            Image screenshot = ScreenshotWholeDesktop();
            // Screenshot speichern
            screenshot.Save("screenshot.jpg");
            // Screenshot per E-Mail versenden
            SendMail();
        }

        /// <summary>
        /// Erzeugt ein Screenshot vom gesamten Desktop.
        /// </summary>
        /// <returns>Bitmap</returns>
        public static Bitmap ScreenshotWholeDesktop()
        {
            int screenWidth = SystemInformation.VirtualScreen.Width;
            int screenHeight = SystemInformation.VirtualScreen.Height;
            Bitmap bmp = new Bitmap(screenWidth, screenHeight);
            Graphics g = Graphics.FromImage(bmp);
            g.CopyFromScreen(0, 0, 0, 0, new Size(screenWidth, screenHeight));
            g.Dispose();
            return bmp;
        }

        /// <summary>
        /// E-Mail versenden
        /// </summary>
        public static void SendMail()
        {
            MailMessage message = new MailMessage(
                // Absender
                "sender@somewhere.com",
                // Empfänger
                "recipient@somewhere.com",
                // Betreff
                "Screenshot",
                // Nachrichtentext
                "Screenshot");
            // Nachricht als UTF-8 schicken
            message.BodyEncoding = Encoding.UTF8;

            // Anhang hinzufügen
            string file = "screenshot.jpg";
            Attachment attachment = new Attachment(file, "image/jpeg");
            message.Attachments.Add(attachment);

            // SMTP-Server
            SmtpClient smtp = new SmtpClient("mail.provider.com");
            smtp.Credentials = new NetworkCredential("benutzername", "passwort");

            // Nachricht senden
            smtp.Send(message);
        }
    }
}
Cool, hasst du mir auch ein Programm um es zu Programmieren oder was auch immer? Kenne mich 0% aus.
 
Oben