Ja, stimmt. Hab übersehen, dass die Einträge oben Teil der Liste sind.
... oder nur c:\foo - denn das ist die gemeinsame Basis.
Aber genau das wäre doch die Lösung für Dein Problem:
Die exe setzt die Variable(n) und ruft dann per cmd die Batch-Datei auf, die alle geänderten Umgebungsvariablen erbt.
s. z.B. hier Template SerialPort
Aber auch die Doku :rtfm: zu SerialPort ist hilfreich.
Schließlich wirst Du hier im Forum zu diesem Thema auch einiges finden.
Z.B. wenn ich auf eine bestimmte Anzahl von Daten im Receive-Buffer des Com-Ports warte, soll die Warteschleife nach 500ms abgebrochen werden.
Dafür gibt es bspw. die Eigenschaft "ReadTimeout" der SerialPort-Klasse.
Etwas wie "Warteschleifen" solltest Du auch nicht verwenden. Im Unterschied zur Mikrocontroller-Programmierung gehört der Prozessor nicht nur einer Anwendung oder einem Vorgang (Thread). Stattdessen erfolgt die Entwicklung eher "ereignisgesteuert" (wenn eine Aktion durch die GUI ausgelöst wird, wenn ein IO-Vorgang beendet ist [erfolgreich oder fehlgeschlagen]).
Die variablen, die dann beim random ausgegeben werden sind alle gleich ( manchmal ist eine anders ) .
Dein Fehler ist ja in erster Linie dass Du sehr schnell hintereinander neue Random-Instanzen erzeugst. Du brauchst hier ohnehin nur eine. Ich nehme an, den Link von DMDoniz hast Du nicht gelesen?
Trotzdem kann es natürlich vorkommen, dass mehrfach "zufällig" die selbe Zahl gewürfelt wird. Das musst Du also prüfen und neu würfeln.
Dann steck die Schleife mal in einen try/catch Block und lass Dir Exceptions ausgeben.
Habe nun festgestellt, dass er eine schon fertige Datei nochmals neu schreibt. Obwohl diese bereits schon fertig ist.
Dann verwende den Debugger oder Logging, um den gesamten Ablauf nachzuvollziehen. Ist denn z. B. die ReadFiles übergebene Liste korrekt?
Wo genau steht denn das Programm, wenn es hängt?
Das kann eine Reihe von Gründen haben - s. [FAQ] Programm läuft in anderer Umgebung nicht (richtig)
Da macht er irgendwas falsch.
Das ist keine sinnvolle Beschreibung. Was gibst Du ein, was erwartest Du, was passiert?
Was bisher hier nicht beachtet wurde ist der "Console.WriteLine" Aufruf im Callstack.
Davon wurde hier berichtet:
http://stackoverflow.com/questions/27164538/console-writeline-throws-not-enough-storage-is-available-to-process-this-comman
Leider ohne Lösung. Evtl. ist der dort verlinkte Artikel hilfreich.
Oder der
Not enough storage is available to process this command
Falls hilfreich, solltest Du hier Deine Lösung posten.
Ohne Code lässt sich kaum noch etwas dazu sagen.
Der Artikel begann mit (ich habe noch eine Kopie offen 😃)
At Connect(); in November, Microsoft is launching a preview of Visual Studio for Mac. This is an exciting development, evolving the mobile-centric Xamarin Studio IDE into a true mobile-first, cloud-first development tool for .NET and C#, and bringing the Visual Studio development experience to the Mac.
A New Member of the Visual Studio Family
At its heart, Visual Studio for Mac is a macOS counterpart of the Windows version of Visual Studio. If you enjoy the Visual Studio development experience, but need or want to use macOS, you should feel right at home. Its UX is inspired by Visual Studio, yet designed to look and feel like a native citizen of macOS. And like Visual Studio for Windows, it’s complemented by Visual Studio Code for times when you don’t need a full IDE, but want a lightweight yet rich standalone source editor.
Below the surface, Visual Studio for Mac also has a lot in common with its siblings in the Visual Studio family. Its IntelliSense and refactoring use the Roslyn Compiler Platform; its project system and build engine use MSBuild; and its source editor supports TextMate bundles. It uses the same debugger engines for Xamarin and .NET Core apps, and the same designers for Xamarin.iOS and Xamarin.Android.
Compatibility is a key focus of Visual Studio for Mac. Although it’s a new product and doesn’t support all of the Visual Studio project types, for those it does have in common it uses the same MSBuild solution and project format. If you have team members on macOS and Windows, or switch between the two OSes yourself, you can seamlessly share your projects across platforms. There’s no need for any conversion or migration.
Hallo,
bliebe noch zu ergänzen, dass man wohl Edge verwenden muss. Zumindest funktioniert es nicht mit Chrome, vermutlich wegen der Überprüfung, ob man auch wirklich als "Insider" registriert ist.
... und natürlich [FAQ] NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt
Außerdem [Hinweis] Wie poste ich richtig? 4.1 und 4.2.
netsetman wäre einen Versuch wert. Laut Liste kann es die hosts-Datei anpassen. Ich kann aber nicht bestätigen, ob und wie es funktioniert, da noch nicht gebraucht. Ggf. könnte man zwischen verschiedenen Kopien der Datei per Skript umschalten.
WLAN-Profile umzuschalten hat bei mir mit dem Tool leider nicht richtig geklappt.
Hallo,
kann es denn sein, dass so viele Verbindungen gleichzeitig offen sind (von anderen Nutzern)?
Bei PC's wo ich nicht die Möglichkeit habe diese Einstellung zu ändern, kann ich da Überprüfen ob Verbindungen frei sind und vllt sogar wie viele?
Das wird Dir im Fall der Fälle nicht wirklich nützen, da zwischen Prüfung und Verwendung die Situation schon wieder anders sein kann. Besser ist es den tatsächlichen Fehlerfall abzufangen und davon ausgehend nochmals zu probieren.
Leider fällt mir beim besten Willen nicht mehr ein, was ich nun geändert habe oder wo ich noch suchen soll.
Du nimmst Deine Versionsverwaltung und überprüfst alle Änderungen ausgehend von der letzten Version, in der das Problem nicht bestand.
Ist es richtig, dass Du immer 0x0 ausgibst? Sollte nicht die Richtungsinformation erhalten bleiben und nur das Pulsbit alternieren?
Hast Du denn mal ohne Virenscanner probiert?
Der Anwender kann mit der Datei in verschlüsseltem Zustand nichts anfangen. Bleibt sowieso noch das Problem, dass er den Zeitstempel seines Rechners zurücksetzen könnte und dann wäre auch die Restriktion der 24h hinfällig.
Es reicht aus, einmalig eine Sicherheitskopie der Datei zu erstellen, und diese vor jedem Start per Batch wiederherzustellen.
Muss der erzeugte "ViewStream" tatsächlich nicht aufgeräumt werden (Dispose, using)?
Hallo,
falls es sich um die Klasse BackgroundWorker handeln sollte (die Frage ist in der Beziehung etwas, nun ja, lax), so kann man die Exception im RunWorkerCompleted Ereignis abfragen.
Sollte es sich nicht um den BackgroundWorker handeln, kann man sich dort aber abschauen, wie man's machen könnte.
Hallo,
diese Frage wäre höchstwahrscheinlich im Support-Forum von SharpDevelop deutlich besser aufgehoben.
Hallo,
Das Fenster wird geladen, angezeigt, ich kann es auch bedienen. Aber: das Objekt "settings" bleibt null und es erscheint keine MessageBox (welche ich zu Debug-Zwecken eingefügt habe).
Dafür verschluckt sich irgendwas am XAML-Reader, wenn ich meine XML-Datei auslese
Das zweite ist der Grund für's erste: In Deinem "settings = new SettingsDialog.Settings();" tritt eine Exception auf, die dazu führt, dass settings nicht gesetzt und die MessageBox nicht angezeigt wird.
Nebenbei bemerkt ist die MessageBox eher keine gute Technik zum Debuggen. Willst Du wissen, ob das Programm durch Window_Loaded kommt, setzt Du da an den Anfang (wie auch die MessageBox oder Logging am Anfang hilfreicher gewesen wäre) einen Haltepunkt. Siehe auch: [Artikel] Debugger: Wie verwende ich den von Visual Studio?
Hallo,
man könnte per Windows-API oder WMI den erstellenden Prozess (explorer, cmd, devenv) feststellen. Suche bspw. nach "C# parent process name". Das fertige Snippet kannst Du ja dann hier posten.
Hallo,
Wenn ganz oben anstatt "192.168.10.255" die IP-Adresse des Servers "192.168.10.42" verwendet wird, funktioniert auch das Empfangen des Packetes.
Wo liegt hier der Fehler?
am "client.Connect" - weglassen und stattdessen den IPEndPoint beim Senden verwenden.
UDP an sich ist verbindungslos, Connect hat eine sehr spezielle Funktion (s. MSDN) und wird äußerst selten notwendig.
Hallo,
Du könntest versuchen, Visual Studio mit Visual Studio zu debuggen. Ggf. bekommst Du dann eine Exception.
Auch wäre es sinnvoll, alle Erweiterungen in Visual Studio testweise zu deaktivieren.
Schließlich könnte das helfen: [Tutorial] Vertrackte Fehler durch Vergleich von echtem Projekt mit minimalem Testprojekt finden Du könntest anfangen, die .cs Datei nahezu komplett zu leeren. Und/Oder Dein ViewModel.
Hallo,
das ist sicherlich falsch:
xmlns:="clr-namespace:myapp.tabs"
Vermutlich soll es
xmlns:tabs="clr-namespace:myapp.tabs"
heißen - was aber ist myapp.tabs?
Bau Dir doch mal eine minimale, lauffähige Anwendung mit den von Dir geposteten Code-Snippets. Die sollte dann funktionieren. Falls nicht, kann man aber am konkreten, vollständigen Code den Fehler suchen.
Hallo Phenomenon85,
bitte reduziere den geposteten Code auf das Wesentliche (Start/Stop) und benutze nützliche Kommentare. Außerdem wäre vermutlich ein Stück relevantes XAML nicht unwichtig.
Hallo,
vielleicht ist dies eine Alternative:
iSpy
iSpy ist Open Source.
Auch die von Source verlinkten Projekte AForge.Net und/oder Accord.Net könnten schon hilfreich sein.
Jedoch liefert er jedes mal nur "16" als Ausgabe.
Und was genau ist nun Dein Problem damit?
Hallo,
Kein Wort von einem Blockieren. Relativ deutlich am gelben Kasten.
Read blockiert definitiv, wenn ReadTimeout einen von 0 verschiedenen Wert hat - mindestens für den NetworkStream, der von TcpClient.GetStream() geliefert wird. Laut der verlinkten Dokumentation würde ich das aber auch für alle anderen erwarten.
MSDN ist da nicht vollständig bzw. falsch.
Nochmal zur eigentlichen Frage: "Position" braucht man nicht, da mit der Rückgabe der Read-Methode gearbeitet wird. Im Gegenteil (s. Position)
Ruft die aktuelle Position im Stream ab oder legt diese fest. Diese Eigenschaft wird gegenwärtig nicht unterstützt und löst immer eine NotSupportedException aus.
NetworkStream.Read blockieren bis die angegebene Anzahl von Bytes gelesen wurde, oder habe ich das falsch verstanden?
Read sollte blockieren, bis überhaupt etwas ankommt - wie viel, sagt der Rückgabewert. Das ist nicht notwendigerweise die angegebene Anzahl an Bytes.
Read blockiert nicht (dauerhaft), wenn ReadTimeout auf einen endlichen Wert gesetzt wird.
Hallo,
TCP/IP muss prinzipiell funktionieren. Tut es das nicht, gibt's noch ein systematisches, aber kein grundsätzliches Problem.
Nach dieser Fehlermeldung habe ich natürlich auch bereits gegoogelt, dumm von mir das nicht zu sagen. Sorry.
Welche Informationen hast Du gefunden und probiert mit welchem Ergebnis?
Kann ich überhaupt dieses Objekt meinem übergeordnetem Fenster adden
Nein.
Oder muss ich nun zwangsläufig WPF benutzen? :S
Nein - da sich das WebBrowser-Element auch in WPF über die *Transform nicht skalieren lässt. Es funktioniert nicht.
Vielleicht hilft Dir aber sowas: Using ExecWB with the native .NET 2.0 WebBrowser control
Hallo,
Da gibt es nicht viel Code. Aber dennoch, kann ich die Methode zum Deserialisieren ja mal posten.
Eher der Code einer zu serialiserenden Klasse - aber den hast Du wohl original nicht. Darum noch die Idee mit dem Reflector.
Hallo,
die Exception tritt in Deiner Anwendung oder in der Remote-Anwendung auf? Hilft es, von VS die Exception direkt beim Auftreten anzeigen zu lassen und dann den disassemblierten Code anzuschauen (ggf. per Reflector)?
Ein minimales Beispiel zum Vergleich könnte eine Klasse sein, die nichts anderes als eine Property vom Typ List<T> enthält. Lässt sich diese de-serialisieren?
Inwieweit ist es abhängig von <T>? Welche Gemeinsamkeiten haben die betroffenen <T>? Benutzt Du zum Serialisieren/Deserialisieren eine Basisklasse (oder den konkreten Typ)?
Ein bisschen Code wäre nicht schlecht. Evtl. kannst Du Dir auch eine betroffene Klasse aus der Remote-Anwendung per Reflector zum Testen kopieren.
(
XCode war mit Developer-Zugang schon länger kostenlos. Dieser allerdings mit ~100€/Jahr vergleichsweise teuer. Trotzdem kein Vergleich mit Visual Studio.
Selbst das aktuelle Betriebssystem ist nun kostenlos. XCode kann man dann aus dem integrierten App-Store installieren.
Beim 1.Durchlauf funktioniert alles einwandfrei. Er kehrt dann in den eigentlichen Programmablauf zurück.
Hier ist keine Anweisung mehr und er springt (hab ich bei F11 - Einzelschritten gesehen) auf die schließende "}" und von da aus wieder zum Anfang des Backgroundworker und fängt wieder von vorne an.
Dein "1. Durchlauf" ist keiner - es wird nur die Anweisung ausgeführt, den BackgroundWorker asynchron zu starten. Das passiert später (z. B. in Deinem Fall nach dem Ende der Click-Bearbeitung).
Setze einen Haltepunkt in den BackgroundWorker, dann siehst Du, wann er gestartet wird.
Interessant könnte für Dich [Artikel] Multi-Threaded Programmierung sein.
Die geloggte Fehlermeldung:
15.09.2014 20:32 get_Handle Ungültiger threadübergreifender Vorgang: Der Zugriff auf das Steuerelement menuStrip1 erfolgte von einem anderen Thread als dem Thread, für den es erstellt wurde.
Stacktrace?
Relevante Code-Teile?
"X durchgestrichen" - benutzt Du Gdi+? Klingt nach Exceptions.
Hallo,
Ich find's ehrlich gesagt auch ein wenig nervig ... nutze myCSharp.de von zu Hause aus und in der Firma, und ich denke mal, das ist bei Entwicklern nicht sooooo ungewöhnlich ...
es hat ein bisschen gedauert, diesen alten Thread wieder zu finden...
Mich würde interessieren, ob Einschränkungen auch heute noch notwendig sind, oder nicht durch eine neue Version inzwischen überflüssig geworden sind.
Es macht nicht wirklich Spaß, am Wochenende von zuhause Fragen zu beantworten (wo man sich dafür neu einloggen muss), um sich montags dann auf Arbeit auch wieder einzuloggen. Oder dies gar täglich...
Hallo,
schau Dir ganz genau an, was Form1_Load macht.
Außerdem solltest Du Dir mal folgenden Artikel zu Gemüte führen:
[Artikel] Debugger: Wie verwende ich den von Visual Studio?
Hallo,
hast Du mal einen Screenshot von HTerm?
Hallo,
Zweitens: Ich arbeite sehr viel mit MVVM und damit mit dem WPF-Editor. ich habe nur die Feststellung gemacht, dass man nicht alles damit steuern kann.
...
auch falls das Dein persönliches Empfinden wieder stört - kann es sein, dass Du MVVM mit XAML verwechselst und eben gerade nicht weißt, was MVVM ist? Ansonsten erklär mal, welche speziellen Anforderungen Dich zu dem beschriebenen Vorgehen zwingen.
Abgesehen davon kann man auch ohne "typisches" MVVM mit Datenbindung (der ItemsSource an eine ObservableCollection und des SelectedItem's an eine Instanz der Datenklasse) und einem ItemTemplate-Style arbeiten. Dann ergibt sich der Text gewissermaßen automatisch.
Hallo schorge,
da Du bei jedem TextChanged-Ereignis (mit entsprechender Eingabelänge) einen weiteren Tick-Handler anhängst, suchst Du immer mehrfach (und immer mehr).
} catch (Exception ex) { if (ex.Message.Contains("Prozess kann nicht auf die Datei")) {
Spätestens auf einem nicht-deutschsprachigen System funktioniert das nicht mehr. Benutze lieber die IOException anstatt der Basisklasse.