Laden...

Forenbeiträge von Vellas Ingesamt 842 Beiträge

22.05.2004 - 15:33 Uhr

Hi!

Ich verstehe es so das es darum geht eine möglichst richtige Lösung zu liefern, wobei die Geschwindgkeit wohl mehr zählt. Ich würde in deinem Beispiel sagen das der mit den 3% gewinnt.
Aber ich denke mal das wird in der Aufgabenstellung vermerkt.

Code-Hacker

22.05.2004 - 12:33 Uhr

Hi!

Hehe, ich benutze Mozilla und dort zickt die Verschlüsselung auch manchmal ein wenig rum. Eben hat es wieder nicht mit der Verschlüsselung geklappt, dies ist allerdings eher selten der Fall.
Ist nur trotzdem etwas nervig.

Code-Hacker

21.05.2004 - 23:34 Uhr

Hi!

@Any1120:
Also ich würde die Ausbildung keines Falls abbrechen. Wenn du diesen Beruf weiter ausüben willst solltest du wenn dann lieber nur die Firma wechseln oder einfach mal mit deinem Ausbilder sprechen. Aber abbrechen ist imho immer schlecht und gerade im IT-Bereich sollte man froh sein etwas zu haben, da es hier leider genug arbeitslose gibt. Außerdem macht es sich in weiteren Bewerbungen nicht besonders gut...

Ist nur meine Meinung.

Code-Hacker

21.05.2004 - 23:28 Uhr

Hi!

Stimmt durchführbar ist es außerdem nicht. Aber ich finde es aus dem Grunde logisch, als das man dadurch dem Programmierer nicht alles abnimmt, was auch so sein soll. Ich kann mir auch keine Situation vorstellen in der es Sinn machen würde, aber wenn ein Programmierer das will wird er schon seine Gründe haben.
Ich finde es auf jedenfall gut. Man darf einem Programmierer nie zuviel Arbeit abnehmen, da dieser sonst eingeschränkt würde.

Code-Hacker

19.05.2004 - 21:18 Uhr

Hi!

Es ist nicht Sinvoll, aber die Eigenschaft Maximize prüft halt nicht um welchen Style es sich handelt. Also ist das schon ok so wie es ist und auch durchaus logisch.

Code-Hacker

19.05.2004 - 21:08 Uhr

Hi!

Obwohl die Frage beantwortet war habe ich alles zum Thema MS bzw. Windows und Linux ins Off-Topic (Windows vs. Linux) verschoben. Diskussion bitte dort weiterführen.

Code-Hacker

19.05.2004 - 10:28 Uhr

Hi!

Original von Franknstein
Oder schöner: FormBorderStyle auf FixedSingle stellen!

Ich wusste doch es war was mit Style. 😁

Code-Hacker

19.05.2004 - 10:21 Uhr

Hi!

Standard-C++ oder Managed-C++? In Standard-C++ gar nicht, da musst du dir eine Schleife machen die 80x \n oder std::endl ausgibt:

for(int i=0; i<80; ++i)
  std::cout << std::endl;

Oder du guckst mal hier, da kannst du dann die Schleife von Hauptmann benutzen, für Managed-C++ heißt es statt Console.WriteLine Console::WriteLine (statt .-Operator den ::-Operator) oder du schreibst Franknsteins Klasse um:
http://www.mycsharp.de/wbb2/thread.php?threadid=1473&sid=&hilight=l%F6schen

EDIT: Achja, wenn das Prog nur unter Windows laufen soll ginge noch dies:

std::system("cls");

Die Funktion system ist in der cstdlib meine ich.
Ich habe nur wegen Std-C++ und M-C++ gefragt da man ja nicht unnötig Header einbauen muss.

Code-Hacker

18.05.2004 - 10:48 Uhr

Hi!

Deine Zeile (1. Code Schnipsel) da oben, also die erste, wird ja wohl irgendwo in einer Methode in einer Klasse stehen. Die Methode zu deinem EventHandler (2. Code Schnipsel) muss in die Klasse wo auch der 1. Code Schnipsel steht:

public meineKlasse
{
  void meineMethode()
  {
    button.Click +=new EventHandler(button_Click);
  }
  private void button_Click(object sender, System.EventArgs e)
  {
	MessageBox.Show("Test");
  }
}

Deswegen habe ich eben auch geschrieben das es in die Klasse muss die die Methode mit deinem 1. Code-Schnipsel enthält. Das mit InitializeComponents (die diese Zeile standardmäßig enthält) war ein beispiel.

Code-Hacker

18.05.2004 - 10:19 Uhr

Hi!

Das kannst du auch in einer von Designer erstellten Form in den Eigenschaften nachsehen. Und sonst such mal bei msdn.microsoft.de (oder in der lokalen MSDN auf deinem Rechner). Ich glaube das war FixedSingle, aber es gibt glaube ich noch eine andere. Der Wert ist der Eigenschaft WindowStyle (oder Style, musst du gucken) zu zuweisen.

Code-Hacker

18.05.2004 - 10:16 Uhr

Hi!

In der Klasse wo du auch den EventHandler drin hast, dieser steht ja meistens in der Methode InitializeComponents und die Methode dazu packst du in die Klasse wo die Methode drin ist, aslo in die Klasse wo die " button.Click +=new EventHandler(button_Click);" Zeile (welche allerdings in einer Methode ist) ist.

Code-Hacker

17.05.2004 - 23:29 Uhr

Hi!

Ok dann so (mache ich auch in mC++ so, habe ich nicht dran gedacht):

temp = temp.Insert(0, Convert.ToString(dez%2));

Code-Hacker

17.05.2004 - 21:08 Uhr

Hi!

Doch, die resx-Datei wird für jede Form im Projekt angelegt. Du kannst aber wohl resx-Dateien anderer Projekte in dein Projekt einbinden bzw. deine Form verwenden lassen.

Code-Hacker

17.05.2004 - 21:03 Uhr

Hi!

Original von Chäsi
Hi

So weit ich weis, kann man in der Konsole keine Textformatierungen vor nehmen. (leider) Allerdings lasse ich mich gerne eines besseren belehren 😉

greets Chäsi

In C# kenne ich auch keine Möglichkeit außer vllt. \t usw. Aber in C++ beispielsweise konnte mann Abstände festlegen um eine besser formatierte Ausgabe zu erhalten. C# kennt wohl nur noch die Formatzeichen zur Formatierung numersicher Typen.

Code-Hacker

17.05.2004 - 20:51 Uhr

Hi!

Den Ruf des Boards in allen Ehren. Aber für mich wird hier ein wenig zuviel Werbung gemacht für das Board. Wenn noch nichts geschrieben worden wäre von alexander oder hauptmann, hätte ich den Thread dicht gemacht. Zu sagen das Board ist wieder online ist noch ok, aber so viel Werbung ist imho auch für ein Partnerboard bissel viel.

Code-Hacker

17.05.2004 - 20:44 Uhr

Hi!

Indem du die Zahl ins Dualsystem umwandelst:

String dez2bin(int dez)
{
  String temp = "";
  while(dez>0)
  {
    temp.Insert(0, Convert.ToString(dez%2));
    dez /= 2;
  }
  return temp;
}

Sollte funktionieren. Das Resultat wird in einem String gespeichert und zurückgeliefert. Keine Ahnung ob es dafür auch etwas vorgefertigtes von .NET gibt, habe dies im Buch nicht gefunden.

Dies habe ich mal gefunden als ich nach einer Umrechnung vons Dualsystem ins Dezimalsystem gesucht habe:
http://www.knappi.org/uploads/Main/zahlen.pdf

Sehr hilfreich.

EDIT: Für einen Buchstaben musst du diesen ja nur einer int-Variable zuweisen und erhältst den ASCII-Code. Den kannst du dann an diese Funktion übergeben.

Code-Hacker

14.05.2004 - 21:56 Uhr

Hi!

Man kann ja erstmal sagen wir stellen das ein mit dem IRC. Und man kann ja vielleicht bei 400 oder 450 Mitgliedern mal eine Umfrage erstellen ob daran Interesse besteht oder nicht.

Code-Hacker

14.05.2004 - 21:32 Uhr

Hi!

Was willste da noch entscheiden? Lohnen tut der sich wirklich nicht. Fragen können hier schneller beantwortet werden und zudem können andere die auch noch lesen. Und Chattreffen funktionieren ja auch nicht richtig, da einige einfach zu selten Zeit haben. Für 1-3 Personen braucht man keinen Channel.

Code-Hacker

14.05.2004 - 21:25 Uhr

Hi!

[klugscheiß]
Das ist aber der Caret nicht der Cursor. Nur unter DOS ist das der Cursor. In Windows ist das blinkende Ding in Textboxen der Caret. Cursor ist der Mauszeiger.
[/klugscheiß]

Code-Hacker

14.05.2004 - 14:57 Uhr

Hi!

Ich habe mir für die genaue Stelle mal eine Prozedur geschrieben. Also diese errechnet die momentane Zeile und die Position beginnend vom Zeilenanfang.
Du kannst die Stelle, also wieviel Zeichen das Caret, nicht Cursor, von der 0. Position weg ist ermitteln und zwar mit der SelectionStart-Eigenschaft:

richTextBox.SelectionStart;

Code-Hacker

14.05.2004 - 14:51 Uhr

Hi!

Warum nicht? Der Klasse muss nur diese Struktur bekannt sein. Du kannst diese auch in die Klasse selbst einbauen.

struct myStruct
{
    String myString;
}


public class bla
{
    private myStruct myStructVar;
}

Natürlich kann die Structur auch in der Klasse selbst definiert werden:

public class bla
{
    struct myStruct
    {
        String myString;
    }
    private myStruct myStructVar;
}

Code-Hacker

14.05.2004 - 14:46 Uhr

Hi!

Original von Xqgene
@Code-Hacker: das kann doch nicht dein ernst sein:

Original von Code-Hacker
...Am geilsten finde ich diese defines:
#define BEGIN {
#define END }
oder noch geiler:
#define IF(a) (a)
#define THEN(b) ? (b)
#define ELSE(c) : (c)
Aufruf sähe z.B. so aus:

IF (1<2) THEN  
 	(std::cout << 1 << std::endl)  
 ELSE (std::cout << 2 << std::endl);  

*rofl* MUAHAHAHAAAAAAAAAAAAAAAAAA !!!

Das ist aber mein ernst. Aber das mit dem IF war bei dem irgendwie besser als bei mir, sollte aber nur mal demonstrieren auf was Pascal-Programmierer für Ideen kommen können GGG.

Keine Angst, ich würde sowas bestimmt nicht machen, da ich Pascal hasse.

Code-Hacker

13.05.2004 - 16:55 Uhr

Hi!

Hmm, hatte mal ein Link, aber seit ich coder-welt ein neues Forum hat habe ich den nicht mehr. /root bzw. wurmi schickt mir auch die Dateien nicht zu.

In C gibt es kein Inline Assembler, gibt es erst seit C++. Wobei ich es persönlich relativ unnötig finde, da man auch mit C++ auch Low-Level-Programmierung möglich ist. Und bei näherer Betrachtung sieht man wie extrem Assembler-Nah C ist.
Das einzige was beide Sprachen unterstützen sind Assemblermodule. extern ist auch ein schönes Beispiel das C was von Assembler (extrn) hat.

Wie das mit diesem intregrierten Assembler funktioniert weiß ich nicht, habe mich nie näher mit der Sprache beschäftigt. Aber wie du sagtest, so glaube ich auch das man sie nicht braucht. Wäre imho eher mal etwas für die Freizeit, aber wenn ich Assembler brauche programmiere ich Assembler und wenn ich C oder C+ brauche dann dies.

Code-Hacker

13.05.2004 - 15:29 Uhr

Hi!

Ja SQL kann man mehr oder minder dazu zählen. Ist allerdings nicht direkt eine Programmiersprache, sondern viel mehr eine Abfragesprache.

C/AL? Nö. Was ist das für eine Sprache?

Kennt jemand von euch C--? Das ist C mit einem integrierten Assembler. Damit wurde sogar bereits ein OS entwickelt. Einfach bei google nach C-- suchen und ihr solltet fündig werden.

Mit TP fangen wirklich viele an. Bei uns ist das auch die Einsteigssprache, wobei imho viele dann nach etwa 1-1,5 Jahren Pascal und Object Pascal so versaut sind das sie C nicht gebacken kriegen. Am geilsten finde ich diese defines:
#define BEGIN {
#define END }
oder noch geiler:
#define IF(a) (a)
#define THEN(b) ?(b)
#define ELSE(c) 😦c)
Aufruf sähe z.B. so aus:

IF (1<2) THEN
		(std::cout << 1 << std::endl)
	ELSE (std::cout << 2 << std::endl);

Pascal in C. G

Code-Hacker

11.05.2004 - 22:33 Uhr

Hi!

Ich steh irgendwie im Wald. Auf welchen Vorteil verzichtet man wenn man das mit OOP macht? Also Pointer verwenden?

Code-Hacker

11.05.2004 - 21:29 Uhr

Hi!

Original von r00t
wenn man es aus der oop perspektive siehst dann "solltest" du sogar pointer vermeiden. nehmen wir mal c++ im verlgeich zu c:

bei oop werden klassenvariablen werden über konstr. initialisiert, und dass ist fakt. Gegenfrage: warum sollte man die variablen über zuweisungen initialisieren? wäre das nicht so als wenn man auf einen Fortschritt und Verbesserung der OOP verzichten würde?

Ich verstehe irgendwie nicht genau was du mit den letzten 2 Sätzen sagen bzw. fragen willst. Meinst du warum man Variablen per Zuweisung statt Konstruktoraufruf initialisieren sollte oder was? Wenn ja, auf welche Variablen beziehst du dich? Built-Ins oder eigene Datentypen.
Wieso verzichtet man auf etwas wenn man per Zuweisung initialisiert? (oder was meinst du mit dem letzten Satz?)

Code-Hacker

11.05.2004 - 21:00 Uhr

Hi!

Ja! Genau. Aber was verstehst du wederum unter "umgehen können"? Ich verstehe darunter jemanden der sich nicht tiefgründig mit Zeigerarithmetik auseinander gesetzt hat. Es gibt so viele Dinge die man beachten muss, wie ich in den C-Vorlesungen gesehen habe, in den Übungen gemerkt habe und auch jetzt beim durcharbeiten vom Stroustrup merke und lese. Das ist Wahnsinn. Ich nehme an solchen stellen zu gerne das Beispiel von meinem Dozenten, den Zeigersalat und der ist alles andere als leicht oder übersichtlich.
Zur Zeigerarithmetik gehört ja nicht nur +x sondern wirklich komplexe arithmetische Operationen und erst wenn man damit enigermaßen umgehen kann kann man imho mit einem Zeiger umgehen.

Außerdem selbst wenn man es kann, wirklich benötigen tut man sie selten. Selbst bei zeitkritischen Situationen können sie teilweise schon vernachlässigt werden, da die Compiler mittlerweile fast alles rausholen können. Lieber etwas zu wenig optimiert, dafür richtig, als zuviel und dafür falsch.

Code-Hacker

11.05.2004 - 17:21 Uhr

Hi!

Original von zeus
Hi,

Das ist mir mal passiert: Ich hab auf meinem ME durch den Speicher iteriert, und alles ausgegeben (nicht mit Absicht). Als ich dann am Ende des für das Programm reserviertzen Speichers gekommen bin, ist das Programm abgeschmiert. Ich hab allerdings nur lesend zugegriffen, wie ME beim Schreiben reagiert hätte, weiß ich nicht. Ich glaub allerdings nicht, dass es beim schreiben abgestürzt währe.
PS:Ein interesander Link zu Thema:
>

ME ist löchriger als ein schweizer Läse, was wir zwar von MS kennen, aber ME ist echt heftig. Ich hatte es auch mal, das schmiert ab wenn es die Chance hat. Naja, habe danach dirket zu 2k gewechselt.

Zum Link:
Natürlich müssen Underflows genauso streng behandelt werden wie Overflows.

Was memcpy betrifft so werde ich das demnächst unter Win98 mal testen, evtl auch unter ME. Habe hier noch nen alten Laptop stehen, der kann ja mal für sowas herhalten. g
Kann dann ja mal die Ergebnisse posten von 98 und ME, also die Reaktionen der beiden BS.

Code-Hacker

11.05.2004 - 17:09 Uhr

Hi!

Original von r00t
noch was zu zeigern allg: mit zeigern sollte man generell aufpassen, wohin man "zeigt".

Ja, aber das hat auch einen Grund. 😉
Immerhin speichert ein Zeiger die Adresse eines Objekts. Bei einer fehlerhaften Zeigeroperation kann natürlich was schief gehen. Außer aus Performancesicht sind Zeiger imho sowieso unnütz, d.h. man kann sie vermeiden und sollte die vermeiden. Ich benutze Zeiger eigentlich nur wenn ich ein char-Array benötige und das kommt relativ selten vor.

Bei Gesprächen über Zeigern kommt mir immer der Zeigersalat von meinem Dozenten in den Kopf. Sieht nicht nur schlimm aus, ist es auch 🙂

Code-Hacker

11.05.2004 - 17:01 Uhr

Hi!

Original von TOM_MUE
Als erstes BITTE KEINE ANFRAGEN AN MEINE PRIVATE MAILADRESSE!

Habe ich etwas überlesen oder wurde wirklich gar nicht danach gefragt? Habe beide Seiten nach dem Stichwort "Mail" durchsucht und kam außer bei diesem Beitrag immer nur auf den Link "E-Mail".
Außerdem würde es reichen zu schreiben das du die nicht rausgeben möchtest bzw. das du eine im Profil angegeben hast an die die User schreiben kann.

Code-Hacker

11.05.2004 - 16:56 Uhr

Hi!

Ja, jede Schule die bei MSDNAA mit macht wird mehr MS als Borlandprodukte haben. Also meine Schule hat nur noch Delphi von Borland, ansonsten benutzen sie MASM den MS kostenlos zur Verfügung stellt für Lehrzwecke (zumindest kriegen wir es kostenlos mit nach hause), genau so ist es mit VS6.0 welches die Schule in der Enterprise Edition hat, war auch um einiges günstiger. Nächstes Jahr soll für die C-Übungen vermutlich .NET eingeführt werden. Schade eigentlich, das ich das nicht mehr erleben darf 🙁 aber was solls, immer hin lerne ich so nochmal 6.0 kennen was man wenigstens mal getestet haben sollte, da es in Firmen immer noch verwendet wird.

Code-Hacker

11.05.2004 - 16:51 Uhr

Hi!

@Franknstein:
Axso. Nö gekränkt bin ich nicht, wieso auch?
Doch du hattest das schon begründet 😉

Ja, die muss man bei Programmstart neu herausfinden. Aber selbst wenn nicht würde das nicht viel an der Tatsache ändern das diese Adresse bei jedem PC woander liegt, selbe Position wäre somit Zufall. Naja und wer Schaden anrichten will der schreibt wie gesagt an eine bestimmte Speicherstelle in der Hoffnung das etwas passiert.

@r00t:
Also WinME und alles dadrunter sollten abschmieren, eventuell kommt auch nur ein Bluescreen mit einer Meldung das ein schwerer Ausnahmefehler entstanden ist an der und der Speicherstelle. Danach kommst du entweder zurück in das System oder nicht. das Programm....nunja, wenn du den PC nue starten musst ist das natürlich beendet, ansonsten glaube nicht, außer es killt sich selbst g.

Nein, der Speicherriegel wird an den Adressen nur überschrieben, also wo zuvor eine 1 stand steht jetzt eine 0. Allerdings können da wichtige Ressourcen gespeichert sein, die dann natürlich futsch sind und das System oder ein Programm zum Absturz bringen.

Wenn du Win2k, WinXP, Win2k3 wird es auf jedenfall vom Betriebssystem gekillt da es an eine ungültige Speicheradresse schreiben wollte. Ungültig in dem Sinne als das es außerhalb des eigenen Speichers gelandet ist. Deswegen dürfen die Algorithmen der C-Standardbibliothek auch nicht lesen oder schreiben was sich hinter dem letzten Element befindet. Die Algotirhmen iterieren schließlich und ein Zeiger zeigt dabei oft hinter das letzte Element und das darf weder gelesen noch geschrieben werden, da es dann vermutlich außerhalb des gültigen Bereiches sein wird. Genauso verhält es sich mit einer künstlich erstellten Pascalindizierung, wobei festgelegt wird von welchem bis zu welchem Index ein Array geht. In C könnte man es so darstellen das man einen Pointer auf das Array-1 setzt und ist somit außerhalb der gültigen Grenze ist in C, C und C#. D.h. wir befinden uns vor dem ersten Elemten, also müsste man mit dem Pointer über inidzierung bei 1 statt bei 0 beginnen und kann dann bis 30 statt 29 indizieren. Also wären die Grenzen nicht mehr 0-29 wie bei C üblich sondern 1-30. Davon rate ich ab, da bei sowas sehr leicht ein Fehler mit diesem Zeiger passieren kann und dann hat man den Salat wenn es doch irgendwie gut geht, wird auf jedenfall später etwas passieren.

Code-Hacker

11.05.2004 - 12:48 Uhr

Hi!

Da ich nicht nochmal in dem Thread "wat wer bist du den?" antworten wollte zu dem Thema "Speicherangriffe", hier nun ein neuer Threrad und eine Verallgemeinerung des Titels.
Was bisher geschrieben wurde kann auf der 1. Seite bis zum 1. Post auf der 2. Seite hier gelesen werden:
http://www.mycsharp.de/wbb2/thread.php?threadid=1618&sid=

Original von Franknstein
Edit:
@CodeHakcer
Vielleicht sollte dem Brain gesagt werden, dass man Viren, Trojaner was weiß ich nicht mir C# macht, da kaum wer die .net Frameworks hat... 😁 (Hooks, Titel von Windows; mal sehen was als nächstes kommt 😉 )

Hm? Wie kommst du darauf das ich ihm sagen soll das man Viren, Torjaner etc. nicht mit C# macht? Der mag MS nicht und ist Linux-Fetischist. Falls es unklar ist, wir haben kein C#, sondern C89, also reines ANSI-C. 🙂
Oder habe ich hier was nicht verstanden? 🙂

@r00t:

erfolgt die speicherverwaltung nicht durch das os?
es wäre doch fatal wenn die berechnung von kapazität und verfügbaren restspeicher nicht gemanaged werden würde.

und du bist dir sicher dass windows 3.11 - ME den speicher nicht beobachtet?

Ja, die Speicherverwaltung. Aber was hindert es mich den Speicher zu killen? In WinME, 9x und älteren sollte ein bluescreen kommen mit einem schweren Ausnahmefehler. NT-Systeme werden auf jedenfall dein Programm killen. Du kannst wenns dir Spass macht auch in diverse Speicherstellen schreiben in der Hoffnung das du damit ein Programm schreibst und dieses abstürzt.

Wie Franknstein sagte, mit diesen Methoden, also dem Angriff des Speichers werden Bufferoverflows erzeugt. Wenn also bei einem Prog bekannt ist das es z.B. bei mehr als 3 mio. Zeichen abschmiert, dann müsste man dort nur solange Zeichen reinknallen bis es einen Bufferoverlow erzeugt hat und schwups stürzt das Prog ab. Wie man Speicheradressen mit reinem C oder C++ von Programmen genau ermitteln kann oder Speicherstellen von Variablen weiß ich leider auch nicht.

Code-Hacker

10.05.2004 - 18:22 Uhr

Hi!

Grundsatz: Alle C-Programmierer sind böse! 😁
Naja, zumindest sagt mein C-Dozent das wir ohne diese Sprache heute viel weniger Viren hätten. Ich gebe ihm da nur bedingt recht, da man das mehr oder weniger auch mit Assembler verwirklichen könnte, wobei das ja noch schwerer ist als C. Und so ein Skriptkiddie wird sich schneller in C zurechtfinden und es verstehen als in Assembler. Ich habe in den Vorlesungen aber mitlerweile erkannt warum C auch "Portabler Assembler" genannt wird.
Unser Dozent sagt auch immer an etwas kritischen Stellen, also wo es dann beispielsweise um knallharte Zeigerarithmetik geht: "Und jetzt wieder was für Hacker!". Und er hat damit nicht einmal unrecht.
Ein Beispiel. Die Funktion memcpy() aus der Header string.h bzw. cstring bietet die Angriffmöglichkeit schlecht hin sich den Hauptspeicher zu zerschießen, weshalb ich jedem der kein Linux und kein Windows-NT-System benutzt von folgenden Funktionsaufruf abrate:

memcpy((char*)0, (char*)0, 0xFFFFFFFF);

Dieser Funktionsaufruf dürfte euren Hautpspeicher killen!

@r00t:
Ich glaube meiner ist da schlimmer als seiner. Also ich war schon in Programmiererforen in denen dachten die echt ich wäre ein Hacker, waren irgendwie auch alle ein wenig dumm. Ich heiße immer hin nicht Hacker sondern Code-Hacker und da sollte doch ein deutlicher Unterschied zu erkennen sein.
Und wie ich mit dem Beispiel von meinem Dozenten wohl gezeigt habe sieht man wie einfach es ist etwas "kaputt" zu machen. Wer die Funktion intern kennt kann sie sich auch schnell selbst schreiben oder bei meinem Dozenten ansehen und wird sehen das dort reine Zeigerarithmetik stattfindet die ja immer direkt auf dem Speicher ausgeführt wird.
Deswegen ist es doch kein Wunder das nicht nur Hacker sondern auch Programmierer in verruf geraten und beschulditgt werden Viren zu programmieren, wobei wir alle Wissen das die Medien unrecht haben und Cracker die Bösen sind, hinter welchen allerdings auch wieder Programmierer stecken. Teufelskreis 🙁

Deswegen nerven mich diese Skriptkiddies wie das was am WE festgenommen wurde. Da hat ja ein 18 Jähriger diesen Virus programmiert und mit Hilfe seines Freundes in Umlauf gebracht hat. Name des Virus weiß ich gerade nicht, aber ihr wisst sicher alle was ich meine.

Ansonsten mal zu mir:
Ich bin 18 jahre alt, kein Hacker, Cracker oder Virenprogrammierer oder was euch sonst noch böses einfällt 😉.
Ich mache eine schulische Ausbildung zum TA Informatik und möchte danach eigentlich nur noch programmieren. Die Ausbildung ist ohnehin sehr stark darauf ausgerichtet. Also sehr viel Software und Programmieren und irgendwie macht mir zumindest das reine programmieren viel Spass. In den Ferien programmiere ich manchmal für eine Firma wobei ich auch immer noch andere Firmen suche wo ich arbeiten kann, in den Semesterferien.

Code-Hacker

10.05.2004 - 14:42 Uhr

Hi!

Ähm...wir haben mal beschlossen den Channel aufzulösen:
http://www.mycsharp.de/wbb2/thread.php?threadid=1399&sid=&hilight=IRC+Channel

@Admins:
Die angaben zum IRC sollten entfernt werden. Ich denke da muss man nicht warten bis alexander zurück ist?

Code-Hacker

10.05.2004 - 13:38 Uhr

Hi!

Natürlich. Es kommt ja nicht nur auf die Zeichen an sondern besonders auch auf die länge. Außerdem sieht dein pw da auch nicht schlecht aus.

Code-Hacker

10.05.2004 - 13:03 Uhr

Original von Franknstein
Das ist mir aber so zimlich egal! Das Passwort dient eh nur dazu, um Leute wie meinem Brunder von meinem PC fernzuhalten...

LOL!
Mein Vater meinte tatsächlich ich soll meinem Bruder Adminrechte geben....dieser kranke CS-Spieler kann schon froh sein das er nicht als Gast eingerichtet ist g. (Wobei Gastkonten gefährlich sind, habe damit einen Adminaccount gekillt irgendwie beim durchbrechen der Sicherheitsrichtlinie, weiß bis heute nicht genau wie ich das geschafft habe g)

Code-Hacker

10.05.2004 - 13:01 Uhr

Hi!

Sonne könnte der mal mitbringen. Ma haben hier in D ja net so viel davon, wenn auch gerade die Sonne scheint. Was auch noch ginge er nimmt für die 5 Tage unseren Regen mit ^^.

Code-Hacker

08.05.2004 - 23:22 Uhr

Hi!

Den Typ kannste ja ändern, genau wie den Variablennamen. Das war ja nur ein Beispiel. Aber hier mal für deine Klasse:

namespace EventAnalizer.Win32API.WindowName
{
	public class getWindowTitle
	{
		private string windowText; // <-- NICHT public!!!
		
		[ DllImport("user32.dll") ]
		static extern int GetForegroundWindow(); 

		[DllImport("user32.dll", EntryPoint="GetWindowText")]
		extern static int GetWindowText(int hwnd, StringBuilder s, int length);
		
		// Timer installieren
		// während seiner Ticks wird das WindowTitle des aktiven Fensters ausgelesen
		public void timer()
		{
			Timer t = new Timer(1000);
			t.Elapsed += new ElapsedEventHandler(tick);
			t.Start();
		}

		// auslesen des WindowTitle des aktiven Fensters
		private void tick(object sender, ElapsedEventArgs e)
		{
			int appWF = GetForegroundWindow();
			StringBuilder sb = new StringBuilder(256);
			GetWindowText(appWF, sb, sb.MaxCapacity);
			//Console.Out.WriteLine("{0}", sb.ToString(0, sb.Length));
			windowText= sb.ToString(0, sb.Length);
		}

 		public string WindowText // man beachte: WindowText != windowText !!!
		{
			get { return windowText; } // <---- hier wird der Inhalt von windowText zurückgegeben
			set { windowText = value; } // <---- hier wird windowText ein Wert zugewiesen
		}
	}
}

Wenn du in der Klasse bzw. Methode jetzt get oder set weglässt steuerst du sogar noch die Zugriffsrechte. Also wenn du die set-Zeile rausnimmst, kann deine Variable nur in der Klasse verändert werden und nicht von außerhalb, aber dafür gelesen werden. Wenn du die get-Zeile rausnimmst kann sie von außerhalb nur geschrieben werden und von der Klasse aus nur gelesen werden.

Wenn du das jetzt irgendwo aurufst geheht das so:

getWindowTitle myObject = new getWindowTitle();
myObject.WindowText = "Hallo"; // Der Variablen windowText wird der Text "Hallo" zugewiesen
System.Cosole(myObject.WindowText); // gibt den Text der Variablen windowText auf der Konsole aus

Ich denke das sollte anschaulich genug sein. 😉

Wenn du kein Buch hast empfehle ich dir "Visual C# - Schritt für Schritt", dort wird auch dieses Thema behandelt.

Code-Hacker

08.05.2004 - 18:49 Uhr

Hi!

Wir sind leider auch nicht allwissend wodurch es passieren kann das auch mal eine Frage unbeantwortet bleibt oder diese einfach untergeht, weil in anderen Threads gerade eine interessante Diskussion statt fand. Oder die Fragestellung unklar ist.

Gibt viele Faktoren wenn ein Thema nicht beantwortet wird. Ich habe auch schon Threads übersehen.

Code-Hacker

08.05.2004 - 15:16 Uhr

Hi!

Original von Franknstein
Kommt dann nicht eine Fehlermeldung von Windows, dass das Programm keine gültige Win32-Anwendung ist????

Nein! Es werden alle benötigten DLLs für das Programm aufgelistet. Selbst wenn diese reinkopiert würden kommen fehlen wiederrum neue.

@eddieromm:
Kannst du die genaue Fehlermeldung schicken? Es muss ja irgendwo im Code eine Ausnahme geworfen werden. Evtl. musst du dann mal um diverse Codeteile einen Try- und Catch-Block machen um diese Ausnahme zu fangen und gucken was du aufgefangen hast, also Fehlercode oder sowas.

Code-Hacker

08.05.2004 - 14:32 Uhr

Hi!

Normalerweise wird soetwas in C# über Properties geregelt, also mit get und set:

private int x;
public int X
{
  get { return x; }
  set { x = value; }
}

Dies ist etwas sicherer als die Variable einfach Public zu machen. Der Vorteil ist das du bestimmen kannst ob diese Variable sowohl gelesen als auch geschrieben werden darf, also eigentlich schon wieder public ist, wobei man selbst da noch diverse Beschänkungen machen kann, z.B. nur einen Wert einer bestimmten Größe aufnehmen lassen oder so. Du kannst somit natürlich auch bestimmen das diese Variable nur gelesen oder nur geschrieben werden arf, was beides ja manchmal ganz Sinnvoll ist. Wenn sie nur lesbar sein soll muss die set-Zeile gelöscht werden, ansonsten (nur schreiben) die get-Zeile.

Code-Hacker

06.05.2004 - 20:25 Uhr

Hi!

Original von Lynix
Das mag eine blöde Frage sein, aber hast Du auf dem anderen Rechner das .NET Framework installiert ?

Dann wäre die Fehlermeldung wahrscheinlich nicht "Unbekannter Fehler". Da eigentlich eine Auflistung von DLL-Dateien kommt, wenn das Framework fehlt.

Code-Hacker

06.05.2004 - 20:23 Uhr

Hi!

Original von Franknstein
Eine Frage: Geht das eigentlich in Windowsversionen die älter sind als Windows 2003???

Was meinst du genau? Worauf beziehst du dich?

Code-Hacker

06.05.2004 - 19:07 Uhr

Hi!

Hast du mal versucht den Hostnamen aufzulösen? Vielleicht scheiterts schon am Verbindungsaufbau, also in sofern als das die Gegenseite nicht gefunden wird.

Code-Hacker

06.05.2004 - 18:57 Uhr

Hi!

Schon mal in der MSDN nachgesehen? Da findet man nicht immer unbedingt was man sucht, aber manchmal stößt man per Zufall auf Beispiele die in etwa das machen was man benötigt, da es zur Darstellung einer Klasse oder eines Namensbereiches sehr gut dient.

Ich habe mal ein bischen gesucht in der lokalen MSDN. Außer das du die mal alles was mit Dateien zu tun hat ansehen solltest habe ich im besonderen folgendes gefunden:
AccessControlList-Klasse:
"Enthält eine Liste von Zugriffssteuerungseinträgen, die Zugriffsrechte für einen oder mehrere Vertrauensnehmer angeben."
AccessControlEntry-Klasse:
"Gibt Zugriffsrechte für einen Vertrauensnehmer (einen Benutzer, eine Gruppe oder einen Computer) für die Ausführung anwendungsspezifischer Implementierungen allgemeiner Aufgaben an."

Such mal nach diesen in der MSDN, ich denke das hilft weiter.

EDIT: Da mich das ein wenig interessiert wo man soetwas findet (sehr gut für ein Systemüberwachungstool) solltest du mal nach folgendem Begriff suchen, am Besten in einer lokalen MSDN:
"Datei Zugriffsrechte"
"Zugriffssteuerung" ("Erläutert die Grundlagen der Zugriffssteuerung in Microsoft Windows.") bzw. "Zugriffsmodell"

Code-Hacker

06.05.2004 - 18:36 Uhr

Hi!

Original von cdr

Original von Code-Hacker
BeendenButton

du meinst natürlich "beendenButton" ... bei "BeendenButton" denk jeder erstmal an eine Klasse ... 😉

Jope, meinte ich auch. Groß fange ich idR. Klassen und Namensbereiche an, diese sind zudem immer etwas länger. Funktionen eigentlich nicht und wenn gewünscht ist dies auch kein Problem. Wir sind ja flexibel. 🙂

Code-Hacker

05.05.2004 - 20:28 Uhr

Hi!

Original von Noodles
Ich habe das aus einem Buch, wo sie im Netz stehen weiß ich nicht.
Man soll nicht btnMeinButton schreiben sondern meinButton. Da man ie ober schon geschreiben, den Typ angezeigt bekommt, wenn man den Mauszeiger über die Variable hält.

Ich finde ohnehin das wenn man die Vorgabe (also button1) zu "Button" verändert und davor den eigentlichen Namen schreibt, wie BeendenButton erstens sehr gut sehen kann was der Button machen soll und das es ein Button ist sieht man auch. Die ganzen Abkürzungen wie btn usw. finde ich sowieso Schwachsinn, da es so viele Steuerlemente gibt und man sich gleich was anderes ausdenken muss wenn 2 die selbe Abkürzung haben könnten (was bei Delphi z.B. sehr leicht passieren kann, da die mehr Steuerelemente haben als nötig).

Code-Hacker

05.05.2004 - 20:22 Uhr

Hi!

Wenn ich mich recht erinner sollte das wie so vieles andere auch im Namespace System.DirecotyServices zu finden sein. Welche Funktionen/Klassen das sind musst du selbst nachsehen.

Code-Hacker