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

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

Mitglieder
» Liste / Suche
» Wer ist online?

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

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von mogel
Thema: Entwicklungsumgebung für .Net-Framework 3.5 Compact Edition gesucht
Am im Forum: Smalltalk

Zitat von trib
Wenn das CF aussterben soll, warum bring MS weiterhin laufend CE / Compact Versionen an den Markt?

Weil MS nur das Betriebssystem liefert, das Gerät aber von einem anderen Anbieter ist. Der hat das Gerät irgend wann für CE entwickelt und kann nicht den Entwicklungszyklus von ca. 2 Jahren einen komplette neue Version auf den Markt bringen. Mit W10 soll ja mal wieder alles anders und besser werden - glaube nicht daran. $BELIEBIGEFIRMA verdient nur wenn der alte Kram bewusst nicht mehr unterstützt wird.
Zitat von trib
Bei Windows Embedded Compact 7 kann ich VS2008 auch nicht mehr richtig verwenden. (Auf Gerät kompillieren oder Debuggen ist nicht mehr möglich)
Mit der Trial-Version kann ich wunderbar arbeiten. Gut, er kompiliert nicht auf dem Gerät (nur lokal) aber dafür kann ich super remote debuggen, was mit SharpDevelop nicht funktioniert (oder ich habe es noch nicht gefunden)

Thema: Entwicklungsumgebung für .Net-Framework 3.5 Compact Edition gesucht
Am im Forum: Smalltalk

Zitat von hummigbird1
Die Express Edition gibt es noch hier zu finden:
http://winfuture.de/downloadvorschalt,2088.html

weil damit kein CF möglich ist :) - ich habe ja 2010 Pro, damit geht es dummerweise auch nicht mehr - nur noch mit 2008
Zitat von FZelle
https://github.com/icsharpcode/SharpDevelop/wiki/Compact-Framework-Development
Warum nicht open Source benutzen?
Ich hatte mir zwar SharpDevelop angeschaut, aber anscheinend nicht richtig. Das erste Demo lief soweit gut. Werde da mal weiter drauf schauen.

Thema: Entwicklungsumgebung für .Net-Framework 3.5 Compact Edition gesucht
Am im Forum: Smalltalk

Moin,

ich suche genau das was im Titel angegeben wurde. Problem ist das ich Software für Win 7 Compact, also .NET 3.5 Compact schreiben muss. Ab 2010 hat ja MS das ja rausgeschmissen. Für das kleine Projekt würde ich ungern noch 1000€ für eine neue Lizenz ausgeben wollen.

danke, mogel

Thema: Broadcast mit mehreren Netzwerkkarten
Am im Forum: Netzwerktechnologien

Zitat von Abt
Keine Ahnung, was Du meinst.

Wenn Du einen Broadcast absetzt nimmt .NET irgend eine Netzwerkschnittstelle. Wenn Du (wie im Normalfall) nur eine Netzwerkkarte drinnen hast, das passt das auch. Wenn Du aber mind. 2 Netzwerkkarten drinnen (DVB-Karte/VPN/...) wird der Boradcast zwar über alle Netzwerkschnittstelle geschickt - aber mit dem falschen Absender. Unter 1.1 hat er bei mir immer die IP von der DVB Karte genommen.

@OP
  1. Liste der Netzwerkkarten abrufen
  2. auf jeder Netzwerkkarte einen Socket einrichten
  3. Broadcast über jeden Socket absetzen


  4. hand, mogel


    btw: 255.255.255.255 funktioniert nur wenn es im Gateway frei geschaltet ist

Thema: Best practice für Nachrichten-Logger: Viele Nachrichten performant *und* ohne Datenverlust speichern
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von andski
Um dies zu "lösen" müsste also jede Nachricht sofort in die Datei geschrieben werden. Das ging bisher jedoch nur auf Kosten der Performance. 100.000 Einträge dauerten somit ca. 15 Sekunden.

Da Du keinen Quelltext postest, vermute ich mal:
  1. log() - Aufruf
  2. Log-Datei öffnen
  3. Seek an das Ende
  4. Meldung schreiben
  5. Datei schließen


Das kostet richtig Ressourcen. Richtig wäre: Log-Datei am Programm Anfang öffnen, und nach jeder Meldung gleich flushen, Log-Datei nie schließen. Läuft bei mir nach diesem Prinzip seit Jahren.

Damit wirst Du auch keine Meldung verlieren.

Hand, mogel

Thema: Process startet nicht (Leere Konsole öffnet sich)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Du könntest Dir ja mal die Outputs ausgeben lassen. Im Moment vermute ich das da jemand auf eine Eingabe von Dir wartet

Thema: Parallel processing mit durch mehrere threads?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Moin,

Zitat von Konin
Ich schreibe momentan an einer PixelBotAPI.
für Tibia? zumindest hatte ich mal da den Gedanken....

Wie hast Du die Bewegung erkannt?
  1. bild(t-1) - bild(t) => diff1 && bild(t) - bild(t+1) => diff2
  2. diff1 U diff2 => menge (bzw. geänderte Bereiche)
  3. Segmentierung
  4. Templatematching(t-1) & Templatematching(t) => Bewegung
  5. [...Auswertung...]

ich vermute Gaus & Co. hast Du weg gelassen, da die Bilder schon perfekt sind
Zitat von gfoidl
Bei N logischen Kernen* können wirklich gleichzeitig auch nur N Threads ausgeführt werden.
bei X Threads die immer rechnen würde ich eher auf X ≤ N - 1 gehen, um dem BS und anderen Programmen auch etwas Platz zu gönnen
Zitat von gfoidl
Zitat
Ist es möglich mit einem Thread einen bestimmten CPU Kern anzusteuern?
[...]Dabei pfuschst du aber dem Scheduler vom Betriebssystem ins Handwerk und es ergibt sich oft ein eher nachteiliges Ergebnis.
bei der Aufgabe würde ich eher sagen macht es beim Prozessor Sinn. Das Ganze ist eine Mischung aus "wie arbeitet mein Programm" und "wie groß sind L1/L2/L3". Wenn der Cache nicht groß ist um 2 Bilder gleichzeitig vorzuhalten, dann ist es eher Sinnlos den Kern fest zunageln. Da sonst eh der Cache aus dem RAM jedesmal neu gefüllt wird, es also keine Geschwindigkeitsvorteile bringt.
Zitat von Abt
Somit dürfte ein GetPixel - sofern Du das nutzt - nicht Thread-Safe sein.
so lange er nur liest ist das egal - aber - GetPixel ist schrecklich langsam (genau wie SetPixel). Das gesamte Bild muss in Rohdaten vorliegen um halbwegs in Zeit die Bilder verarbeiten zu können. Aber da er ja den Screenshot abgreift, hat OP ja schon ide Rohdaten (außer er hat in der Tat ein BMP draus gemacht).

hand, mogel
Zitat von gfoidl
im Computer sind physische Kerne verbaut, diese können aber durch Techniken wie Hyperthreading als doppelt soviele logische Kerne verfügbar gemacht werden.
es lebe das Marketing :tongue:

Thema: [erledigt] Fehlende Antwort von Controller über RS232
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

port1.NewLine ="\x0D";

Wozu? Es kommen Bytes an. Wenn die Gegenstelle kein 0x0D sendet, dann kommt bei Dir auch "nichts" an.
  • Setze SerialPort.ReceivedBytesThreshold auf 1
  • setzte den entsprechenden Handler um das Event abzufangen
  • fülle im Event einen temporären Puffer mit dem Byte
  • wenn das entsprechende Paket voll ist, dann erzeuge ein eigenes Event und kopierst dabei die Werte aus dem temporären Puffer
Dann siehst Du zumindest schon mal ob überhaupt was zurück kommt. Wenn Du Dich auf des NewLine verlässt, siehst Du erst was wenn das NewLine gesendet wurde (wenn es überhaupt gesendet wird).

port1.WriteLine("\x13\x0D" + befehl + "\x0D\x11\x0D");
Wieso teilst Du dem Gerät mit das Du von ihm nichts empfangen willst, sendest dann was und sagst dem Gerät jetzt will ich was von Dir empfangen? Das ist eine eigenwillige Herangehensweise. Die beiden Steuerbefehle brauchst Du nur senden wenn Dein Puffer voll läuft. Ich glaube aber nicht das Du irgend wann auf der PC-Seite Probleme mit einem voll laufenden Puffer hast :) Das Problemkind ist eher die andere Seite - und der sagt Dir dann mittels Xon/Xoff ob er noch was von Dir empfangen will.

Ich weis jetzt nicht wie die SerialPort-Implementierung an der Stelle genau aussieht. Ob der SerialPort diese ankommenden Befehle entsprechend selber verarbeitet und Du Dich um nichts kümmern musst. Oder ob die Bytes durch gereicht werden. In letzterem Fall siehst Du bei der Verwendung von "NewLine" aber erstmal nichts. Bis der Xoff Befehl bei Dir angekommen ist, kann es sein das die Gegenseite zu gemacht hat, weil der Empfangspuffer voll ist.

Hänge parallel einen weiteren Rechner an die Datenleitungen und liest die reinen Daten aus. Also Baud & Co müssen passen, aber kein Handshake (weder Soft- noch Hardware!). Anzeigen lassen kannst Du Dir die Daten z.B. mit Term95. Allerdings musst Du aufpassen, Du kannst nur die Daten in einer Richtung sehen. Wenn Du die andere Richtung sehen willst, dann musst Du am parallelen Rechner Rx unt Tx tauschen (oder nimm einen weiteren Rechner/COM-Port ^^).

Ggf. beide GND mit einander verbinden.

hand, mogel

Thema: 6-Kern-CPU wird auch mit mehreren Threads nicht ausgelastet
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat
Was für eine Klasse BestThread ist, wissen wir nicht. Vermutlich enthält sie die Verarbeitungslogik. Es wird also wohl nicht ein Thread aus einem Thread heraus gestartet, sondern die Verarbeitungslogik aus einem Thread heraus. Das ist das gewünschte. Über den Klassennamen kann man natürlich streiten.
es hat etwas gedauert, aber Du könntest recht haben. Der Klassenname und der Methodenname lies mich in der Tat annehmen hier wird von Thread geerbt. Sollte das der Fall sein, werden 2 Threads gestartet. Ansonsten nur einer.
Zitat
Bei mir würden die Alarmglocken schrillen, wenn jemand schreiben würde, dass er seine Threads nicht synchronisiert. Synchronisieren bedeutet ja in diesem Kontext nicht "hintereinander ausführen", sondern "thread-safe machen".
doch - "thread-safe" kann aber dummerweise auch zu einem "hintereinander ausführen" führen. ThreadA hat BM, ThreadB wartet. ThreadA gibt BM frei, ThreadB fängt an und lockt BM, ThreadA wartet sofort wieder auf BM. Genau deshalb die "Alarmglocken". Genau deshalb erstmal prüfen ob sich das Problem überhaupt parallelisieren lässt.

hand, mogel

Thema: 6-Kern-CPU wird auch mit mehreren Threads nicht ausgelastet
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Mo in,

Application.DoEvents ist eine Behelfskrücke für Leute die sich nicht mit Threads auseinander setzen wollen. Nutze doch bitte Thread::Join() wenn Du auf das Ende der Threads warten willst.

Du startest einen Thread um einen Thread zu starten. Wozu??

Dann Schreibst du irgendwo das Du deine Thread synchronisierst. Da schrillen doch die Alarmglocken. Wenn du die Threads untereinander synchronisierst ist jeder Thread sinnlos. Prüfe doch bitte ob sich Dein Problem überhaupt parallelisieren lässt. Um wenn ja wie. Wenn es sich nicht parallelisieren lässt, dann kannst du noch so viele Kerne und Threads Haben, es wird aber nicht schneller.


Hand, mogel

Thema: TCP-Keepalive und Erkennen des Disconnect
Am im Forum: Netzwerktechnologien

Mo in,

Der Keep-Alive Timeout ist afaik auf einen sinnlos hohen Wert gesetzt. Musst mal in den Tiefen der RFC suchen.

Wenn garantiert ist das du immer im Sekundentakt etwas bekommst, dann reicht es wenn du nach drei Sekunden nichts die Verbindung für gescheitert erklärst. Ich mach das im Moment mit meiner RS485 Verbindung genau so.

Alternativ selber Ping-Pong spielen und den Keep-Alive simulieren.


Hand, mogel

Thema: UDP Kommunikation Performance Problem
Am im Forum: Netzwerktechnologien

Moin,

Zitat von akoh
Ein kleines Ferngesteuertes Auto mit einer CAM soll anhand des Video gesteuert werden können
Da Du an der Stelle eigentlich kein Zeitversatz gebrauchen kannst (Buffering), wird Dir nichts anderes übrig bleiben die Paket selber über UDP zu verschicken. Dabei musst Du dann jedoch damit leben das Paket (somit Teile des Bildes verloren gehen). Wenn Du die Größe der UDP-Pakete kleiner als MTU-Größe wählst ist das nicht tragisch.

hand, mogel

Thema: UDP Kommunikation Performance Problem
Am im Forum: Netzwerktechnologien

Moin, mein Senft dazu,

Zitat von akoh
Das Problem ist, dass die Clientseite so schnell schickt, dass der Reveiver Thread, obwohl er nur die receiveMethode ausführt nicht hinter her kommt und dadurch packete verloeren gehen.

Ich weiß das es an der Performance dieses Threads liegt, da ich schon auf der Clientseite mit einem sleep(...), dass ganze etwas gedrosselt habe und siehe da, alles kommt an wie es ankommen sollte.
Wer sagt das der Server zu langsam ist? Evt. könnte es auch an Deinem lokalen Netzwerk liegen. UDP Pakete werden verworfen weil etwas bei der Übertragung nicht stimmt bzw. etwas schief gelaufen ist. Das kann bei einem ausgelastetem Netzwerk auch eine simple Kollision auf der Leitung sein. Wenn Du die sende-Frequenz drosselst, dann reduzierst Du automatisch die Kollisionen. Kann auch sein das Dein WLAN-Router selber nicht die Datenmenge verarbeiten kann. (1)
Zitat
Gibt es vielleicht eine Möglichkeit den UDP-Thread auf ein Kern legen und die restlichen Threads auf den anderen. Habe aber dafür noch keine praktische Lösung gefunden.
Mit Thread-Prioritäten und Kernen rumzuspielen macht nur an zwei Stellen Sinn. Dein Problem gehört weder zum Thema Gameserver oder Bild/Daten-Verarbeitung.
Zitat
Wie machen es die Könner :) bei ihren Video-oder Audiostreamings?
Lösungen wurden schon genannt
-> Leben das Pakete verloren gehen
-> RTP Streaming verwenden und Bilder Zeitversetzt sehen
-> TCP verwenden (ist aber vom Hauptproblem abhängig)

Da du nicht genau schreibst was Du am Client mit den Bildern genau machen willst, gibt es auch keine besseren Lösungsvorschläge.

hand, mogel

(1) nur weil ein Protokoll behauptet das man damit 300MBit/Sekunde übertragen kann, muss das noch lange nicht vom Gerät unterstützt werden. Aktuelles Beispiel: RS485 kann lt. Spezifikation 12MBit - mein Gerät schafft aber nur 115kBit. Mehr ist technisch nicht machbar. Ergo -> auch ein WLAN-Router schafft nicht immer alles.

Thema: Message an Fensterhandle in einem Dienst
Am im Forum: Rund um die Programmierung

Moin,

mir stellt sich die Frage wieso wurde die DLL so ausgelegt das man damit nicht vernüftig Kommunizieren kann

Zitat von chilic
Ich will nicht, ich muss. Die DLL ist so ausgelegt, an der kann ich nichts drehen.
Du musst nicht, es geht nicht. Das Betriebssystem ist so ausgelegt, daran kannst Du nichts drehen ^^

Alles andere ist eine Verletzung der BS-Sicherheit. Das wurde zum Glück entfernt.

hand, mogel

Thema: [erledigt] unendliches überwachen eines logfiles
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Moin,

evt. wäre ein FileSystemWatcher der auf Änderung der Datei überwacht besser, als alle 100ms zu pollen ob sich die Datei geändert hat. Wenn es unbedingt Pollen sein muss dann ist ggf. 1000ms besser, da in der Zeit eh kaum ein Mensch was lesen kann.

hand, mogel

Thema: [erledigt] unendliches überwachen eines logfiles
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Moin,

Zitat von huanson
über die suche mit dem stichwort "logfile" habe ich bis seite 9 gesucht, jedoch nix gefunden

ist ja auch klar - Du willst das Logfile ja auch auslesen und nicht nur "Logfilen"

oder?, mogel

PS: Treffer erste Seite

Thema: Logging aus einer Berechnung
Am im Forum: Rund um die Programmierung

Zitat von pohlmann
[...] näheres dazu hier (Invoke)
besser ist Control.BeginInvoke-Methode (Delegate) - Invoke synchonisiert mit dem GUI Thread. Das bremst unter Umständen den BK aus.

hand, mogel

Thema: Java-Programm (.jar) mit Parameter aus C# heraus starten: Es öffnet sich nur ein leeres Fenster
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Moin,

Zitat von Squarew00t
Hat sich nun selbst geklärt... War meine eigene Dummheit, der Code soweit war aber korrekt.
Wäre schön wenn Du andere Suchende (die das gleiche Problem haben) an Deinem Erfolg teilhaben lassen könntest. Aber ich vermute Du hast java.exe durch javaw.exe erstezt.

hand, mogel

Thema: C erbt von B erbt von A: Aufruf von base.M in C.M ruft A.M auf, auch wenn B.M hinzugefügt wird
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Moin,

dass es recht komplexe Abhängigkeiten gibt (siehe [gelöst] VS10 - C# - Buildereignis vermisst: Reihenfolge des Compilierens mehrere Projekte), die VS nicht wissen kann ist mir klar. Wollte an der Stelle auch auf einen Spruch meines Profs hinaus: "Ab und zu muss man mal das Projekt aufräumen und alles nochmal erstellen".

Ansonsten kann man evt. eine Buildumgebung wie NAnt verwenden. Zur Not macht es auch eine Batch-Datei. Da kann man dann selber die Abhängigkeiten - auch von Dritten - explizit angeben.

hand, mogel

Thema: C erbt von B erbt von A: Aufruf von base.M in C.M ruft A.M auf, auch wenn B.M hinzugefügt wird
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Moin,

Zitat von Cat
Daher mußt du dann auch die SubChild-Assembly neu kompilieren.
eigentlich soltle das die IDE selber machen - aber nur eigentlich.

Ein kleiner Querveweis an Java, welche das Problem mal von einer ähnlichen Seite beleuchtet -> Eincompilierte Belegungen der Klassenvariablen

Thema: TrayIcon - bei Linksklick aufpoppender "Layer"?
Am im Forum: GUI: Windows-Forms

Moin,

versuch mal ein ContexMenü. Das Menü nimmt ToolStripItems entgegen. ToolStripItem erbt (direkt) von Component. Label, ProgressBar und PictureBox erben von Control, welches wiederum von Component erbt. Somit sollte das ContextMenü die entsprechenden Element selber enthalten können.

Quasi ein Control mit ein paar Label, ein Bild und einem ProgressBar (für die Kapazität). Und das Control dann dem ContextMenü hinzufügen.

hand, mogel

Thema: Socket empfängt unregelmäßig Daten
Am im Forum: Netzwerktechnologien

Moin,

2 Beiträge vorher -> Telnet: Datenpaket unvollständig?

hand, mogel

Thema: Telnet: Datenpaket unvollständig?
Am im Forum: Netzwerktechnologien

Moin,

AFAIR wird der Stream noch irgendwo gepuffert vor dem Senden.

	        this.__socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.NoDelay, true);
Zitat
Was ich gefunden habe, waren sog. Telnet-Befehle: GA (Go Ahead), etc.
was aber seltsame Effekte ausgelöst hat, weil ich da noch nicht ganz durchsteige.
dann lieber wirkllich Telnet implementieren, nur weil Du über Telnet die Ereignisse siehst ist es noch kein Telnet ;)

glaube das wars, mogel

Thema: Silverlight WP7: Liste an Computern im WiFi-Netzwerk abrufen
Am im Forum: Netzwerktechnologien

Moin,

Zitat von Felas
Das heißt im Klartext: Ich möchte auf Knopfdruck einmal alle Geräte im WiFi-Netzwerk suchen,
Da gibt es keine gescheite Lösung, weil Du theoretisch für jeden herstelle entsprechend was programmieren müsstest. Das einzige was halbwegs zuverlässig funktioniert (abgesehen von Firewall) ist ein Ping. Also alle IP im Netzwerk testen..............
Zitat
und über einen Socket einen Ping ins gesamte Netzwerk zu broadcasten, ähnlich, wie es mit dem Magic Packet geschieht, hat sich ebenfalls als nicht umsetzbar erwiesen.
ja - weil das in jedem Netzwerk deaktiviert ist (Smurf-Attacke)

hand, mogel

Thema: [gelöst] VS10 - C# - Buildereignis vermisst: Reihenfolge des Compilierens mehrere Projekte
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Moin,

ich erinnerte mich dunkel....

Zitat von talla
In den Eigenschaften der Projektmappe kannst du einstellen, welchen Projekt von welchen abhängig ist [...]
Das Stichwort war "Projektabhängigkeiten" und ist unter "Projekt" und NICHT unter "Erstellen" zu suchen. Das letzte mal als ich das nutze war VS2003.

danke, mogel

Thema: [gelöst] VS10 - C# - Buildereignis vermisst: Reihenfolge des Compilierens mehrere Projekte
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Moin,

Situation

Ich habe ein externes Projekt E. Dies stellt mir eine DLL mit verschiedenen Interfaces bereite (E-I) und eine DLL mit diversen Funktionen (E-F). Dann gibt es zu diesem Projekt Plugins (E-P1, E-P2, ... [E-Px]). Diese benötigen nur E-I.

Dann habe ich mein Hauptprojekt H, welches E-I und E-F benötigt. Die Plugins selber liegen in einem Unterverzeichnis von H. E-F reicht mir die Plugins E-Px die ich benötige durch und kümmert sich um die Instanzierung etc.

Problem

Das Problem ist das nach dem Build die Plugins E-Px in das entsprechende Unterverzeichnis von H kopiert werden müssen. Da aber nicht sichergestellt ist das E-Px vor H compiliert werden, kann ich in H das Post-Build-Event nicht verwenden. Sicher ist nur das E-I, dann E-F als Erstes (und Zweites) compiliert werden. Da H die Plugins E-Px auf Grund der Architektur gar nicht kennen darf, wird beim Build auch nichts kopiert.

Unter MonoDevelop kann ich im entsprechenden Pre-Run-Event ein Bash-Script starten das mir die DLL in das entsprechende Unterverzeichnis vor dem Programm start kopiert. Eben jenes Event fehlt mir für C# (oder ich finde es nicht). C++ hat noch einen "benutzerdefinierten Buildschritt", welcher eben genau das ist was ich für C# benötige.

hand, mogel

Thema: [gelöst] Werte in Registry verschwunden bzw. versteckt, wenn Programm als x86/32Bit übersetzt
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Moin,

Zitat von Kileak
Von einer 32Bit-Anwendung auf den 64Bit-Teil zuzugreifen ist in meinen Augen zwar nicht die feine englische Art, [...]
der Sinn, wieso MS in der Registry zwischen 32 Bit und 64 Bit trennt, erschließt sich mir nicht ganz. Ich habe die Registry bisher als Datenbank des System betratchtet wo alle relevanten Informationen drinnen sind. Und Informationen sind nicht an die "Bit-Breite" des OS gekoppelt - zumidnest in meinem wirren Kopf.
Zitat
pinvoke.net: regopenkeyex (advapi32)
Damit hat es funktioniert

danke, mogel

Thema: [gelöst] Werte in Registry verschwunden bzw. versteckt, wenn Programm als x86/32Bit übersetzt
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Moin,

Zitat von PPK
Ich vermute mal, dass das ein Problem mit 64bit-Systemen ist:
Ich denke, dass der Registrypfad
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion
ist und nicht
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
das vermute ich auch. Wenn ich da mit regedit rein schaue, dann fehlen da ein paar Werte - inkl. DigitalProductId.
Zitat
Was du aber gegen diese Änderung tun kannst, weiß ich nicht?
Ich mache erstmal Ketchup auf die Tischplatte und beiße da rein.
Zitat von Abt
Warum willst Du das direkt über die Registry machen?
Weil google bei "c# windows key" nur Registry-Tricks ausspuckte.
Zitat
Je nachdem welche Werte Du genau willst kannst Du das ganze auch über WMI oder direkt über C# machen, sodass Du hier etwas unabhängiger bist.
Dann bin ich ganz Ohr - ich brauche einfach nur den Windows-Key der Installation.

hand, mogel

Thema: [gelöst] Werte in Registry verschwunden bzw. versteckt, wenn Programm als x86/32Bit übersetzt
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Moin,

ich versuche gerade meinen Windows-Key auszulesen. Mit Google wird man auch schnell fündig. Allerdings funktionierte das Snippet nicht bei mir. Weil genau der Value "DigitalProductId" nicht gefunden wird:


RegistryKey rKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion");
foreach (String name in rKey.GetValueNames()) Logging.info("-> RKN: " + name);
byte[] rpk = (byte[])rKey.GetValue("DigitalProductId4", new byte[] { 0xde, 0xad, 0xbe, 0xff });

Ausgabe:
INF - -> RKN: CurrentVersion
INF - -> RKN: CurrentBuild
INF - -> RKN: SoftwareType
INF - -> RKN: CurrentType
INF - -> RKN: InstallDate
INF - -> RKN: RegisteredOrganization
INF - -> RKN: RegisteredOwner
INF - -> RKN: SystemRoot
INF - -> RKN: InstallationType
INF - -> RKN: EditionID
INF - -> RKN: ProductName
INF - -> RKN: CurrentBuildNumber
INF - -> RKN: BuildLab
INF - -> RKN: BuildLabEx
INF - -> RKN: BuildGUID
INF - -> RKN: CSDBuildNumber
INF - -> RKN: PathName

rpk enthält am Ende eben das Steak statt den Windows-Key. Mit etwas Googeln lässt sich auch eine Lösung finden, statt "x86" muss das Ding bei mir auf "AnyCPU" oder "x64" stehen. Und schon lässt sich der Key auslesen. Das Problem ist aber das ich "x86" benötige, da ich auf eine DLL zugreifen muss die nur in 32 Bit vorliegt.

Nun interessiert mich wieso ich von "x86" nicht auf alle Werte in der Registry zugreifen kann?!

hand, mogel

BTW: auch mit Adminrechten und x86 ist dies nicht möglich. Zumal das auch nicht sinnvoll ist, da es ein Benutzerprogramm ist und Adminrechte nicht benötigt werden.

Thema: Probleme bei der Speicherfreigabe
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von Leon Fuxfell
Es gibt ca 5000 Tiles die geladen werden. Auf der Platte sind das im Gesamten ca 2,5 MB. Und sie werden zwei mal geladen. Das kommt mir etwas viel vor.
sind die Tiles komprimiert oder als RAW-Datei auf der Festplatte? ... und wieso werden die Tiles 2 mal geladen - reicht einmal nicht aus?
Zitat
Gibt es denn keine möglichkeit den Stream von dem Imgae abzutrennen? (Oder auf anderem Weg Bilder ohne Stream zu verarbeiten)
ja - in dem Du das Bild auf Bild zeichnest und das Bild zerstörst (entwirren darfst Du) ... dann kannst Du den Stream zerstören ... alternativ kannst Du die Bild daten auch in einen MemoryStream stecken und von da das Bild erzeugen

hand, mogel