| Autor |
Beitrag |
Namenlosnameless
      
Beiträge: 259
Erhaltene Danke: 6
Windows XP Home Edition, Windos Vista
C#
|
Verfasst: 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
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 { [STAThread] static void Main(string[] args) { if (args.Length > 0) { string arg = args[0].ToLower().Trim().Substring(0, 2);
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
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(0, this.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
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 19.02.10 03:43
Namenlosnameless hat folgendes geschrieben : | | 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...
Namenlosnameless hat folgendes geschrieben : | 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 
      
Beiträge: 259
Erhaltene Danke: 6
Windows XP Home Edition, Windos Vista
C#
|
Verfasst: 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
      
Beiträge: 42
Erhaltene Danke: 2
|
Verfasst: 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 
      
Beiträge: 259
Erhaltene Danke: 6
Windows XP Home Edition, Windos Vista
C#
|
Verfasst: 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
      
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
|
Verfasst: 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
      
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: Fr 19.02.10 20:29
Namenlosnameless hat folgendes geschrieben : | | 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 c#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 
      
Beiträge: 259
Erhaltene Danke: 6
Windows XP Home Edition, Windos Vista
C#
|
Verfasst: 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
      
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: 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 
      
Beiträge: 259
Erhaltene Danke: 6
Windows XP Home Edition, Windos Vista
C#
|
Verfasst: 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
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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 
      
Beiträge: 259
Erhaltene Danke: 6
Windows XP Home Edition, Windos Vista
C#
|
Verfasst: 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 
      
Beiträge: 259
Erhaltene Danke: 6
Windows XP Home Edition, Windos Vista
C#
|
Verfasst: 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>>
|
|