Laden...
R
Regenwurm myCSharp.de - Member
Student Zentralschweiz Dabei seit 02.04.2008 295 Beiträge
Benutzerbeschreibung

Forenbeiträge von Regenwurm Ingesamt 295 Beiträge

22.03.2010 - 16:12 Uhr

Warum?
Ich weiss ja nicht, in welchem Moment der Benutzer auf die alte Seite geleitet werden soll.

Darum kann ich dir nicht mehr sagen, als mittels der Response.Redirect Methode auf die Seite zuzugreiffen, die um im GET-Parameter übergibst.

22.03.2010 - 15:52 Uhr

Übergib im GET-Parameter den referer.

17.03.2010 - 19:17 Uhr

Hat keiner eine Lösung?

16.03.2010 - 14:02 Uhr

Oder du gehst alle Controls der Form durch, und schaust ob sie vom Typ "CheckBox" sind. 😉

16.03.2010 - 08:55 Uhr

Hallo zusammen.

Ich habe nun einen Client und einen Server.
der Client übergibt dem Server ein Userobjekt, dass Logininformationen enthält.
Der Server überprüft diese dann, und gibt dem Client eine entsprechende MSG zurück (1/0).

Mein Problem ist aber dass wenn ich das 2te mal einen Login Request sende, der Server immernoch das alte Packet "verarbeitet".
Ich finde den Fehler einfach nicht. - Es wird immer ein neues Packet erstellt!

Brett vor dem Kopf?

Server:

Main:

        private static TcpListener server = new TcpListener(10000);
        private static byte[] buffer = new byte[1000];


        static void Main(string[] args)
        {
            server.Start();
            // Die while-Schleifen werden noch ersetzt.. die sind nur kurz für eine Testüberprüftung da.
            while (true)
            {
                Socket Client;

                Client = server.AcceptSocket();
                Console.WriteLine("Incoming...");
                while (true)
                {
                    Client.Receive(buffer);
                    Console.WriteLine("Got some bytes.. ");
                    Server.csClientConveration.HandleReceivment(buffer, Client);
                }
                
                
            }
        }

csClientConversation:

    class csClientConveration
    {
        private const int  LOGIN = 0,
                           REQUEST_MINIS = 1,
                           REQUEST_GROUPS = 2,
                           CREATE_GROUP = 3,
                           DELETE_GROUP = 4,
                           ADD_MINI_TO_GROUP = 5,
                           REMOVE_MINI_FROM_GROUP = 6,
                           DELETE_MINI = 7,
                           CREATE_MINI = 8;



        public static void HandleReceivment(byte[] buffer, Socket _Client)
        {
            switch (csPacketModifier.DecodeHeader(ref buffer))
            {
                case LOGIN:
                    CheckLogin(buffer, _Client);
                    break;

                case REQUEST_MINIS:
                    break;
            }
        }


        private static bool CheckLogin(byte[] Packet, Socket _Client)
        {
            BinaryFormatter bDeserializer = new BinaryFormatter();
            MemoryStream memStream = new MemoryStream();

            Console.ForegroundColor = ConsoleColor.White;

            Console.WriteLine("- [{0}] * Login request received]", DateTime.Now);

            memStream.Write(Packet, 0, Packet.Length);
            memStream.Seek(0, 0);


            
            User test = (User)bDeserializer.Deserialize(memStream);

            // TODO validate data
            // testcase
            if (test.Username == "PTRLUSTIG")
            {
                Console.ForegroundColor = ConsoleColor.Green;
                // Login is valid
                _Client.Send(csPacketModifier.GeneratePacket(new User(0, "PTRLUSTIG", "123123", "Lustig", "Peter", 1, DateTime.Now), 1)); // Send the success cmd
                Console.WriteLine("- [{0}] * Login success for User {1}", DateTime.Now, test.Username);
            }
            else
            {
                Console.ForegroundColor = ConsoleColor.Red;
                _Client.Send(csPacketModifier.GeneratePacket(new object, 0); // Send the fail cmd
                Console.WriteLine("- [{0}] * Login failed for User {1}", DateTime.Now, test.Username);
            }

            Console.ForegroundColor = ConsoleColor.Gray;
            return true;
            
        }


    }

Client:

Login:


        public static bool Login(ref User myUser)
        {
            myClient.SendTimeout = 60000;   // Set the timout to 1 minute.

            byte[] bAnswer = new byte[255];

            // User loginInformation = new User(Username, Password);

            // Send the login informations to the server...
            myClient.Send(csPacketModifier.GeneratePacket(myUser, LOGIN));

            myClient.Receive(bAnswer);
            if (csPacketModifier.DecodeHeader(ref bAnswer) == 1)    // Login success.. left bytes are User informations
            {
                // Add informations to the User Object
                myUser = (User)csPacketModifier.getObject(bAnswer);
                return true;
            }
            else
            {
                // login failed
                return false;
            }

        }

GeneratePacket:

        public static byte[] GeneratePacket(Object pObject, int Header)
        {
            byte[] myPacket = new byte[1000];

            // Create the basic packet, without any header...
            bSerializer.Serialize(listSerialsStream, pObject);
            myPacket = listSerialsStream.ToArray();

            // Add the header...
            SetHeader(ref myPacket, Header);

            return myPacket;
        }

Kann mir jemand weiterhelfen?

Gruss,
Regenwurm

16.03.2010 - 07:44 Uhr

Hallo Rainbird,

Vielen Dank für deine Antwort.
Dein Hinweis erscheint mir logisch, jedoch verstehe ich nicht genau was du unter Contract Assembly verstehst (Dafür mach ich das wohl noch nicht lange genug) 😃
Sprichst du eine .dll an? - Eher unwahrscheinlich.

Zu deinem Link.
Wenn also der Server eine Funktion hat um ein Login zu überprüfen (auf einer Datenbank, die nur lokal auf dem Server läuft), kann ich also die Methode ansich dem Client übergeben, und der kommuniziert dann mittels der Servermethode mit der Datenbank?

Regenwurm

€: Hmm.. dann wohl doch eine .dll? 😃
Es klappt auf jedenfall damit! - Vielen Dank!
Aber könntest du mir noch die Frage zum Remoting beantworten? 😃

15.03.2010 - 21:21 Uhr

Salute

Ich habe dies afaik heute bereits ausprobiert.
Die User Klasse im ServerProjekt bekam auch den namespace "MiniSoft".
Der Fehler blieb. 😕

15.03.2010 - 17:06 Uhr

Environment.NewLine

15.03.2010 - 16:59 Uhr

Salute..

Ich habe das ganze mit der Serializierung nun so umgesetzt, dass der Client ein User Objekt an den Server sendet.
Das funktioniert auch wunderbar - nehme ich an. 😃.

        public static bool Login(ref User myUser)
        {
            byte[] bAnswer = new byte[255];

            // User loginInformation = new User(Username, Password);

            // Send the login informations to the server...
            myClient.Send(csPacketModifier.GeneratePacket(myUser, LOGIN));
            // .....

Die GeneratePacket - Methode sieht folgendermassen aus:

        public static byte[] GeneratePacket(Object pObject, int Header)
        {
            byte[] myPacket = new byte[1000];

            // Create the basic packet, without any header...
            bSerializer.Serialize(listSerialsStream, pObject);
            myPacket = listSerialsStream.ToArray();

            // Add the header...
            SetHeader(ref myPacket, Header);

            return myPacket;
        }

Wie auch immer, der Server wirft beim Deserialisieren des User Objektes eine SerializationException: "Unable to load type MiniSoft.User required for deserialization.".

        private static bool CheckLogin(byte[] Packet)
        {
            BinaryFormatter bDeserializer = new BinaryFormatter();
            MemoryStream memStream = new MemoryStream();

            memStream.Write(Packet, 0, Packet.Length);
            memStream.Seek(0, 0);

            User test = (User)bDeserializer.Deserialize(memStream); // <= Exception

            // TODO validate data


            return true;
            
        }

Wo liegt der Fehler?
Die beiden User-Klassen sind identisch (Ausser dem Namespace).

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MiniSoft
{
    [Serializable()]
    public class User
    {
        /********************************/
        private int _id,
                    _modify;

        public int Modify
        {
            get { return _modify; }
            set { _modify = value; }
        }

        public int Id
        {
            get { return _id; }
            set { _id = value; }
        }
        /********************************/

        /********************************/
        private string _username,
                       _password,
                       _name,
                       _vorname;

        public string Vorname
        {
            get { return _vorname; }
            set { _vorname = value; }
        }

        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }

        public string Password
        {
            get { return _password; }
            set { _password = value; }
        }

        public string Username
        {
            get { return _username; }
            set { _username = value; }
        }
        /********************************/

        /********************************/
        private DateTime _lastaccess;

        public DateTime Lastaccess
        {
            get { return _lastaccess; }
            set { _lastaccess = value; }
        }
        /********************************/

        public User(int id,string username,  string pwd, string name, string vorname, int modify, DateTime lastaccess)
        {
            _id = id;
            _modify = modify;
            _username = username;
            _password = pwd;
            _name = name;
            _vorname = vorname;
            _lastaccess = lastaccess;
        }

        public User(string Username, string Password)
        {
            _username = Username;
            _password = Password;
        }
    }
}

Kann mir jemand helfen?

Gruss,
Regenwurm

15.03.2010 - 10:35 Uhr

Hi,

Irgendwie finde ich nur beispiele bezüglich XML Serialization.
Ich brauch doch schlussendlich das Objekt in einem Byte-Array, right?

Gruss,
Regenwurm

€: Ich habe wohl einen guten Thread zu dieser Frage gefunden. 😃
-> http://www.c-sharpcorner.com/Forums/ShowMessages.aspx?ThreadID=37810

Ich probiere das mal umzusetzen.

09.03.2010 - 16:29 Uhr

Ich würde eher das IPhone verkaufen, ein Android Handy besorgen und dann
kostenlos auf jeder Art von Rechner entwickeln.

Zu aller erst würde isch schon Apps à la "Ping" oder "WhatsApp" vermissen. 😃

Zum Thema: Käme nicht ein Mac Mini in Frage? Oder was gebrauchtes? Für Iphone Entwicklung reicht ja auch ein 2 Jahre altes Macbook.

Den Mac Mini schaue ich mir gerade an, eventuell hat meine Firma da noch Vergünstigungen..

@Regenwurm,

ich habe Mac OS Leopard auf meinem Windows 7 mit VMWare virtualisiert und es funktioniert wunderbar. Du sollst aber einen echten i-Phone zum Test deiner Apps haben, denn selbst wenn die Apps auf dem simulierten laufen, heisst ja nicht dass sie auch auf dem echten einwandfrei laufen.

Das wäre, so wies aussieht ja die günstigste Variante.
Klappt dies 100%?

Du sollst aber einen echten i-Phone zum Test deiner Apps haben
Ein iPhone oder einen iMac? 😃

€: Puh, 100.- Vergünstigung halten mich ehrlich gesagt noch nicht vom Kauf des Lenovo Notebooks ab.

Was haltet ihr im übrigen von Mono?

09.03.2010 - 12:13 Uhr

Hallo zusammen..

Ich habe schon lange vor, mir ein Notebook zuzlegen, auf dem ich Apps für mein iPhone programmieren kann.
Das ganze geht, wie die meisten wohl wissen, nur unter dem hauseigenen OS von Apple.

Ich persönlich finde aber eine Mac-Book Anschaffung viel zu teuer, nur um darauf Apps für mein iPhone programmieren zu können.

Letztens hatte ein Lehrer von mir, der Klasse etwas interessantes vorgestellt.
das Notebook von Lenovo - Lenovo IdeaPad S10e (http://digitec.ch/ProdukteDetails2.aspx?Reiter=Details&Artikel=169204) - mit dem Apple Betriebsystem.
Das ganze funktioniert auch, weil fast die genau gleiche Hardware vorhanden ist wie beim Macbook. Nur das BIOS muss "ausgetauscht" werden (wird aber mitgeliefert).

Jetzt meine Frage..
Soll ich mir das Lenovo Notebook (+ OS) für 399.- (SFR) holen, oder doch lieber ganz darauf verzichten?

Gruss,
Regenwurm

08.03.2010 - 14:50 Uhr

Du brauchst ja eine Zuweisung dafür.

Mittels den Argumenten hinter dem eigentlichen String bei Console.Writeline() füllst du die entsprechenden Platzhalter aus "{0}, {1}, ...".

{0} ist bei dir a1,
{1} -> a2, etc.

Willst du nun also {0} ausfüllen, so musst du a1 einen Wert zu weisen. (string a1 = "";)

08.03.2010 - 08:01 Uhr

Salü..

Ich wage mich gerade einigermassen an die Verbindung zwischen Client und Server heran, und bin schon an das erste Problem gestossen.

Ist es möglich, dass mein Server eine komplette List<> an den Client überträgt?
Die List beinhaltet das Objekt "csPerson".

Um etwas an den Client übergeben zu können, muss ich alles ja in bytes parsen.
AsciiEncoding.GetBytes() hat aber keine Möglichkeit ein eigenes Objekt anzugeben.

Muss ich sonst alle Attribute in strings umwandeln und das so übergeben?

Gruss,
Regenwurm

22.02.2010 - 12:50 Uhr

http://support.microsoft.com/kb/829383/de

Danach einfach dein Programm mit entsprechenden Start Parametern erweitern.

22.02.2010 - 12:47 Uhr

Es kommt nirgends zu einer Exception.

Gruss,
Regenwurm

22.02.2010 - 12:37 Uhr

Schlussendlich kommt es ja nicht auf den Datentyp drauf an, wenn die Formel nicht stimmt. 😉

22.02.2010 - 12:29 Uhr

Mit Math.Pow bekomme ich leider immernoch 93. :x

        public static double Encode(int pKeyE, int pKeyN, string pMSG)
        {
            if (new csRSA().isNumeric(pMSG) && pMSG!=null)
                return Math.Pow(double.Parse(pMSG),Convert.ToDouble(pKeyE)) % pKeyN;
            else
                throw new FormatException("The Input text isn't an integer");
        }
22.02.2010 - 11:25 Uhr

Hallo,

Ich habe mal aus reiner Neugier eine RSA-Crypt Klasse erstellt, die das Beispiel von Wikipedia (http://de.wikipedia.org/wiki/RSA-Kryptosystem#Verschl.C3.BCsseln_von_Nachrichten) "durchrattern" soll.

    class csRSA
    {
        public static int Encode(int pKeyE, int pKeyN, string pMSG)
        {
            if (new csRSA().isNumeric(pMSG) && pMSG!=null)
                return int.Parse(pMSG) ^ pKeyE % pKeyN;
            else
                throw new FormatException("The Input text isn't an integer");
        }

        public static int Decode(int pKeyD, int pKeyN, string pMSG)
        {
            if (new csRSA().isNumeric(pMSG) && pMSG != null)
                return int.Parse(pMSG) ^ pKeyD % pKeyN;
            else
                throw new FormatException("The Input text isn't an integer");
        }

        private bool isNumeric(string pInput)
        {
            try
            {
                Convert.ToInt32(pInput);
                return true;
            }
            catch
            {
                return false;
            }
        }
    }

Wenn ich aber nun genau die gleichen Werte bei der Verschlüsslung eingebe wie bei Wikipedia erhalte ich einen anderen Output.
Den "richtigen" Output erhalte ich erst, wenn ich Parameter pKeyE und pKeyD vertausche.
Laut Wikipedia ist das aber falsch!

Weiter frage ich mich noch, wie Wikipedia bei der Entschlüsslung bei der Potenz den Schlüssel '47' erhält.

Gruss,
Regenwurm

15.02.2010 - 10:57 Uhr
%Namespace%.Properties.Resources
15.02.2010 - 09:13 Uhr

Das Problem besteht leider immernoch.

12.02.2010 - 09:14 Uhr

Ich habe den Verdacht, dass ich in bei den falschen Funktionen suche.

GetMenuItemCount(ChildHandle) gibt mir immer -1 zurück, bei allen Menubars die in den verschiedenen Applikationen sind.

Nur wenn ich das Systemmenu in der Titelbar angebe, gibt er meine "normale" Zahl zurück.

Gruss.

11.02.2010 - 09:58 Uhr

Windows Perflog

11.02.2010 - 09:15 Uhr

Hallo

Auf diese Funktionen bin ich gester dann auch noch gestossen.
Jedoch will das ganze trotzdem nicht wirklich.

Meine WinAPI Deklaration sehen zZt folgendermassen aus:

        [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
        public static extern bool EnableMenuItem(HandleRef hMenu, uint UIDEnabledItem, uint uEnable);

        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public static extern IntPtr GetMenu(HandleRef hWnd);

        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public static extern IntPtr RemoveMenu(IntPtr hMenu, uint uPosition, uint uFlags);

        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public static extern IntPtr GetSubMenu(HandleRef hMenu, int nPos);

        [DllImport("user32.dll")]
        static extern int GetMenuString(IntPtr hMenu, uint uIDItem,
        [Out, MarshalAs(UnmanagedType.LPStr)] StringBuilder lpString, int nMaxCount, uint uFlag);

        [DllImport("user32.dll")]
        static extern bool DeleteMenu(IntPtr hMenu, uint uPosition, uint uFlags);

        [DllImport("user32.dll")]
        static extern int GetMenuItemCount(IntPtr hMenu);

        [DllImport("user32.dll")]
        static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert);

        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        static extern bool AppendMenu(IntPtr hMenu, MenuFlags uFlags, uint uIDNewItem, string lpNewItem);

Hier bekomme ich jeweils das Handle und das HandleRef zum jeweiligen MenuStrip Control:

            MenuRef = new HandleRef(null, returnControlHandle(tv1.SelectedNode.Index, tv1.SelectedNode.Parent.Index)); //Get the HandleRef
            SubMenuRef = new HandleRef(null, returnControlHandle(tv1.SelectedNode.Index, tv1.SelectedNode.Parent.Index));
            SubMenu = GetSubMenu(SubMenuRef, 1);
            Menu = GetMenu(MenuRef);

Nun würde ich beispielsweise gerne die erste Ebene des Menus deaktivieren:

            EnableMenuItem(MenuRef, 0, (uint)MenuFlags.BYPOSITION | (uint)MenuFlags.ENABLED); //Disable menuitem

Jedoch passiert rein gar nichts.

Ich benutze folgende enum:

        enum MenuFlags : uint
        {
            BYCOMMAND    = 0x0000,
            BYPOSITION   = 0x0400,
            SEPARATOR    = 0x0800,
            ENABLED      = 0x0000,
            GRAYED       = 0x0001,
            UNCHECKED    = 0x0000,
            CHECKED      = 0x0008,
            STRING       = 0x0000,
            OWNERDRAW    = 0x0100,
            POPUP        = 0x0010,
            MENUBARBREAK = 0x0020,
            MENUBREAK    = 0x0040,
            UNHILITE     = 0x0000,
            HILITE       = 0x0080
        }

Gruss,
Regenwurm

10.02.2010 - 15:23 Uhr

Hier noch das Bild, welches die Controls anzeigt:

10.02.2010 - 15:22 Uhr

Hallo

Ich habe das gelöst wieder weggenommen.
Es ist soeben ein Problem aufgetaucht.

Und zwar soll das ganze auch beim Menustrip, und den dazugehörenden Ebenen funktionieren.

Das Menustrip Control ansich wird in dem TreeView-Control schön angezeigt.
Die Untermenus leider nicht. -> Anhang.

Mein erster Gedanke war, dass die Untermenus des Toolstrip's auch Childcontrols des Menustrips sein könnten.
Dem ist aber nicht so.

Weiss jemand wo diese Dinger "versteckt" sind?

Gruss,
Regenwurm

10.02.2010 - 14:22 Uhr

Ausbildung zum Applikationsentwickler.. Lehrjahr 2 von 4. 😉

10.02.2010 - 13:59 Uhr

Ziemlich sicher. 😉

Jedoch hatte ich da jetzt nicht wirklich Zeit um die Seite durchzustöbern.
Aber laut deinem Post ist diese Seite nur eine Erweiterung zur Automation API. 😃

10.02.2010 - 13:11 Uhr

Ah perfekt!
Vielen Dank. 😃

Ich habe nach Begriffen wie: "Message" gesucht. 😉

10.02.2010 - 12:50 Uhr

Hallo herbivore,

Ausser PostMessage & SendMessage finde ich da nichts passendes.
Mein Ziel ist es einfach nur ein Control zu dis- und enablen.

Hast du einen Funktionsvorschlag?


@Fzelle:

Hmmm..
Nun bin ich ein bisschen verwirrt.
Was genau ist die Automation API?
Finde bei Google nicht wirklich etwas, das mir einen klaren Aufschluss darüber gibt.

10.02.2010 - 10:32 Uhr

Hallo herbivore,

Wie bereits in meiner vorherigen Antwort reineditiert, bin ich auf die Funktion "PostMessage" gestossen.

        static extern bool PostMessage(HandleRef hWnd, uint Msg, IntPtr wParam, IntPtr lParam);

Da ich nicht ganz schlau wurde, was der Unterschied zw. Handle und HandleRef ist (selbst nach dem hier -> http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/a170a15f-aa4e-4c1b-ad2a-c96259bc3948) hab ich einfach kopfüber mal ein Objekt ohne Vorwissen erstellt:

HandleRef hr = new HandleRef(null, ChildHandle);

Für die WindowsMessages brauche ich folgende enumeration:

http://www.pinvoke.net/default.aspx/Enums.WindowsMessages

Um nun ein PostMessage auszuführen mache ich mach folgendes:

                HandleRef hr = new HandleRef(null, ChildHandle);

                if (GetText(ChildHandle) == "Set Foreground")
                {
                    try
                    {
                        if (!PostMessage(hr, (uint)WindowsMessages.ENABLE, (IntPtr)0, (IntPtr)0))
                            MessageBox.Show("Error occured! -> Childhandle: " + hr.Handle.ToString());
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.ToString());
                    }
                }

Leider passiert rein gar nichts.
PostMessage wird aber, da die if-clause nicht ausgeführt wird, korrekt behandelt.

Kann mir jemand weiterhelfen?

Gruss,
Regenwurm

10.02.2010 - 08:35 Uhr

Hallo

Vielen Dank für die Hilfe, ich verstehe langsam immer mehr und mehr wie was von einander abhängt.

Aus der WinAPI Funktion "GetClassinfo" werde ich leider nicht wirklich schlau.
Auf pinvoke.net gibt es auch nicht wirklich ein Beispiel, welches mit veranschaulicht was die Funktion genau macht (Ich habe jedoch den 'Verdach't dass man damit beispielsweise den Controltyp auslesen kann).

Bleibt eigentlich nur noch ein Problem.
Wie kann ich die Eigenschaften (enable / disable, text, [height/width]) von einem solchen Control ändern?
Bzw. mit welcher Funktion?
Die Handles von den einzelnen Controls habe ich ja nun.

€: PostMessage sieht ganz interessant aus:

http://www.pinvoke.net/default.aspx/user32.PostMessage

Gruss,
Regenwurm

09.02.2010 - 16:08 Uhr

Hallo herbivore,

Also so wie ich das verstanden habe, gibt mir GetWindowText den String der "Titelbar" zurück.
Das ist auch ok..

EnumWindows gibt mir true/false zurück, ob ein Handle ein TopLevel Window von einem Prozess ist. Ist das so richtig?
Wenn ja, dann benötige ich diese Funktion doch nicht, wenn ich mittels .NET auf das Attribut "MainWindowHandle" zugreiffen kann.

Bei EnumChildWindows bekomme ich true/false zurück ob Handle A das ParentWindow von Handle B ist. ist das richtig so?
Was ist genau WNDENUMPROC?

->

BOOL EnumChildWindows(          HWND hWndParent,
    WNDENUMPROC lpEnumFunc,
    LPARAM lParam
);

grz
Regenwurm

09.02.2010 - 13:49 Uhr

Okay, die Frage war ein bisschen unglücklich gestellt. 😉

Mein Ziel ist es, alle Controls, welche in einem externen Fenster vorhanden sind, in einem Treeview aufzulisten.
Da wohl die Funktionalität von C# nicht so weit reicht, muss ich wohl zur Windows API greiffen.
Könnt ihr mir eventuelle stichwortartige Hinweise geben?

grz

09.02.2010 - 13:31 Uhr

Hallo,

Wie kann ich alle Controls einer anderen, externen, Applikation auflisten?

Gruss
Regenwurm

19.01.2010 - 15:11 Uhr

Vielen Dank für eure Inputs. 😃

Ich werde List<T> benutzen. 😉

19.01.2010 - 14:56 Uhr

Ist der Geschwindkeitsunterschied spürbar bei einer Client <-> Serveranwendung?

Bis zu 1000 Clients sind an einem Server.

19.01.2010 - 14:40 Uhr

Arrays oder Listen?
Ich gehe doch schwer davon aus, dass du jetzt die Listen ansprichst. (:

19.01.2010 - 14:29 Uhr

Hallo

Was sollte man eurer Meinung nach eher benutzen?
Speziell jetzt beispielsweise bei einer Server<>Client Anwendung.

Sind Arrays tatsächlich schneller als generische Listen?

Grüsse
Regenwurm

19.01.2010 - 11:59 Uhr

gelöst. 😃

sint32 *gpNJerk = (sint32*)Convert::ToInt32((txtpNJerk->Text));
19.01.2010 - 11:10 Uhr

Hallo

Ich bin gerade dabei Werte aus einer Textbox einer Funktion mitzugeben.
Das Problem dabei ist, dass es sich um real32, sint32, und uin16 Datentypen handelt.

Visual Studio lässt mich das ganze irgendwie nicht konvertieren:

real32  gDistDesired = static_cast<real32>(txtDistDesired->Text);
real32  gJerkDesired = static_cast<real32>(txtJerkDesired->Text);
real32  gAccDesired  = static_cast<real32>(txtAccDesired->Text);
real32  gVelDesired  = static_cast<real32>(txtVelDesired->Text);

uint16  gFs          = static_cast<uint16>(txtFs->Text);
real32  gTs          = static_cast<real32>(txtTs->Text);

sint32 *gpNJerk      = static_cast<sint32>(txtpNJerk->Text);
sint32 *gpNAcc       = static_cast<sint32>(txtpNAcc->Text);
sint32 *gpNVel       = static_cast<sint32>(txtpNVel->Text);

Wo liegt das Problem dabei?
typecast hab ich auch bereits ausprobiert.

Gruss Regenwurm

05.01.2010 - 19:37 Uhr

Hallo

Hat jemand Ansätze/Hinweise wie ich über .NET einen dritten Prozess überwachen kann?
Ob etwas verändert wird, in die memory geschrieben wird etc.

Gruss
Regenwurm

05.01.2010 - 14:19 Uhr

Hallo

Mir will einfach nicht die richtige Lösung einfallen!
Wie sicher alle wissen, unterstützt das ListBox Control kein Value Wert (so halt wie bei HTML).

Nun wollte ich ein eigenes Control basteln, welches sich von der ListBox ableitet..

class Class1 : ListBox

Jedoch, wie erstelle ich nun ein neues Attribut unter "ListBox.Items.xxx"?
Ich kann nur Attribute erstellen, welche in der ersten Ebene sind "ListBox.xxxx".
(Items wird ja wohl irgend eine eigene Klasse, struct w/e sein).

Kann mir jmd helfen?
Grüsse Regenwurm

05.01.2010 - 12:03 Uhr

Geht bei euch der link noch?

Bei mir kommt "Seite nicht gefunden..."

Hi zusammen!

Ich bin vor einer ganzen Weile mal über diesen Beitrag gestolpert und fand das GoL von vbtricks ziemlich super, wenn ich mich recht erinnere...leider :::

Würde mich sehr freuen, wenn mir jemand helfen könnte!

Greets - SK

Ich denke das sollte die Frage beantworten. 😃
Und den Link, welchen tom-essen meint ist der hier:
http://download.chip.eu/de/Conway_s-Life_6017253.html

05.01.2010 - 11:08 Uhr

Ich habe mal kurz einen kleinen Versuch in der Konsolenapplikation gemacht..

                            for (int i = 0; i < 100; i++)
                            {
                                foreach (User u in con.returnAllUser())
                                {
                                    Console.WriteLine("");
                                    Console.WriteLine(u.Username + " || Pwd(MD5): " + u.Password);
                                    Console.WriteLine("\t[*] ID: " + u.Id.ToString());
                                    Console.WriteLine("\t[*] Name: " + u.Name);
                                    Console.WriteLine("\t[*] Vorname: " + u.Vorname);
                                    Console.WriteLine("\t[*] lastAccess: " + u.Lastaccess);
                                    Console.WriteLine("\t[*] Able to Modify: " + u.Modify.ToString());
                                }

                                System.Threading.Thread.Sleep(200);
                            }

7x gehts, danach wirft er mir auch eine WebException (The remote server returned an error: (403) Forbidden.)

05.01.2010 - 10:57 Uhr

Naja, dann wird wohl irgendetwas zu lahm sein. Aber für ein paar Datensätz sollten eigentlich auch die Freehoster genug Performance bereitstellen.
Keine Lösung aber ein Workaround: Drehe den Timeout auf dem WebRequest hoch 😉

Hmm.. die Wartezeit bleibt dadurch ja trotzdem..

Und probiere deine Abfrage auch mal im Browser aus um zu testen ob es da auch auftritt.

Da ist noch kein Problem aufgetreten, auch wenn eine solche Abfrage in der Konsole mache ist noch nicht wirklich was passiert...

P.S.: Dein PHP-Code ist SQL-Injection anfällig. (Benutze mysql_real_escape_string() für deine GET-Variablen)

Yep, wurde mir auch schon mitgeteilt. 😉

05.01.2010 - 10:07 Uhr

Hallo

Ich habe nun die Vorschläge umgesetzt, und "kommuniziere" sozusagen mit einem .php File.

Die Daten werden auch ausgegeben und in die DB eingetragen, jedoch bekommt er recht oft ein Timeout.

Und zwar, wenn die Response von dem Webrequest zurückgegeben werden soll.
Teilweise gehts, teilweise bleibt er hängen und dann wird mir ein Timeout des Servers zurückgegeben.

Ich habe 2 verschiedene Hoster ausprobiert, und es tritt bei beiden auf!

 public List<Ministrant> returnAllMinis()
{
string readerLine;

List<Ministrant> bringBack = new List<Ministrant>;();

// Create a request for the URL.
WebRequest request = WebRequest.Create(webroot + "readdata.php?table=tblMinis";);

// Get the response.
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

// Get the stream containing content returned by the server.
Stream dataStream = response.GetResponseStream();
// Open the stream using a StreamReader for easy access.
StreamReader reader = new StreamReader(dataStream);

//...//

}

Kann mir jmd helfen?

Hier noch das aufgerufene .php File:

[php]

include("connection.php");
$result = mysql_query("SELECT * from " . $_GET['table']);
$table = $_GET["table"];

while($line = mysql_Fetch_array($result))
{
switch($table)
{
case "tblMinis":
echo "@" . $line[id] . ";" . $line[Nachname] . ";" . $line[Vorname] . ";" . $line[Strasse] . ";" . $line[PLZ] . ";" . $line[Ort] . ";" . $line[GebDatum] . ";" . $line[Telefon] . ";" . $line[Funktion] . ";" . $line[Gruppe_ID] . ";\r\n";
break;

case &quot;tblGruppen&quot;:  
   echo &quot;@&quot; . $line[id] . &quot;;&quot; . $line[Name] . &quot;;\r\n&quot;;  
   break;  

case &quot;tblUser&quot;:  
   echo &quot;@&quot; . $line[id] . &quot;;&quot; . $line[username] . &quot;;&quot; . $line[password] . &quot;;&quot; . $line[name] . &quot;;&quot; . $line[vorname] . &quot;;&quot; . $line[KannBearbeiten] . &quot;;&quot; . $line[lastAccess] . &quot;;&quot; . $line[alertMe] . &quot;;\r\n&quot;;  
   break;  

}
}

echo "@";

mysql_free_result($result);

mysql_close();
[/php]

24.12.2009 - 18:08 Uhr

Hm oke.. war jetzt ein bisschen falsch ausgedrückt.
Das mit dem mitgeben von Variabeln hab ich mir ja schon gedacht:

[...]Dieses rufe ich immer mit meiner Applikation auf und füge da die Werte welche ich in die DB packen will per Querystring mit?[...]

Meine Frage war eher so gemeint, dass die Antwort von dem Skript ja auch auswerten muss.
Sprich, das Skript muss mir ja in HTML beispielsweise Daten zurückgeben (Login erfolgreich Ja/Nein) etc.

Oder geht das auch anders?

Gruss

24.12.2009 - 14:13 Uhr

Hi

Jep, sieht so aus. 😉
Es geht um eine Software.

Also soll ich einfach bspw. bei funpic webspace holen und da ein .php Script raufpacken.
Dieses rufe ich immer mit meiner Applikation auf und füge da die Werte welche ich in die DB packen will per Querystring mit?

Und wie soll ich das machen wenn ich etwas überprüfen will? (Login etc.)

23.12.2009 - 15:01 Uhr

Also sollen rund 30 Personen bei jeder Änderung ständig CSV Files von einem FTP up- und downloaden?