Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von darklight
Thema: Grafische Liste mit Bild und Schrift für Chatprogramm
Am im Forum: Rund um die Programmierung

Hi,

ich suche, wie in der Überschrift schon beschrieben ist, ein Grafisches Element für Windows Forms. Da ihr euch unter der Beschreibung wahrscheinlich nichts vorstellen könnt, habe ich ein Beispiel davon als Dateianhang hinzugefügt. Dieses Bild ist von iMessage auf einem OS X System.
Kennt ihr solche ähnlichen Grafischen Elemente auch für Windows ? Ich habe leider schon vergeblich bei Google gesucht, doch nichts gefunden.

Ich danke euch für eure Aufmerksamkeit.

Thema: UML- Richtung der Komposition, wenn die Existenz eines Objekts die eines anderen erzwingen soll
Am im Forum: Rund um die Programmierung

Ich würde mal behaupten, das wenn du schon sagst, "ohne den Kunden kann es kein Konto geben", dass die Komposition an die Klasse Kunde kommt.

Also so ungefähr: Kunde <> ------ Konto (stell es dir schwarz vor :D)

Habe dir noch ein Bild meiner Formelsammlung welche dies bestätigt: siehe Anhang.

Thema: PictureBox Invoke wird nicht ausgeführt
Am im Forum: GUI: Windows-Forms

Leider bringt auch dies nicht den gewünschten Erfolg.
Er bleibt genauso wie bei meiner vorherigen Lösungen an der gleichen Stelle hängen.

Thema: PictureBox Invoke wird nicht ausgeführt
Am im Forum: GUI: Windows-Forms

Guten Tag,

ich muss über einen anderen Thread ein Bild an eine PictureBox zuweisen.
Dies sollte über diesen Code realisiert werden:

private void AddPictureToPictureBox(Bitmap pic)
        {
            if (this.pictureBox1.InvokeRequired)
                this.pictureBox1.Invoke(new MethodInvoker(delegate { AddPictureToPictureBox(pic); }));
            else this.pictureBox1.Image = pic;
        }

Ich debugge in diesem Codeabschnitt die Zeile mit der If-Abfrage und dem else Teil.
Es sieht aber so aus: Es wird bemerkt das ein Invoke benötigt wird, der Debugger geht dann in die nächste Zeile, führt den Invoke aus, aber gelangt nie in den else Teil. In diesen sollte er ja nach einem erfolgreichen Invoke landen.

Ich hoffe ihr könnt mir meinen Fehler aufzeigen und mir helfen.

Mit freundlichen Grüßen
Darklight

Thema: [erledigt] Codeteil zum Speichern von Zertifikaten funktioniert nur in Visual Studio
Am im Forum: Rund um die Programmierung

Wunderbar, dankeschön :)
Das Zertifikat wird nun ohne Probleme erstellt.

Thema: [erledigt] Codeteil zum Speichern von Zertifikaten funktioniert nur in Visual Studio
Am im Forum: Rund um die Programmierung

Hm, den umweg über die cmd.exe gehe ich weil ich es noch nie anderst probiert habe :)
Ich werde mal versuchen deine angesprochene Methode zu verwenden.

Nichtsdestotrotz, wäre dies hier so richtig ?


public void MakeServerCertificate()
{
   AddLogMessage("Zertifikat nicht gefunden");
   File.WriteAllBytes("makecert.exe", WhoChat.Properties.Resources.makecert);
   ProcessStartInfo pInfo = new ProcessStartInfo();
   pInfo.FileName = "cmd.exe";
   pInfo.Arguments = "/c makecert -sr LocalMachine -ss root -r -n \"CN=WhoChat\" -sky exchange -sk 123456";
   pInfo.WorkingDirectory = @"C:\Windows\System32\";
   Process.Start(pInfo);
   AddLogMessage("Zertifikat neu erstellt");
   File.Delete("makecert.exe");
}

Thema: [erledigt] Codeteil zum Speichern von Zertifikaten funktioniert nur in Visual Studio
Am im Forum: Rund um die Programmierung

Guten Tag,

ich steh momentan vor einem eher seltsamen Problem. Ich versuche in den X509-Store eines PCs ein selbst signiertes Zertifikat für eine SSL-Verbindung einzuschleusen. Für diesen Vorgang werden Adminrechte benötigt. Aus diesem Grund prüfen ich in meinem Programm ob es mit Adminrechten ausgeführt wurde. Wenn nicht startet es erneut mit der Bitte nach Adminrechten, versucht dann das Zertifikat zu erstellen und es zu "installieren".

Wenn ich das Programm nun normal starte sagt es mir es benötige Adminrechte und es startet sich dann neu. Sobald ich ihm Adminrechte gewähren erscheint die Oberfläche, ein Command-Fenster erscheint (der Befehl für die Zertifikatserstellung wird ausgeführt) und schließt sich danach. Ich muss aber feststellen, das das Zertifikat nicht in den Store geschrieben wurde.

Wenn ich aber Visual Studio 2010 mit Adminrechten starte und dann mein Programm ausführe wird das Zertifikat ohne meckern erstellt.

Ich weiß leider nicht wo das Problem liegt. Vielleicht hat einer von euch schonmal mit einem ähnlichen Problem zu kämpfen gehabt. Ich hoffe ihr könnt mir helfen.

Hier noch mein Codeteil:



if (!this.serverData.ExistsServerCertificate())
{
   if (!IsAdmin())
   {
      System.Windows.Forms.MessageBox.Show("Für den weiteren Programmablauf sind Adminrechte notwendig.\r\nDiese Adminrechte werden einmalig für die Erstellung des SSL-Zertifikates benötigt. Nach der Zertifikatserstellung kann das Programm ohne Adminrechte betrieben werden.\r\n\r\nDas Programm startet sich nun mit Adminrechten neu.", "Fehler: ");
      RestartElevated();
   }
   else this.serverData.MakeServerCertificate();
}

public bool ExistsServerCertificate()
{
   X509Store store = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
   store.Open(OpenFlags.ReadOnly);
   var certificates = store.Certificates.Find(X509FindType.FindBySubjectDistinguishedName, "CN=WhoChat", false);
   store.Close();
   if (certificates.Count == 0) return false;
   else return true;
}

public void MakeServerCertificate()
{
   AddLogMessage("Zertifikat nicht gefunden");
   File.WriteAllBytes("makecert.exe", WhoChat.Properties.Resources.makecert);
   Process.Start("cmd.exe", "/c makecert -sr LocalMachine -ss root -r -n \"CN=WhoChat\" -sky exchange -sk 123456");
   AddLogMessage("Zertifikat neu erstellt");
   File.Delete("makecert.exe");
}

private void RestartElevated()
{
   ProcessStartInfo startInfo = new ProcessStartInfo();
   startInfo.UseShellExecute = true;
   startInfo.WorkingDirectory = Environment.CurrentDirectory;
   startInfo.FileName = System.Windows.Forms.Application.ExecutablePath;
   startInfo.Verb = "runas";
   try
   {
      Process p = Process.Start(startInfo);
   }
   catch (System.ComponentModel.Win32Exception ex)
   {
      this.serverData.AddLogMessage(ex.ToString());
      return;
   }
   Environment.Exit(2);
}

Thema: Einem TreeNode kein Image zuweisen
Am im Forum: GUI: Windows-Forms

Hier zum Beispiel: Using treenodes with and without images in a TreeView

//edit: Bin mir zwar nicht sicher aber mit TreeViewadv könnte es auch gehen.

Thema: Einem TreeNode kein Image zuweisen
Am im Forum: GUI: Windows-Forms

Danke für eure Hilfe.
Habe auch schon eine TreeView gefunden welche diese Funktion aufweist.

Danke.

Thema: Einem TreeNode kein Image zuweisen
Am im Forum: GUI: Windows-Forms

Anscheinend gibt es wirklich keine andere Möglichkeit.
Danke eich 2 für die Hilfe.

Thema: Einem TreeNode kein Image zuweisen
Am im Forum: GUI: Windows-Forms

Leider nein. Er nimmt dann automatisch den 0-ten Index.

Thema: Einem TreeNode kein Image zuweisen
Am im Forum: GUI: Windows-Forms

Guten Tag,

ich bin gerade dabei ein TreeView mit Symbolen auszustatten. Nun möchte ich aber das bei bestimmten TreeNodes kein Symbol angezeigt wird. Die einzigste Methode die ich gefunden habe war ein leeres Bitmap zu erstellen und darauf zu verweisen, dennoch wird der Abstand zwischen TreeNode und +, bzw. - angezeigt, so als ob ein Bild da wäre.
Ist es möglich diesen Abstand zu entfernen ?

Danke für eure Hilfe.

PS: Als Beispiel habe ich ein Bild der momentanen Darstellung angehängt.

Thema: Kein Nachrichtenempfang aufgrund von Warten auf Clients
Am im Forum: Netzwerktechnologien

Merkwürdig, denn ich habe den Namen eigentlich kopiert und eingefügt :D
Schuld daran war die Autokorrektur :)
Tut mir leid.

Grüße
Darklight

Thema: Kein Nachrichtenempfang aufgrund von Warten auf Clients
Am im Forum: Netzwerktechnologien

Wie konnte ich nur so doof sein und diesen Fehler nicht entdecken 8o
Nun funktioniert alles problemlos.

Ich danke dir Darth Maim.

Thema: Kein Nachrichtenempfang aufgrund von Warten auf Clients
Am im Forum: Netzwerktechnologien

Guten Abend,

ich hoffe ihr könnt mir helfen. Ich möchte ein System schreiben welches über TCP-Verbindungen Nachrichten versenden kann. Ich habe dafür einen Server über den die Nachrichten dann an die Clients verschickt werden sollen. Das Problem momentan ist aber das an den Server keine Nachrichten verschickt werden. Ich denke das Problem liegt daran, das der Server, sobald er bemerkt das sich ein Client verbinden will, diese Verbindung akzeptiert und dann sofort wieder auf eine neue Verbindung wartet. Ich muss aber dazu sagen, dass das Warten auf Nachrichten des Clients auf einem anderen Thread ausgeführt wird.

Ich hoffe ihr könnt mir bei meinem Problem helfen. Ich würde mich über eure Hilfe freuen. Danke schon mal im voraus.

Code:


using System;
using System.Threading;
using System.IO;
using System.Net;
using System.Net.Sockets;

namespace Messages_Server
{
    class Client
    {
        public string name;
        public TcpClient client;
        public BinaryReader reader;
        public BinaryWriter writer;
    }

    class Program
    {
        static Client[] person = new Client[5];
        static int index = 0;
        
        static void Main(string[] args)
        {
            
            TcpListener listener = new TcpListener(IPAddress.Parse("127.0.0.1"), 8000);
            listener.Start();
            while (true)
            {
                Console.WriteLine("Warte auf eingehende Verbindungen ...");
                try
                {
                    person[index] = new Client();
                    person[index].client = listener.AcceptTcpClient();
                    Console.WriteLine("Eingehende Verbindung ...");
                    NetworkStream stream = person[index].client.GetStream();
                    person[index].reader = new BinaryReader(stream);
                    person[index].writer = new BinaryWriter(stream);
                    person[index].name = person[index].reader.ReadString();
                    Console.WriteLine("Verbindung erfolgreich.");
                    if (index == 0)
                    {
                        Thread clientMessages = new Thread(getClientMessages);
                    }
                    index++;
                }
                catch (Exception err)
                {
                    Console.WriteLine(err.ToString());
                }
            }
        }

        static void getClientMessages()
        {
            while (true)
            {
                Console.WriteLine(person[0].reader.ReadString());
            }
        }
    }
}

Mit freundlichen Grüßen
Darklight