Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: Visual Studio Despacker : L

  1. #1

    Terminal Visual Studio Despacker : L

    Hallo Leute ich habe ein richtiges problem am Hals.

    Ich benutze Visual Studio Express 2013 und das Problem ist, immer wen ich mein geschriebenes Programm Starten will (Debug Modus) kommt es nicht zur korrekten Ausführung, stattdessen muss ich den Prozess beenden, nur im nicht Debug Modus erscheint das Programm aber mein Pc fiept komplett aus, so das ich gezwungen bin es zu schlissen wen es geht.

    "fliept komplett aus"
    Ich meine damit das mein PC nicht mehr korrekt arbeite und von wenig bis kaum Befehle engen nimmt und rum spackt.

    Ich hoffe ihr könnt mir bei dem Problem helfen, danke.

  2. #2
    Avatar von Mentos
    Registriert seit
    08.09.2007
    Ort
    München

    Standard AW: Visual Studio Despacker : L

    Dazu müsstest du uns mehr sagen...
    Normalerweise passiert so etwas nicht, es sei denn du liest GB weise Daten ein, erstellst/startest Threads im loop oder sendest fake Input an das System.

    Eventuell kannst du mehr zu deinem Programm sagen.

    Gruß
    Zitat Zitat von pacmcmax Beitrag anzeigen
    ich kann mich nicht in kurzen worten zusammen fassen

  3. #3

    Standard AW: Visual Studio Despacker : L

    Schließe mich da Mentos an. Hört sich an als hättest du da irgendwo Murks rein gehauen wie z.B. eine Endlos-Schleife.
    Was soll das Programm denn bewerkstelligen?
    Website: monky-town.de

    WildStar
    Server: Kazor
    Seite: Verbannte
    Char: Monkii (Arkanschütze)

  4. #4

    Terminal AW: Visual Studio Despacker : L

    danke für die Rückmeldung, das Programm besteht aus 3 Programme die gleichzeitig laufen.
    1.versendet Nachrichten.
    2 . wartet auf eingehende Nachrichten.
    3. Prüft ob die Verbindung noch vorhanden ist und wie der Ping so steht .
    1 ist das Haupt Programm.
    2 und 3 sind Threads.
    3 wird gleich am Anfang gestartet und ist eine endlos schleife.
    3 ist auch der Thread der die 2 startet wenn die Verbindung da ist.


    Programm 3/Thread 2:
    Code:
        class KontrolKern
        {
            public static ASCIIEncoding S1 = new ASCIIEncoding();
            public static Socket V1 = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//Verbindung
            public static Form1 F12 = new Form1();//Formular zur Nachrichten Sendung
            public static bool B10,B3;//B10 - N Formular Kontrolle | B3 - Verbindungskontrolle
            public static Thread Tr1 = new Thread(new ThreadStart(EM)); // Start des separatem Programms mit dem Eingabe Formular
            public static Form2 F13 = new Form2();//Eingabeformulars zur Verbindungseinstellung
    
            public static void Satart() //Überwachungsprogramm einzelner Funktionen /Also der der der Eintrittspunkt 
            { while (Program.Aus)
            {
                if(V1.Connected)
                {
                    B3 = true;
                }
                else
                {
                    B3 = false;
                }
                if (!B3)
                {
                    Console.Title = "Chat 1.1 - Nicht Verbunden";
                    try
                    {
                        F12.Close();
                        F12 = null;
                    }
                    catch (Exception)
                    {
                        
                        
                    }
                }
                else
                {
                    byte[] P2 = new byte[35];
                    bool jo = false;
                    try
                    {
                        char[] ip = Convert.ToString(V1.LocalEndPoint).ToCharArray();
    
                     Ping P1 = new Ping();
                    string IP2 = "";
                    for (int i = ip.Length - 1; i >= 0; i--)
                    {
                        if (jo)
                        {
                            IP2 = ip[i] + IP2;
                        }
                        else
                        {
                            if (ip[i] == ':')
                            {
                                jo = true;
                            }
                        }
                    }
                    
                    PingReply I = P1.Send(IP2, 100, P2);
                    Console.Title = "Chat 1.1 - Verbuden mit:" + I.Address + "  Ping :" + I.RoundtripTime;
                    }
                    catch (Exception)
                    {
                        Console.Title = "Chat 1.1 - Nicht Verbunden";
                        
                    }
                    
                }
               
            }
            }
           public static void DiVB()   //Starter des EngabeFormorlars zur Verbindungherstellung
            {
                F13 = new Form2();
                Application.EnableVisualStyles();
                try { Application.SetCompatibleTextRenderingDefault(false); }
                catch (Exception) { }
                Application.Run(F13);
            }
            static void EM()//Starter des SendeFormorlars
            {
                while (Program.Aus)
                {   
                    if (B3)
                    {
                            F12 = new Form1();
                            try
                            {
                                KontrolKern.F12.Location = new Point(CPo.CFP()[0], CPo.CFP()[1] + 345);
                            }
                            catch (Exception)
                            {
                                KontrolKern.F12.StartPosition = FormStartPosition.WindowsDefaultLocation;
                            }
                            Application.EnableVisualStyles();
                            try { Application.SetCompatibleTextRenderingDefault(false); }catch (Exception) { }
                            Application.Run(KontrolKern.F12);
                    }
                    Thread.Sleep(200);
                }
            } 
            public static int Hi;
            public class CPo //Fenster Positions Ermitler
        {
            [DllImport("user32.dll")]
            public static extern bool GetWindowRect(IntPtr hwnd, ref RECT rectangle);
            static public int[] CFP()
            {
                int[] A27 = new int[2];
                var cmd = Process.GetProcessesByName("ConsoleApplication1").First();
                if (cmd != null)
                {
                    var cmdRectangle = new RECT();
                    if (GetWindowRect(cmd.MainWindowHandle, ref cmdRectangle))
                    {
                        A27[0] = cmdRectangle.Left;
                        A27[1] = cmdRectangle.Top;
                    }
    
                }
                return A27;
            }
            public struct RECT
            {
                public int Left;
                public int Top;
                public int Right;
                public int Bottom;
            }
    
        }
        }
    Ist das der teil der die Störung hervorruft ?

    Wen ja was muss ich ändern ?

    Danke

  5. #5

    Standard AW: Visual Studio Despacker : L

    Zitat Zitat von MsGarry's Mod Beitrag anzeigen
    danke für die Rückmeldung, das Programm besteht aus 3 Programme die gleichzeitig laufen.
    1.versendet Nachrichten.
    2 . wartet auf eingehende Nachrichten.
    3. Prüft ob die Verbindung noch vorhanden ist und wie der Ping so steht .
    1 ist das Haupt Programm.
    2 und 3 sind Threads.
    3 wird gleich am Anfang gestartet und ist eine endlos schleife.
    3 ist auch der Thread der die 2 startet wenn die Verbindung da ist.


    Programm 3/Thread 2:
    Code:
        class KontrolKern
        {
            public static ASCIIEncoding S1 = new ASCIIEncoding();
            public static Socket V1 = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//Verbindung
            public static Form1 F12 = new Form1();//Formular zur Nachrichten Sendung
            public static bool B10,B3;//B10 - N Formular Kontrolle | B3 - Verbindungskontrolle
            public static Thread Tr1 = new Thread(new ThreadStart(EM)); // Start des separatem Programms mit dem Eingabe Formular
            public static Form2 F13 = new Form2();//Eingabeformulars zur Verbindungseinstellung
    
            public static void Satart() //Überwachungsprogramm einzelner Funktionen /Also der der der Eintrittspunkt 
            { while (Program.Aus)
            {
                if(V1.Connected)
                {
                    B3 = true;
                }
                else
                {
                    B3 = false;
                }
                if (!B3)
                {
                    Console.Title = "Chat 1.1 - Nicht Verbunden";
                    try
                    {
                        F12.Close();
                        F12 = null;
                    }
                    catch (Exception)
                    {
                        
                        
                    }
                }
                else
                {
                    byte[] P2 = new byte[35];
                    bool jo = false;
                    try
                    {
                        char[] ip = Convert.ToString(V1.LocalEndPoint).ToCharArray();
    
                     Ping P1 = new Ping();
                    string IP2 = "";
                    for (int i = ip.Length - 1; i >= 0; i--)
                    {
                        if (jo)
                        {
                            IP2 = ip[i] + IP2;
                        }
                        else
                        {
                            if (ip[i] == ':')
                            {
                                jo = true;
                            }
                        }
                    }
                    
                    PingReply I = P1.Send(IP2, 100, P2);
                    Console.Title = "Chat 1.1 - Verbuden mit:" + I.Address + "  Ping :" + I.RoundtripTime;
                    }
                    catch (Exception)
                    {
                        Console.Title = "Chat 1.1 - Nicht Verbunden";
                        
                    }
                    
                }
               
            }
            }
           public static void DiVB()   //Starter des EngabeFormorlars zur Verbindungherstellung
            {
                F13 = new Form2();
                Application.EnableVisualStyles();
                try { Application.SetCompatibleTextRenderingDefault(false); }
                catch (Exception) { }
                Application.Run(F13);
            }
            static void EM()//Starter des SendeFormorlars
            {
                while (Program.Aus)
                {   
                    if (B3)
                    {
                            F12 = new Form1();
                            try
                            {
                                KontrolKern.F12.Location = new Point(CPo.CFP()[0], CPo.CFP()[1] + 345);
                            }
                            catch (Exception)
                            {
                                KontrolKern.F12.StartPosition = FormStartPosition.WindowsDefaultLocation;
                            }
                            Application.EnableVisualStyles();
                            try { Application.SetCompatibleTextRenderingDefault(false); }catch (Exception) { }
                            Application.Run(KontrolKern.F12);
                    }
                    Thread.Sleep(200);
                }
            } 
            public static int Hi;
            public class CPo //Fenster Positions Ermitler
        {
            [DllImport("user32.dll")]
            public static extern bool GetWindowRect(IntPtr hwnd, ref RECT rectangle);
            static public int[] CFP()
            {
                int[] A27 = new int[2];
                var cmd = Process.GetProcessesByName("ConsoleApplication1").First();
                if (cmd != null)
                {
                    var cmdRectangle = new RECT();
                    if (GetWindowRect(cmd.MainWindowHandle, ref cmdRectangle))
                    {
                        A27[0] = cmdRectangle.Left;
                        A27[1] = cmdRectangle.Top;
                    }
    
                }
                return A27;
            }
            public struct RECT
            {
                public int Left;
                public int Top;
                public int Right;
                public int Bottom;
            }
    
        }
        }
    Ist das der teil der die Störung hervorruft ?

    Wen ja was muss ich ändern ?

    Danke
    Darf ich das auf http://www.reddit.com/r/badcode/ stellen?

  6. #6

    Standard AW: Visual Studio Despacker : L

    Ja darfst du
    Aber Achtung der Thread 1 /Programm 2 wird nicht direct gestartet sondern indirekt über über das Haupt Programm, das musste sein sonst hätte er sich beschwert.
    Geändert von MsGarry's Mod (03.04.2014 um 21:57 Uhr)

  7. #7
    Avatar von Mentos
    Registriert seit
    08.09.2007
    Ort
    München

    Standard AW: Visual Studio Despacker : L

    Nicht böse gemeint, aber... ALTER?
    Als erstes lernt man doch immer den Variablen "sinnige" namen zu geben oder?
    public static ASCIIEncoding S1
    public static Socket V1
    public static Form1 F12
    public static bool B10,B3;
    public static Thread Tr1
    public static Form2 F13
    Da ist klar, das man da nicht drauf klar kommt.

    Aber jetzt mal richtig:

    So wie ich das sehe, versuchst du einen Ping auszuführen...
    Ping P1 = new Ping();
    PingReply I = P1.Send(IP2, 100, P2);
    Da ich soetwas noch nicht gemacht habe, und damit die Funktionen nicht kenne, kann ich nur das fragen:
    Wo kommt P2 her?
    Warum heist die PingReply Funktion I?

    Deine Threads (Tr1 !?) starten sich nicht selbst. Du hast sie bis jetzt nur global initialisiert...
    Tr1.Start() dürfte die Lösung sein.

    Mehr kann ich von der Zeit her nicht suchen und möcte ich auch wegen den Variablen Namen nicht...

    Mir kommt es so vor, als wäre das entweder Schandcode (du probierst nur rum und es soll sowieso nie genutzt werden) oder du beherschst die Thematik noch nicht gut genug.
    Wenn das der Fall ist, ist der Code ok, ansonsten würde ich darüber nachdenken noch mal neu anzufangen und genau zu überlegen, was wo hin gehört und UNBEDINGT ORDENTLICHE VARIABLENNAMEN NEHMEN

    Das soll aber auf keinen Fall abwertend rüber kommen! Jeder der Programmiert macht mal soetwas.
    Gruß
    Zitat Zitat von pacmcmax Beitrag anzeigen
    ich kann mich nicht in kurzen worten zusammen fassen

  8. #8

    Standard AW: Visual Studio Despacker : L

    Hi, ich danke für die Rückmeldung, selbstverständlich ist das ein Teil meiner Schöpfung naja er ist nicht ansatzweise fertig aber es kann schon was schönes, und das mit den Variablen das ist mein stiel und damit komm ich gut klar.
    Also hier der Rest:
    Code:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.IO;
    using System.Net.Sockets;
    using System.Net;
    using System.Threading;
    using System.Drawing;
    
    namespace ConsoleApplication1
    {
        
        class Program
        {
            static public bool Aus; //Variabel für das beenden Des Programms
            private static Thread S1 = new Thread(new ThreadStart(KontrolKern.Satart));// Start des Seperatem Programms der Fungtionen Kontrolle
            static void Main(string[] args)
            {
                S1.Start();//1 Start
                Aus=true;
                string F1="";
                while (true != KontrolKern.B3 && Aus)
                {
                    Console.ResetColor();
                    Console.Clear();
                    Console.WriteLine("Wollen sie warten<1> oder direkt Verbinden?<2>");
                    F1 = Console.ReadLine();
                    Console.Clear();
                    if (F1=="1")
                    {
                        Console.WriteLine("Wartet");
                        TcpListener L1 = new TcpListener(IPAddress.Any,88);
                        L1.Start();
                        KontrolKern.V1 = L1.AcceptSocket();
                        L1.Stop();
                        Console.Clear();
                        Console.WriteLine();
                        Console.Write("Paswort:");
                        Console.ReadLine();
                        Console.Clear();
                    }
                    else
                    {
                        KontrolKern.DiVB();
                    }
                    Console.BackgroundColor = ConsoleColor.White;
                    Console.ForegroundColor = ConsoleColor.Black;
                    Console.Clear();
                    
                        if (!KontrolKern.B10)
                        {
                            KontrolKern.Tr1.Start();
                        }
                        while (KontrolKern.B3)
                        {
                            byte[] P1=new byte[15];
    
    
                            try
                            {
                                if (0 != KontrolKern.V1.Receive(P1))
                                {
                                    Console.ForegroundColor = ConsoleColor.Black;
                                    Console.WriteLine(KontrolKern.S1.GetString(P1).Trim());
                                }
                                else
                                {
                                    KontrolKern.V1.Disconnect(true);
                                }
                            }
                            catch (Exception)
                            {
                                
                            }
                        }
                }  
            }
            public static byte[] AES(byte[] A1, String PW,bool verde)
            {
                byte[] A4 = new byte[A1.Length];
                Stream A2 = new MemoryStream(A1, false);
                if (verde)
                {
                    SharpAESCrypt.SharpAESCrypt A3 = new SharpAESCrypt.SharpAESCrypt(PW, A2, SharpAESCrypt.OperationMode.Decrypt);
                    A3.Write(A4, 0, A1.Length); 
                }
                else
                {
                    SharpAESCrypt.SharpAESCrypt A3 = new SharpAESCrypt.SharpAESCrypt(PW, A2, SharpAESCrypt.OperationMode.Encrypt);
                    A3.Write(A4, 0, A1.Length); 
                }
                return A4;
            }
        }
    }
    ^Das hupt Programm

    \/ Eingabe Formular
    Code:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace ConsoleApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            private void E1(object sender, KeyEventArgs e)//Senden von der Nachicht pär EnterTaste
            {
                if (e.KeyCode==Keys.Enter)
                {
                    KontrolKern.V1.Send(KontrolKern.S1.GetBytes(text.Text));
                    Console.ForegroundColor = ConsoleColor.Black;
                    Console.WriteLine(">" + text.Text);
                    text.Text = "";
                }
            }
            private void Prüf(object sender, EventArgs e)//Interwal Prüfung
            {
                if (!KontrolKern.V1.Connected)
                {
                    this.Close();
                    Timer.Stop();  
                }
            }
            private void End(object sender, FormClosedEventArgs e)//Formula schliest
            {
                Timer.Stop();
                if (KontrolKern.B3)
                {
                    KontrolKern.V1.Disconnect(true);
                } 
                KontrolKern.B10 = false;
            }
            private void Tren(object sender, EventArgs e)//Tren Taste
            {
                KontrolKern.V1.Disconnect(true);
                KontrolKern.B3 = false;
                KontrolKern.B10 = false;
            }
            private void Start(object sender, EventArgs e) //Formorlar Startet
            {
                KontrolKern.B10 = true;
                Timer.Start();
            } 
        }
    }
    Ich hoffe das reicht ,danke.

  9. #9
    Avatar von Mentos
    Registriert seit
    08.09.2007
    Ort
    München

    Standard AW: Visual Studio Despacker : L

    Das sieht doch schon mal besser aus ;D
    An deiner Stelle würde ich eine extra Funktion schreiben, die das Programm beendet.
    Damit kannst du alle Timer und Threads schließen, die du für die Eingabe verwendest!

    Oder zumindest in der Eingabe in der Prüf-Funktion Timer.Stop() vor this.Close() callen...
    Das könnte mem leaks hervorrufen.

    Gruß
    PS: Ich bastel auch nebenbei einen Chat in C#... leider finde ich keine GPG/OpenPGP libs denen man vertrauen kann...
    Zitat Zitat von pacmcmax Beitrag anzeigen
    ich kann mich nicht in kurzen worten zusammen fassen

  10. #10

    Standard AW: Visual Studio Despacker : L

    Wieso OpenPGP ,was hast du vor?

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 23.04.2010, 15:22
  2. Visual C++ Error :f
    Von EPIC! im Forum Software
    Antworten: 4
    Letzter Beitrag: 17.07.2009, 02:34
  3. Graffiti Studio 2.0
    Von Stein_Steinland im Forum Multimedia
    Antworten: 9
    Letzter Beitrag: 06.05.2008, 20:31
  4. Suche ein Musik Studio
    Von SuperGman im Forum Mapping
    Antworten: 2
    Letzter Beitrag: 23.02.2008, 16:35
  5. 3d studio max deutsch-plugin
    Von chris14465 im Forum Multimedia
    Antworten: 0
    Letzter Beitrag: 25.04.2006, 17:06

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •