Forum: PC-Programmierung Bitte um Programmtest


von Pascal H. (pase-h)


Angehängte Dateien:

Lesenswert?

Hallo, da ich in letzter zeit immer mehr programmiere, möchte ich euch 
um einen kurzen Programmtest bitten.
Das Programm ist im Anhang, und der Code unten abgebildet.

Doch ein paar Fragen habe ich noch:
1. Wie kann ich das Programm in meinen eigenen Ordner installieren (z.B: 
C:\meinprog\prog1) bzw. wie kann ich den Pfad bei der Installation 
individuell ändern?
2. Wie kann ich das Programm im Startmenü in meinen eigenen Ordner 
installieren (z.B: Start:Alle Programme:Meinprog)
3. Was bzw. wie könnte ich den Code noch optimieren?

Mfg Pase-h
1
using System;
2
using System.Collections.Generic;
3
using System.ComponentModel;
4
using System.Data;
5
using System.Drawing;
6
using System.Linq;
7
using System.Text;
8
using System.Windows.Forms;
9
10
namespace Passwort
11
{
12
    public partial class Form1 : Form
13
    {
14
        public int Länge = 4;
15
        public string pw;
16
        public string Content = "1234567890";
17
        public Form1()
18
        {
19
            InitializeComponent();
20
        }
21
22
        private void Form1_Load(object sender, EventArgs e)
23
        {
24
            Länge = 4;
25
        }
26
27
        private void button1_Click(object sender, EventArgs e)
28
        {
29
30
                string ret = string.Empty;
31
                System.Text.StringBuilder SB = new System.Text.StringBuilder();
32
33
                Random rnd = new Random();
34
                for (int i = 0; i < Länge; i++)
35
                    pw = SB.Append(Content[rnd.Next(Content.Length)]).ToString();
36
                txtPW.Text = pw;
37
         
38
39
40
41
        }
42
43
        private void txtPW_Click(object sender, EventArgs e)
44
        {
45
46
        }
47
48
        private void button2_Click(object sender, EventArgs e)
49
        {
50
            System.Windows.Forms.Clipboard.SetDataObject(txtPW.Text.ToString(), true);
51
        }
52
53
        private void button3_Click(object sender, EventArgs e)
54
        {
55
            Länge = 4;
56
            button3.BackColor = System.Drawing.Color.LimeGreen;
57
            button4.BackColor = System.Drawing.Color.Red;
58
            button5.BackColor = System.Drawing.Color.Red;
59
            Content = "1234567890";
60
        }
61
62
        private void button4_Click(object sender, EventArgs e)
63
        {
64
            Länge = 6;
65
            button3.BackColor = System.Drawing.Color.Red;
66
            button4.BackColor = System.Drawing.Color.LimeGreen;
67
            button5.BackColor = System.Drawing.Color.Red;
68
            Content = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw";
69
        }
70
71
        private void button5_Click(object sender, EventArgs e)
72
        {
73
            Länge = 10;
74
            button3.BackColor = System.Drawing.Color.Red;
75
            button4.BackColor = System.Drawing.Color.Red;
76
            button5.BackColor = System.Drawing.Color.LimeGreen;
77
            Content = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw!öäüÖÄÜß\"§$%&/()=?*#-";
78
        }
79
    }
80
}

von Lvizz (Gast)


Lesenswert?


von Timmo H. (masterfx)


Lesenswert?

Ich kann dir nur wärmstens den Nullsoft Intaller empfehlen. Etwas 
Einarbeitung ist zwar erforderlich, dafür aber Kostenlos und in allen 
Belangen flexibel.

von Stefan (Gast)


Lesenswert?

So weit ich weiß kann man aus einem C# Programm ja eine 
Installationsdatei machen. Oder täusche ich mich? Dann kannst du das 
Programm im Startmenü anzeigen lassen und dort hin installieren wo du 
willst.

von Vlad T. (vlad_tepesch)


Lesenswert?

inno setup
+ inno setup tools

von Sam .. (sam1994)


Lesenswert?

Zum Optimieren:

3 Radiobutton verwenden und wenn man auf den button1 klickt, abfragen 
welcher Radiobutton gedrückt ist.

Das kann man z.b. so machen:
1
void GetChecked()
2
{
3
   for(int i = 0; i < Controls.Count; i++)
4
      if(typeof(Controls[i]) == typeof(Radiobutton))
5
         if(((RadioButton) Controls[i]).Checked)
6
            return true;
7
}
8
9
string[] Content = new string[] {"abc", "123abc", "123abc!$§"};
10
11
private void button1_Click(object sender, EventArgs e)
12
{
13
    int c = GetChecked();
14
    //->Content[c];
15
}
Ich würde für die Länge entweder eine TextBox oder eine NumericDing 
nehmen.

von Sven P. (Gast)


Lesenswert?

Samuel K. schrieb:
> Zum Optimieren:
> [...]
> [c]
> void GetChecked()
> {
>    for(int i = 0; i < Controls.Count; i++)
>       if(typeof(Controls[i]) == typeof(Radiobutton))
>          if(((RadioButton) Controls[i]).Checked)
>             return true;
> }

Lernt man das heute so?
Ist aber ein hübsches Beispiel, wie man lahme Programme flickschustert 
:-)

Keine Ahnung, wie das bei Microsoft ist, aber bei QT plaziert man alle 
Optionen in eine QButtonGroup und kann sofort über 
QButtonGroup::checkedId den gerade angewählten Knopf erfragen.

von D. I. (Gast)


Lesenswert?

Sven P. schrieb:

> Keine Ahnung, wie das bei Microsoft ist, aber bei QT plaziert man alle
> Optionen in eine QButtonGroup und kann sofort über
> QButtonGroup::checkedId den gerade angewählten Knopf erfragen.

Das ist in Swing und bei Microsoft nicht anderst.

von Arc N. (arc)


Lesenswert?

Pascal Haury schrieb:
> Hallo, da ich in letzter zeit immer mehr programmiere, möchte ich euch
> um einen kurzen Programmtest bitten.
> Das Programm ist im Anhang, und der Code unten abgebildet.
>
> Doch ein paar Fragen habe ich noch:
> 1. Wie kann ich das Programm in meinen eigenen Ordner installieren (z.B:
> C:\meinprog\prog1) bzw. wie kann ich den Pfad bei der Installation
> individuell ändern?
> 2. Wie kann ich das Programm im Startmenü in meinen eigenen Ordner
> installieren (z.B: Start:Alle Programme:Meinprog)

Wenn man die anderen genannten Möglichkeiten nicht nutzen möchte:
Im VS im Menü auf Project -> Properties -> Publish. Optionen einstellen 
und den Publish Wizard aufrufen. Raus kommt ein ClickOnce-Installer, der 
bei vorher passend gewählten Optionen auch lokal ausgeführt werden kann 
und das Programm ganz normal installiert (Startmenü, Deinstallation über 
Systemsteuerung)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.