Laden...

Forenbeiträge von Coder007 Ingesamt 1.214 Beiträge

07.09.2011 - 19:18 Uhr

Aber da brauchst ja nur einbisschen googeln. Hier der erste Treffer:

Using WMI Class in C#

Wenn du eine Verbindung zu einem Remote Rechner aufbauen willst, brauchst ein ManagementScope Objekt (auch grad ergoogelt, weiß ich natürlich nicht auswendig). Aber das brauchst du in dem Fall ja gar nicht, weil du doch die Daten von den Netzwerkadapters deines Servers wissen wolltest, wo die Anwendung eh läuft?

07.09.2011 - 18:56 Uhr

Ja, WMI ist schon richtig. Was ist für dich der Status? Es gibt z.B. die WMI Klassen Win32_NetworkAdapter oder Win32_NetworkAdapterConfiguration. Musst halt schauen, wo du die Eigenschaften/Methoden findest, die du brauchst. Die Klasse Win32_NetworkAdapter hat z.B. die Methoden Enable und Disable.

07.09.2011 - 18:24 Uhr

Bearbeiten -> Erweitert -> Dokument formatieren. Standardshortcut ist Strg+E,D

Ob das wie in Eclipse für die Gesamtprojektmappe aber irgendwie geht, weiß ich nicht.

07.09.2011 - 18:21 Uhr

Das ist naheliegend, hat StefanG aber schon zweimal erwähnt.

07.09.2011 - 18:04 Uhr

Du schreibst, dass der Fehler in der Zeile

JsonString JsonObjekt = new JsonString(messwerte);

auftritt. Kannst du denn mit dem Debugger in den String reinschauen, ist er richtig?

07.09.2011 - 17:27 Uhr

Die Verzweigung ist mittels EventHandler bereits gelöst. Vermutlich liegt das Problem darin begründet das der EventHandler außerhalb der Methode nicht gültig ist!?

Doch. Also, du meinst, der Code wird nicht ausgeführt? Setz mal einen Breakpoint in den Event Handler und schaue, ob er ausgeführt wird.

07.09.2011 - 16:57 Uhr

Was genau sollen wir jetzt mit dem Code anfangen können? Was läuft nicht und was soll laufen? Du hast ursprünglich geschrieben, du willst eine Verzweigung einbauen, die prüft, ob das Storyboard fertig ist. Davon seh ich hier nichts.

07.09.2011 - 16:55 Uhr

Mir gings auch mehr um die Aussage "Interface instanziieren". Das macht überhaupt keinen Sinn und geht auch in Java nicht.

07.09.2011 - 15:56 Uhr

Naja, du könntest ganz einfach einen Event Handler schreiben, der eine Membervariable auf true setzt und da wo du das brauchst, die Variable abfragen. Oder hab ich deine Frage falsch verstanden?

07.09.2011 - 15:54 Uhr

@Foermchen82: wie BhaaL schon gesagt hat, das ist eine anonyme Klasse. Interfaces kannst du nicht instanziieren. Auch in Java ist eigentlich nur ein recht hässlicher Hack, weil es in Java keine Funktionen höherer Ordnung gibt.

07.09.2011 - 15:48 Uhr

Am besten auch gleich den betreffenden C++ Teil posten, zumindest die Methodensignatur und wie du den String erstellst und zurückgibst. So kann man nicht sagen, ob das zusammenpasst.

06.09.2011 - 21:51 Uhr

Ob das Programm nativ oder .NET ist, kannst du ganz einfach rausfinden, indem du das Programm mit Reflector oder einem ähnlichen Tool aufmachst. Wird sicher auch andere Möglichkeiten geben, das rauszufinden.
Wenn das nativ ist, könntest du z.B. mit depends schauen, ob irgendwelche Dlls oder Funktionen nicht gefunden wurden. Muss nicht weiterhelfen, wär aber denk ich ein Anfang.

30.08.2011 - 23:53 Uhr

Wenn Du mit Deiner Methode zwei sehr kleine Zahlen vergleichst sind die dann immer gleich und sehr große Zahlen sind es nie...

Warum? Ich berechne ja die Differenz. Die Differenz sehr großer Zahlen kann auch 0 sein, ich seh da kein Problem.

Man muss es also berechnen. Math.Abs muss man auch verwenden...
Von der Performance her dürfte dass nicht gerade besser sein, oder?

Ich denke, Math.Abs ist auf jeden Fall wesentlich performanter, als deine bedingten Sprünge und Multiplikationen 😉 Sofern das hier überhaupt eine Rolle spielt.

Ansonten sollte der Beitrag von gfoidl das Thema eigentlich erschöpfend erläutert haben.

30.08.2011 - 18:01 Uhr

Ich hätt eher sowas gemacht

return (Math.Abs(value - other) < 0.00000001);

Wieviele Nachkommastellen du da nimmst, bleibt dir überlassen. Ich würds auch nicht in Abhängigkeit der tatsächlichen Anzahl der Nachkommastellen machen.

28.08.2011 - 15:12 Uhr

Also, 1.2 MB für 4 Klassen find ich extrem viel. Hab grad mal geschaut, hab hier ein Programm drauf, da hat die exe 1.6 MB (sind noch etliche Assemblies), und allein in der exe sind hunderte Klassen.

Du hast eigentlich gar nicht gesagt, warum du die Threads brauchst und was sie machen. Ich würde mal spontan behaupten, was du machst kann man auch anders lösen, z.B. Producer-Consumer Problem oder ähnliches... Wenn nicht, beschreib doch bitte genauer, was du erreichen willst und warum du explizit sleep brauchst.

25.08.2011 - 22:38 Uhr

In der Praxis merkt man eigentlich gar nicht, wenn man es anwendet; dass C# Autoboxing unterstützt, merkt man erst, wenn man eine Sprache verwendet, die das nicht unterstützt, z.B. Java.

Java unterstützt seit Version 5 ebenfalls Autoboxing. Nur funktioniert es immer noch nicht so "schön" wie in C#. (Ich finde sowas in Java generell ziemlich verkramft, aber das ist ein anderes Thema...

25.08.2011 - 21:43 Uhr

Das ist keine Idee, und das kannst du nicht einsetzen. Das passiert immer, wenn du einem Object einen Valuetype zuweist. Das passiert einfach und das musst du wissen. Wobei, wenn du so willst, dann musst du Unboxing selber einsetzen, wenn du aus dem Object den Wert wieder rauskriegen willst, indem du castest.

25.08.2011 - 21:06 Uhr

"Mal was davon gehört zu haben, ohne das man einen Anwendungsfall kennt kann nicht das Ziel sein" ...

Das ist die falsche Einstellung, zumindest in dem Fall. Die Grundlagen musst du absolut sicher beherrschen, sonst hast du keine Ahnung, was du machst/was passiert. Und grad Boxing/Unboxing ist etwas, was doch recht häufig vorkommt, auch wenns dafür mittlerweile wenige sinnvolle Beispiele gibt. Eins kann ich dir aber nennen:

Dictionary<string, object>. So ein Konstrukt sieht man dann doch relativ häufig, um generische Eigenschaften zu speichern. Wenn du jetzt als Wert sagen wir eine Zahl speicherst, kommt es boxing/unboxing.

23.08.2011 - 14:56 Uhr

Ich hatte so ein Problem auch mal, kann dir aber leider nicht weiterhelfen, ich weiß nicht mehr, wie ich das gelöst habe. Das war glaub ich etwas recht kurioses, vielleicht eine Breite, die nicht ohne Rest durch 4 teilbar war oder irgendsowas... Kam dann auch so ein Generic GDI+ Error 2.

21.08.2011 - 18:00 Uhr

BUFFER TOO SMALL ist kein Fehler. Das ist typisch für die Windows API, wenn eine Funtion out Parameter vom Typ "String" hat, dann wird sie üblicherweise zweimal aufgerufen. Beim ersten mal wird dann die Größe des benötigten Speichers abgefragt, dann wird entsprechend viel Speicher reserviert und die Funktion wird nochmal aufgerufen.

20.08.2011 - 16:53 Uhr

Genau, Skype verwendet UDP Hole Punching, wie in MarsStein in dem anderen Thread schreibt. Wenn du dir das recht überlegst, gibt es keine Möglichkeit, für sowas eine allgemeine Bibliothek zu schreiben. Die Router sind abgeschlossene Blackboxen, die sich meist nur über eine Weboberfläche konfigurieren lassen. Es gibt keine definierte Schnittstelle, um z.B. Ports weiterzuleiten. Und erst recht gibt es keine einheitlichen Weboberflächen, die man routerunabhängig ansteuern könnte.
Was manchmal geht, ist UPNP. Aber das können nicht alle Router und selbst wenn, ist es oft deaktiviert, wie bei mir auch.

18.08.2011 - 23:32 Uhr

Es gibt etliche gute Syntaxhighlighting Komponenten. Das kriegst du mit einer Richtextbox nicht so sauber hin. Das mag im ersten Moment sicher funktionieren, wird aber nie optimal sein, und wenn der Text etwas länger wird, wird es auch sehr inperformant werden. Und das es dafür nicht geeignet ist, sieht man ja auch schon ganz deutlich daran, dass du irgendwelche Workarounds bauen musst. Nimm einfach eine andere Komponenten, dazu gab es hier im Forum schon einige Threads. Außerdem ist es kein Bug, sondern Absicht und macht auch Sinn.

18.08.2011 - 20:43 Uhr

Ist es nicht so dass MS Sql Express nur eine aktive Verbindung zulässt? Wär doch dann auch nicht für den betrieblichen Einsatz ungeeignet, zumindest wenn gleichzeitig darauf zugegriffen werden muss.

Nein.

18.08.2011 - 16:35 Uhr

Die veränderten Eigenschaften von MS Office Dateien werden nicht direkt von shell32 ausgelesen. Dafür gibt es Shell Extensions, das sind Plugins, die eben von Ms Office kommen, oder bei Windows evtl. auch schon standardmäßig dabei sind, weil alles Ms ^^

18.08.2011 - 16:23 Uhr

Die Handle Grenze liegt eher bei paar tausend, sicher nicht bei Millionen. Ich bin mir nicht mehr sicher, wie sich diese Shell Funktionen verhalten. Am besten ist es, das Handle von der IconList anzufordern, und dann jeweils den zu einer Datei passenden Index. Aber ich bin mir eben nicht sicher, ob du wirklich jedesmal ein neues Handle kriegst, wenn du wirklich ein Icon Handle anforderst.

17.08.2011 - 23:24 Uhr

Das einfachste wäre, direkt mit den Strings zu arbeiten, und z.B. am Anfang den Basispfad zu löschen, entweder mit Remove oder Replace.

17.08.2011 - 13:00 Uhr

Reicht dir das DrawItem Event nicht?

17.08.2011 - 10:56 Uhr

Vielleicht noch zusätzlich zu dem, was herbivoir in dem verlinkten Thread geschrieben hat. Einfach weil ich es NICHT WILL. Für mich ist es ein wichtiger Argument. Ich bin generell kein Fan von Webanwendungen, auch wenn ich einsehe, dass sie ab und zu ganz nützlich sind. Aber ich habe noch mit DOS gearbeitet, und ich arbeite sehr viel mit Linux, und ein Computer ist für mich kein einfaches Terminal, der auf irgendeine Webanwendung zugreift, wo ich 2-3 Workflows nacharbeiten kann, die sich der Anbieter vorgestellt hat. Für mich ist es keine Lösung und keine Alternative zu herkömmlichen, lokalen Anwendungen.

16.08.2011 - 20:37 Uhr

Das läuft auf die übliche Screen-/webscrapping Geschichte hinaus. Da gibt es sicher schon einige Threads zu dem Thema. Hab die Seite kurz aufgemacht, anscheinend bieten sie keinen RSS Feed. Dann wirst du die Informationen wohl aus dem HTML Quellcode extrahieren müssen. Ist nicht sehr sauber und zuverlässig, und wenn sie mal das Layout ändern, dann wirst deinen Code anpassen müssen. Und inwiefern sowas erlaubt ist, ist auch fraglich. Wird zumindest drauf ankommen, was du mit deinem Programm vorhast. Im Endeffet würde ich dir aber davon abraten, der Aufwand übersteigt hier meiner Ansicht nach den Nutzen. Wenn schon, dann such dir lieber eine Seite, die RSS Feeds anbietet, und vielleicht kannst dann auch einen fertigen Feed Reader nehmen, der dir gefällt, anstatt selber einen zu schreiben.

16.08.2011 - 16:08 Uhr

Möglich ist es schon, aber was hat es mit WPF zu tun? Willst du sie anzeigen? WPF hat eine Browser Komponente. Alles andere ist eine gerenelle C# Frage und hat nichts mit WPF zu tun.

16.08.2011 - 15:55 Uhr

Oder verstehe ich die 'Dateieigenschaften' überhaupt nicht?

Ja, das vermute ich fast 😉 Einerseits schreibst du von Dateieigenschaften, andererseits von XML und Office Dateien. "Zuletzt geändert" ist eine Eigenschaft der Datei an sich, die im Dateisystem abgelegt wird. Da gibt es keine Benutzerdefinierten Eigenschaften. Sowas wie Autor usw., was MS Office noch zusätzlich speichert, wird in NTFS in ADS gespeichert, ist aber keine Dateieigenschaft und nicht portabel. Sowas kannst du natürlich auch realisieren, wenn du magst. Was du mit Eigenschaften von XML Dateien meinst, weiß ich nicht.

15.08.2011 - 17:44 Uhr

Ich habe kein ValueMember angegeben.

Ja, das habe ich eben vermutet. ( Dann war ich aber essen 😃

15.08.2011 - 16:54 Uhr

Doch, das muss gehen. Wie hast du denn das Binding definiert?

15.08.2011 - 15:59 Uhr

Ich weiß nicht wieso die Klasse nicht definiert sein sollte, ich benutze doch Standard Windows Bibliotheken.

Nein. Ich kenn mich mit dem IIS zwar nicht aus, aber mit Windows hat das wenig zu tun und gehört wenn, dann zum IIS. Der Fehler deutet darauf hin, dass irgendeine Komponente nicht installiert wurde. Schau mal, ob du alle optionalen IIS Komponenten, die du brauchst, auch installiert hast.

15.08.2011 - 15:55 Uhr

Ich versteh nicht ganz, was du meinst. Wenn du ein eigenes Control schreibst und z.B. von UserControl ableitest und die OnPaint Methode überschreibst, dann solltest du normal auch im Designer sehen, was du da zeichnest.

14.08.2011 - 17:58 Uhr

Mit sowas musst du vorsichtig sein. Es kann gut sein, dass der Profiler verhindert, dass die Properties inlined werden können. Dann kriegst du verfälschte Messergebnisse.

14.08.2011 - 17:56 Uhr

Das sind die Gruppen, steht doch ganz klar dabei.

14.08.2011 - 17:40 Uhr

Und warum schaust du nicht einfach in die Doku?

Regex-Klasse

14.08.2011 - 17:08 Uhr

Also, zum einen ist Tortoise SVN nur der Client, was du zur Versionsverwaltung nutzt, ist Subversion.

Und dann, wo ist das Problem? Das habe ich natürlich auch so, dass alle Repositories in einem gemeinsamen Verzeichnis liegen, dass ich auch sichere.

14.08.2011 - 16:41 Uhr

Das schwirige bei WMI finde ich heraus zu finden welche Befehle es gibt.

Dafür gibt es die Doku. Außerdem sind die WMI-Klassen ja keine Blackboxes, sondern du kannst jede Klasse abfragen, was für Eigenschaften und Methoden sie hat. z.B. entweder mit wmic auf der Kommandozeile oder mit wbemtest grafisch. Oder eben in die Doku schauen.

13.08.2011 - 15:47 Uhr

Wieso sollte das System von Reflektion untergraben werden Wenn man dynamisch erzeugte Typen mit dieser reflektieren kann? Das ergibt keinen Sinn, es würde eher Sinn ergeben zu sagen das das System von Reflektion untergraben wird wenn es Typen im Typsystem gibt die nicht mit Reflektion untersucht werden können!

Ok, das ist wohl Ansichtssache. Für mich ist C# keine dynamische Sprache, deswegen will ich mit Reflection auf den eigentlichen Typen, in dem Fall ExpandoObject zugreifen, und der Typ ist ja schon zur Kompilierzeit "fertig". Wenn ich mit Reflection auf die dynamischen hnzugefügten Member zugreife, ist es eine Erweiterung des Reflection Konzepts. Ich finde, dass es damit ausgetrickst wird... Aber anscheinend bist du anderer Meinung, also wohl Ansichtssache...

12.08.2011 - 22:22 Uhr

Wie gesagt, das würde alles das Prinzip von Reflection untergraben. Die einzige Möglichkeit, die mir einfällt, ist wirklich einen neuen Typ dynamisch zur Laufzeit zu erstellen, z.B. mit Reflection Emit oder Mono Cecil. Aber das ist ein ziemlicher Overkill.

12.08.2011 - 21:58 Uhr

So wie ich das sehe, gibt es keine Möglichkeit. Das würde auch das Konzept brechen. Reflection ist eben Reflection und soll Zugriff auf den eigentlichen Typen bieten. Wenn du z.B. von DynamicObject ableitest, und "dynamisch" Properties zur Verfügung stellst, bietet das Laufzeitsystem eben einen Mechanismus, auf diese Eigenschaften zuzugreifen. Diesen Mechanismus nutzt du auch, wenn du das dynamic Schlüsselwort verwendest. Wenn du nun auf dem Objekt GetType aufrufst, ist der Typ DynamicObject und DynamicObject hat diese dynamischen Eigenschaften natürlich nicht.

12.08.2011 - 21:32 Uhr

Wenn das Programm nur Reflection nutzt, wird es glaub ich nicht gehen. Hast du Zugriff darauf, kannst du es erweitern? Dann könntest du wie gesagt ICustomTypeDescriptor nutzen. Das könnte in etwa so ausschauen:


void method(object parameter)
{
  ICustomTypeDescriptor td = parameter as ICustomTypeDescriptor;
  if (td != null)
  {
    var properties = td.GetProperties();
    ...
  }
  else
  {
     //use reflection
  }
}

12.08.2011 - 20:31 Uhr

Was zu realisieren? Was genau willst du denn erreichen, warum brauchst du PropertyInfo Objekte? Mit dynamic könntest du ja folgende Syntax erreichen:

string value = dynamic.MyValue;

Also, einfach auf die Eigenschaft zugreifen, ohne dass der Compiler sie kennt. Intern könntest du sie z.B. in einem Dictionary verwalten.
Du könntest aber auch die Schnittstelle ICustomTypeDescriptor implementieren, damit hättest du auch dynamische Eigenschaften, nur nicht so elegant und transparent.

11.08.2011 - 11:15 Uhr

Warum sollten neue Startups entstehen? Was soll daran gut sein? Überhaupt finde ich den Namen Startup irreführend. Ein Startup ist für mich ein Unternehmen, mit einer neuen, eigenen Idee. Wenn jetzt jemand eine Idee für sagen wir, eine superschnelle graphenorientierte Datenbank hat, die es vermarkten will, dann kann er von mir aus ein Startup gründen. Das schadet niemandem, der Markt und die Qualität wird dann entscheiden, ob das Produkt ankommt oder nicht. Aber wenn man sich denkt, ah, ich kann ein bisschen C#/Java, kann zwar jeder andere auch, aber ich hab keine Lust für jemanden zu arbeiten, ich mach einfach meine eigene Firma auf, dann ist es für mich kein Startup.

11.08.2011 - 10:15 Uhr

Ich muss sagen, ich seh dass diese Mentalität nach dem Studium genauso weitergeht. Ich kenne etliche kleine Softwarefirmen, die aus 4-5 Studenten bestehen, die sich sofort nach dem Studium zusammengeschlossen haben und sich als professionelle Softwarenetwickler verkaufen. Ja, die können programmieren und haben schon etwas Erfahrung. Aber in diesen ganzen Firmen fehlt dann doch oft das KnowHow und das Niveau eines größeren Softwarehauses mit vielen Referenzprojekten und Seniorentwicklern. Verlangt wird genauso oder mehr (weil, junges, dynamisches Team, ist ja klar, muss besser sein) und was rauskommt, ist meist etwas, was grad eben noch den Vertrag erfüllt, aber in 1-2 Jahren reif für die Tonne ist, weil nicht durchdacht und nicht wartbar. Solche Projekte musste ich auch schon oft genug in mehreren Firmen ausbaden.

10.08.2011 - 21:47 Uhr

Das geht in Windows Forms nicht direkt. Ich würde eine Zwischenklasse für die Anzeige definieren, die alle benötigten Eigenschaften direkt enthält.

10.08.2011 - 21:16 Uhr

Das ist mir schon klar, dass es einzelne Fälle gibt, wo man als Student mehr verdient. Gerechtfertigt finde ich das aber nicht. Allein aus deinen Ausführungen sehe ich, dass die Firma keine Ahnung hat. Und ob man in so einer Firma besonders wertvolle Erfahrungen sammeln kann, ist auch fraglich. Dann vielleicht doch lieber in eine Firma gehen, wo man mehr als einen Tag Einarbeitungszeit braucht, dafür aber was lernt.
Ich bin auch mit 45000 eingestigen (Bayern). Musste aber erst suchen. Viele Firmen haben mir tatsächlich nur 36000 als Einstiegsgehalt angeboten. Das sind 18.75€/h, und man zahlt deutlich mehr Steuern, als ein Student. Ich hatte es nicht nötig, so ein Angebot anzunehmen, aber sehr viele werden es tun. Und wenn man "viel" Geld bekommt, dann heißt es für mich einfach, dass die Firma keine Ahnung hat. Eine kleine Firma kann sich kein überdurchschnittliches Gehalt leisten. Und meist wissen sie auch, dass sie jemanden finden, der billiger arbeitet und nicht unbedingt schlechter ist. In einer großen Firma ist der einzelne weniger Wert und kriegt deswegen auch kein übermäßig hohes Gehalt. Wenn man schon 50 Entwickler oder mehr hat, dann wird man höchstens einem sehr erfahrenen Entwickler ein hohes Gehalt zahlen, der dann die Projektleitung übernimmt. Und da braucht man erst recht keinen Studenten mit dem Gehalt eines Vollzeitangestellten.

10.08.2011 - 20:39 Uhr

@MrSparkle: Der Threadersteller [des ursprünglichen Threads] ist aber eben kein Selbständiger, sondern Student. Und da finde ich das schon sehr gewagt, einen Stundensatz zu verlangen, den kaum mal ein Festangestellter bekommt. Wenn man einem Studenten denn das ganze überhaupt zutraut, denn bei einem Studenten trägt man aus vielerlei Gründen ein wesentlich höheres Risiko.

@Equilibrium: Du hast natürlich Recht. Trotzdem muss jeder Student da mal durch. Ich behaupte einfach mal, dass ich vor dem Studium mehr wusste, als so mancher nach dem Studium. Trotzdem habe ich auch nur 10-12€ verdient, was auch schon mehr war, als die meisten meiner Komillitonen verdient haben. Als Student ist man einfacher weniger zuverlässig, man ist nicht immer da, wenn man gebraucht wird, wenn Prüfungen schreibt, ist man teilweise wochenlang weg usw. Und auch wenn man als Student vielleicht schon viel weiß, hat man meist doch nicht die große Erfahrung in richtigen Projekten, wo es oft ganz anders läuft und andere Schwerpunkte gelegt werden.

@malignate: Ich weiß nicht, was du für Vorstellungen hast. Ich kenn jetzt nun wirklich niemanden, der als Student 18€/h verdient hat. Das durchscnittliche Einstiegsgehalt eines studierten Informatikers liegt drunter, je nach Bundesland. So gut wie keiner wird das einem Studenten zahlen. Und warum willst du nur 8h pro Woche arbeiten? Ich hatte neben dem Studium deutlich mehr Zeit. Ich glaube nicht, dass irgendjemand an einem Mitarbeiter interessiert ist, der 1h pro Tag arbeitet, oder 1 Tag pro Woche. Was willst du in der Zeit überhaupt nützliches schaffen? Auf der Basis kann man sich das gleich sparen.