Autor Beitrag
Namenlosnameless
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 259
Erhaltene Danke: 6

Windows XP Home Edition, Windos Vista
C#
BeitragVerfasst: Fr 19.02.10 00:15 
Hallo!

Ich hab mir eine C#-Buch gekauft und dabei auf ein für mich sehr interessantes Kapitel gestoßen- die erstellung von Bildschirmschonern.
Das Programm hab ich... naja fast
Momentan fährt ein Text:"ist da jemand" durchs Bild. Jetzt weiß ich aber das man bei, von Windows, vorgefertigten Schonern den Text der Herumsaust bzw. die Farbe des Textes ändern kann.

Wie realisiere ich das für mein Projekt!


hier ist einmal die Programm.cs

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace MeinBildschirmschoner
{
    static class Program
    {
        /// <summary>
        /// Der Haupteinstiegspunkt für die Anwendung.
        /// </summary>
        [STAThread]
        
        static void Main(string[] args)
        {
            if (args.Length > 0)
            {
                string arg = args[0].ToLower().Trim().Substring(02);

                switch (arg)
                {
                    case "/c": (*Hier müsste das stehen, was ich suche*) break;

                    case "/p"break;

                    case "/s": BildschirmschonerStarten();
                               break;

                    default: MessageBox.Show("Ungültiges Argument");
                        break;

                }
            }
            else
            {
                BildschirmschonerStarten();
            }
        }
        static void BildschirmschonerStarten()
        {
            Form1 bildschirmschoner = new Form1();
            Application.Run(bildschirmschoner);
        }

    }
}


und die Form1.cs

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace MeinBildschirmschoner
{
    public partial class Form1 : Form
    {
        Timer th = new Timer();
        private string text;
        private Point p;
        int y_verschieben,x_verschieben;
        Random rd = new Random();
        

        public Form1()
        {
            
            InitializeComponent();

        Cursor.Hide();
        text="Hallo, ist da jemand?";

        p=new Point(0,100);
        p.Y = rd.Next(0this.Size.Height);
        x_verschieben = rd.Next(7,7);
        y_verschieben = rd.Next(-5, +5);
            
        th.Interval = 2;
        th.Tick += new EventHandler(Animieren);
        th.Start();
        }

        void Animieren(object sender, EventArgs e)
        {
            p.X += x_verschieben;
            p.Y += y_verschieben;
            

            if ((p.X > this.Width-300)||(p.X<6))
            {
                x_verschieben = x_verschieben * -1;
            }
            if ((p.Y > this.Height - 30) || (p.Y < 6))
            {
                y_verschieben = y_verschieben * -1;
            }

            
            Refresh();
        }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.DrawString(text, new Font("Arial"24), Brushes.Blue, p.X, p.Y);
        }

        

        

        

    }
}


also ich denke das in der Programm.cs unter Argument: "/c" der Code reingehört den ich brauche! Bin mir aber nicht sicher bzw weiß ich nicht ob in der Form1.cs was geändert gehört( mal abgesehen das noch eine Variable für die Farbe fehlt)! Darum hab ich mal beide hierreingestellt.
Einloggen, um Attachments anzusehen!
_________________
1:<<Life sucks!!>> 2:<< Well okay>> 1: <<Just Yours>> 2:<<Ohmph>>
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 19.02.10 03:43 
user profile iconNamenlosnameless hat folgendes geschrieben Zum zitierten Posting springen:
Momentan fährt ein Text:"ist da jemand" durchs Bild. Jetzt weiß ich aber das man bei, von Windows, vorgefertigten Schonern den Text der Herumsaust bzw. die Farbe des Textes ändern kann.
Das ist jetzt aber nicht dein Ernst, oder?!?
Den Quelltext hast du dir doch nicht eine Sekunde angeschaut... :roll:

user profile iconNamenlosnameless hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
        Cursor.Hide();
        text="Hallo, ist da jemand?";

        // [...]

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.DrawString(text, new Font("Arial"24), Brushes.Blue, p.X, p.Y);
        }
Namenlosnameless Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 259
Erhaltene Danke: 6

Windows XP Home Edition, Windos Vista
C#
BeitragVerfasst: Fr 19.02.10 17:40 
Okayyy da hab ich mich wohl falsch ausgedrückt.
Ich bin zwar ein Beginner aber nicht ganz so schlecht wie das anscheinend rüber gekommen ist.
Falls ich mich undeutlich ausgedrückt habe dann tut es mir leid.

aber wenn man bei Windows einen Bildschirmschoer mit Text einrichtet, öffnet sich ein Button, der zu einem FontDialog führt, und eine textbox in der man den Text ändern kann.
Dies will ich auch für meinen Schoner machen können.

P.S. Der Code ist, bis auf die Programm.cs, die ich aus dem Buch habe, komplett selber geschrieben und nirgendwo herauskopiert!

mfg Christoph

_________________
1:<<Life sucks!!>> 2:<< Well okay>> 1: <<Just Yours>> 2:<<Ohmph>>
c#surfer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 42
Erhaltene Danke: 2



BeitragVerfasst: Fr 19.02.10 17:53 
bzgl. Font auswählen hilft dir der FontDialog. Bei der Text-geschichte ist mir nicht klar, wo du nicht weiterkommst. Die Vorgehensweise hast du ja fast selber schon beschrieben: Erstelle eine Form mit einem Button, der den FontDialog aufruft und einer TextBox wo du den gewüsnchten Text einträgst. Die beiden Infos übeträgst du dann an die andere Form.
Namenlosnameless Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 259
Erhaltene Danke: 6

Windows XP Home Edition, Windos Vista
C#
BeitragVerfasst: Fr 19.02.10 17:56 
Das ganze ist eine .scr Datei und wird im Auswahlbrowser für Bildschirmschoner angezeigt. Dort wo man auch die Windows-Schoner einstellen kann. Und genau dort will ich auch meine Einstellungen treffen können.

_________________
1:<<Life sucks!!>> 2:<< Well okay>> 1: <<Just Yours>> 2:<<Ohmph>>
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Fr 19.02.10 19:01 
Wenn ich mich richtig erinnere, sind scr-Dateien "normale" EXEs oder (wahrscheinlicher) COMs. Eine NET-Anwendung heißt zwar EXE, ist aber intern etwas völlig anderes. Ich vermute deshalb, dass du mit C# keine scr-Datei erzeugen kannst, also keinen eigenen Bildschirmschoner programmieren kannst. Jürgen
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 19.02.10 20:29 
user profile iconNamenlosnameless hat folgendes geschrieben Zum zitierten Posting springen:
Das ganze ist eine .scr Datei und wird im Auswahlbrowser für Bildschirmschoner angezeigt. Dort wo man auch die Windows-Schoner einstellen kann. Und genau dort will ich auch meine Einstellungen treffen können.
Die Grundidee von user profile iconc#surfer ist trotzdem richtig. Wenn der Parameter "\c:..." kommt, öffnest du eine Config-Form, beim Schließen speicherst du die Einstellungen und lädst sie wieder, wenn der eigentliche Bildschirmschoner geöffnet wird.

@Jürgen: Es ist eine umbenannte normale Exe, die über Parameter gestartet wird, nichts weiter ;) .

_________________
>λ=
Namenlosnameless Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 259
Erhaltene Danke: 6

Windows XP Home Edition, Windos Vista
C#
BeitragVerfasst: Fr 19.02.10 21:23 
Zitat:
Wenn der Parameter "\c:..." kommt, öffnest du eine Config-Form, beim Schließen speicherst du die Einstellungen und lädst sie wieder


und diese Config-Form soll der Windows-Bildschirmschoner-Dialog sein...

Mit einer eigens ertellten Form ist es auch machbar aber dann i.wie kein richtiger Schoner

_________________
1:<<Life sucks!!>> 2:<< Well okay>> 1: <<Just Yours>> 2:<<Ohmph>>
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 19.02.10 21:32 
Es gibt nicht den Config-Dialog, wie kommst du darauf? Schon die von den Windows-Bildschirmschonern sehen doch relativ unterschiedlich aus.

_________________
>λ=
Namenlosnameless Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 259
Erhaltene Danke: 6

Windows XP Home Edition, Windos Vista
C#
BeitragVerfasst: Fr 19.02.10 23:39 
Stimmt...

Das heißt für mich: Ich brauche eine Config-Form... ,die ich iwie über den Button "Einstellungen" beim Bildschirmschonermenü, öffne!
Das mache ich wie? Also ich meine jz das mit dem Button!
Die Form ist in 5mins erledigt!

mvg Christoph

_________________
1:<<Life sucks!!>> 2:<< Well okay>> 1: <<Just Yours>> 2:<<Ohmph>>
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 20.02.10 00:07 
Du schaust, ob du den Parameter /c übergeben bekommen hast.

Nebenbei gibt es auch noch Parameter für die kleine Vorschau usw., da bekommt man dann das Handle der Leinwand dafür übergeben und muss nur darauf zeichnen.
Namenlosnameless Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 259
Erhaltene Danke: 6

Windows XP Home Edition, Windos Vista
C#
BeitragVerfasst: Sa 20.02.10 00:20 
OK! klingt logisch^^ In so eine Richtung habe ich auch gedacht...

Ich hab nur nicht ganz so viel Ahnung wie ich das mach!

Ich google mal

_________________
1:<<Life sucks!!>> 2:<< Well okay>> 1: <<Just Yours>> 2:<<Ohmph>>
Namenlosnameless Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 259
Erhaltene Danke: 6

Windows XP Home Edition, Windos Vista
C#
BeitragVerfasst: Sa 20.02.10 12:21 
Habs geschafft...! Google war nicht notwendig!

Meine Güte war ich dumm das nicht sofort zu überreißen! Klar das der Button das Argument "c" zurückgibt und ich von dort aus meine Form starten muss!

_________________
1:<<Life sucks!!>> 2:<< Well okay>> 1: <<Just Yours>> 2:<<Ohmph>>