Ist das Komma zwischen Hostname und Port nur im Forum ein Schreibfehler oder hast du das auch im echten ConnectionString?
Edit:
@Abt Danke. Wieder etwas gelernt.
In seinem Kommentar steht, dass er gerne dictionary.ContainsKey
verwenden würde. In dem Fall wäre das aber die einzige Möglichkeit oder?
Die Lösung mit einem Wertevergleich hat er ja selbst schon gepostet.
In deiner Klasse MyPair_I_B
müssen die Methoden GetHashCode
und Equals
überschrieben werden.
Equals muss so implementiert werden, dass es true zurückliefert wenn du die verschiedenen Instanzen (aber gleichen Properties) vergleichst. GetHashCode muss für beide Instanzen den gleichen Integer Wert zurückliefern.
Lies dir hier mal den "Remarks" Abschnitt durch: MSDN - Object.GetHashCode Method (System)
siehe auch: MSDN - Guidelines for Overriding Equals() and Operator ==
Alternativ kannst du auch die IEqualityComparer<T>-Schnittstelle implementieren und beim Erstellen deines Dictionaries übergeben.
Weil der zweite Parameter von Substring die Länge des Teilstrings ist und nicht die Endposition.
Ein wenig Eigeninitiative wäre nicht schlecht.
z.B. "visual studio use other project" in deine bevorzugte Suchmaschine eingeben
Im Openbook Visual C# 2012 gibts dazu auch ein Kapitel (ist zwar 2012, trifft aber auch für neuere Versionen zu):
Visual C# 2012 - 17 Projektmanagement und Visual Studio 2012
Schon mal in den Netzwerk Tab der Entwicklertools geschaut? Wird dort überhaupt eine Antwort angezeigt?
WPF Snippets and Hacks: Correct way to keep selection in TextBox and RichTextBox visible after focus lost in WPF
Hilft dir das?
Edit:
Sorry, habe das hier übersehen:
However, if new window is opened, focus on both controls will be lost.
Ich glaube das könnte dir helfen: Microsoft- Technet - Cant use icons for shortcuts from network in windows 8
Nur wie kann ich steuern ob das Feld Serialisiert wird wenn es nicht den Standartwert von 0 hat ?
Falls du JSON.NET verwendest: Conditional Property Serialization
Der Screen zeigt aber die Release Version?
Edit: Meistens stehen bei solche Fehlern die Meldungen dazu im Output/Ausgabe Fenster.
Edit2: Wenn ich die von dir nicht mitgelieferten anderen Styles alle aus dem Template entferne, dann läuft das bei mir.
Edit3: Hier noch mal der Kontext der Frage des TE: Was ist hier falsch? (ControlTemplate einer Scrollbar)
Für das Thema gibt es bereits einen FAQ Eintrag: [FAQ] Programm läuft in anderer Umgebung nicht (richtig))
Hast du diesen schon mal durchgelesen?
Würde dir ein
Q-A[^-]
weiterhelfen?
bzw.
Q-A-F[^-]
Q[^-]
Hierzu habe ich eine Lösung gefunden:
Es kann mit Power Availability Requests gearbeitet werden. (siehe C#: Windows Standby unterdrücken)
Ich verwende für meine Anwendung, welche in der Nacht den Bildschirm ausschaltet, den Power Request Type "PowerRequestExecutionRequired
". Ich musste dann noch zusätzlich den Connected Standby ausschalten, sonst wurde das Gerät nach längeren Zeiträumen mit dem Bildschirm aus, trotzdem in den Standby versetzt.
Ich bin mir nicht ganz sicher ob ich den korrekten Modus gewählt habe. Eventuell geht es auch ohne das Deaktivieren des Connected Standby.
Wie die verschiedenen Modi gewählt werden sollten, steht hier MSDN - PowerSetRequest function (Windows).
Hier eine Idee meinerseits (keine Garantie, dass es wirklich so funktioniert):
In der fremden Applikation hast du gerade das Ctrl+V abgefangen und der Benutzer klickt jetzt einen der aufgelisteten Einträge an. Eventuell kann man jetzt einfach die Clipboarddaten mit den Werten des Eintrags aktualisieren und dann das Ctrl+V weiterlaufen lassen.
Ein wenig Code wäre nicht schlecht. Hast du schon das hier (stackoverflow- Bring Word Application to Front) probiert?
Einfach mal den Debugger benutzen ([Artikel] Debugger: Wie verwende ich den von Visual Studio?) , dann wäre dir sofort aufgefallen, dass die Directory.GetDirectories
Methode Pfade ohne abschließend Slash liefert.
Also kommt bei deiner Pfadverknüpfung (QuellPfadAudioDaten + system_volume) nichts brauchbares raus.
Verwende besser die von Wilfried verlinkte Path.Combine (MSDN) Methode.
Oder irgendwie anders? Hattest du Daten in eine Tabelle eingetragen und wenn ja von welchem Typ (bei mir sind die Werte unter der Column time als DATETIME abgelegt - bei dir string?)
Er hat ein SqlFiddle Link gepostet, dort kannst du dir das Schema und die Daten die er verwendet hat anschauen.
Ich war so frech und hab mir das Schema und die Daten von Sir Rufo geklaut und das ganze noch mit dem SQLite Manager (allerdings das Firefox Addon, nicht Standalone) getestet. Ich konnte keine Probleme feststellen. (Auch mit BETWEEN hatte ich keine Probleme.)
Aber dass deine beiden Queries im Startpost syntaktische Fehler haben, hast du gelesen?
Konnte zumindest bisher dahingehend nichts finden bei HostEurope. In den AGB's gibt es lediglich einen Eintrag für die Server die nicht mit Traffic-Flat bestellt werden.
Aber in diesem Dokument findet man etwas das du trotzdem beachten solltest:
Der entstehende Traffic ist bei allen „Virtual Server 8.2“ inklusive. Für „Virtual Server 8.2“ garantiert HE eine Peak-Bandbreite von 100 Mbit/s. Bei dauerhafter Überschreitung der genutzten Bandbreite von 50 Mbit/s im Wochenmittel behält HE sich das Recht vor, die Bandbreite auf 50 Mbit/s zu limitieren. Die Drosselung kann durch HE nach Rücksprache mit dem Kunden wieder aufgehoben werden.
Ob du einen 8.2 Server hast, weiß ich leider nicht. Ich konnte auch die aktuelle "Version" der Virtual Server im HE Shop nicht erkennen.
z.B. via NuGet
Install-Package Mono.pdb2mdb
Kann es sein, dass du die RichTextbox als letztes hinzufügst und diese somit deine Buttons verdeckt?
Ruf das Controls.Add
für die RichTextbox mal vor den anderen Sachen auf.
Du hast ein ODER in deinem C# Code verwendet und kein XOR. (| vs ^)
Das hier ist der XOR Operator: Operator ^ (C#-Referenz)
Also das mit dem Mauszeiger mach ich genauso, nur das ich einfach das Mausicon für die komplette Applikation ausgeblendet habe. Somit stört er auch nicht wenn das Gerät aufwacht.
Mouse.OverrideCursor = Cursors.None;
Aber seit dem Anniversary Update wacht mein Tablet jetzt gar nicht mehr auf, wenn der Monitor via SC_MONITORPOWER (0xF170)
ausgeschaltet wurde.
Den Registry-Eintrag für den Connected Standby hab ich schon probiert. Hilft leider auch nichts.
Wenn du von extern (also aus dem Internet) auf dein FTP Server auf dem NAS hinter dem Router zugreifen willst, musst du eine Port-Weiterleitung für den FTP Port (21) vom Router auf den NAS einrichten.
Eventuell kommt die Verzögerungen vom Auflösen der Domain. Verwenden die Maschinen unterschiedliche DNS Server?
Dein Programm wird beendet bevor es überhaupt etwas anzeigen kann.
Also entweder du setzt ein TaskObj.Wait()
oder ein Console.ReadLine()
nach dein TaskObj.Start();
Du musst auch die Referenz der PictureBoxen in das Array einfügen und nicht den Namen deiner PixtureBoxen.
also:
public void GardenGame(String StrEAN, int number2)
{
PictureBox[] arrGarden = { pbSlot00, pbSlot01, pbSlot02 };
Random rnd = new Random();
int BildNummer = rnd.Next(1, 3);
arrGarden[BildNummer].Image = Properties.Resources.i03;
}
Füge deine PictureBoxen in ein Array/List ein und benutze deine Variable "BildNummer" bei der Auswahl für den Index.
PictureBoxes[BildNummer].Image = Properties.Resources.Bild1;
Warum genau brauchst Du noch ASP.NET?
Ich brauch es nicht wirklich. Das war eher eine Überlegung ob es für einen Anfänger nicht sinnvoller wäre, auf ASP.NET zu setzen bei dem es 100 mal mehr Information und Anleitungen im Internet gibt als bei Nancy.
Inzwischen läuft es aber ganz gut und ich hoffe jetzt einfach mal das alles glatt läuft.
Im Grunde wollte ich mir mit dem Thread nur ein "Sieht soweit gut aus" von einem erfahrenen Webentwickler einholen.
Seit dieser Woche beschäftige ich mich mit den "Web-Technologien" von .NET. Die Anforderung ist es, ein Webinterface für einen Windows Service bereitzustellen. Der Webserver soll vom Service selbst gehosted werden. Einige Vorkenntnisse mit HTML, CSS und JS sind vorhanden.
Ich hab dann etwas das Internet mit meinen Anforderungen durchforstet und mich letzten Endes für Nancy im Selfhosting Paket entschieden. Für die Viewengine verwende ich Razor, da mir bei der Standard einige Funktionen gefehlt haben.
Optional sollen Daten in Echtzeit vom Service an den Browser gepusht werden. Wenn ich mich richtig informiert habe, löst man das Echtzeit-Problem über WebSockets mit SignalR.
Gibt es hier unter Umständen Probleme mit alten Internet Explorer Versionen, da das Webinterface zu 90% auf diesen aufgerufen wird. Sicherheitsbedenken werden erst mal ausgeschlossen, da das Webinterface vorerst nur lokal zur Verfügung steht.
Ich habe auf Stackoverflow gelesen, dass man ASP.NET nicht via self-host einbinden kann. Stimmt das oder gibt es hier inzwischen etwas neues?
Gibt es sonst Verbesserungen/Kritik für mein Vorgehen?
Ich hab derzeit einfach etwas Bedenken, dass ich mich für die falsche Technologie entscheide und es im Nachhinein bereue.
Danke schon mal im Voraus!
dannoe
Wie gesagt, wenn du über das Kontextmenü dein Programm aufrufst, ist das Arbeitsverzeichnis das aktuelle Verzeichnis in dem du das Kontextmenü aufgemacht hast!
Nichts anderes bekommst du zurück wenn du Environment.CurrentDirectory
verwendest.
Dir bleiben eigentlich nur diese zwei Möglichkeiten:*Benutze die bereits enthaltene "Als Pfad kopieren"-Funktion von Windows. (Umschalten+Rechtsklick) *Ändere deinen Registry-Eintrag, so dass er
"%1"
enthält. Dann kannst du in deinem C# Programm deine Übergabe Parameter abfragen und diese verwenden.
Einfach Shift+Rechtklick und siehe da, die Funktion ist in Windows schon eingebaut. 👅
Du kannst in der Registry mit %1 den aktuellen Pfad an dein Programm übergeben.
Also z.B.:
MeinProgramm.exe "%1"
Das was du abfragst, ist das Arbeitsverzeichnis deines Programms.
*.csproj ist die Projektdatei.
Und diese enthält eine ItemGroup, in der alle Referenzen für diese Projekt enthalten sind. (zumindest in VS2015, andere Versionen kann ich gerade nicht prüfen)
siehe Threadsicherheit – Wikipedia
Der Inkrement Operator und die List.Add() Methode sind beides keine atomaren Funktionen und können deshalb vom Prozessor nicht innerhalb eines Schrittes durchgeführt werden. Deshalb kann es vorkommen, dass der Scheduler dem Prozess bzw. Thread innerhalb der Abarbeitung der Operationen den Zugriff auf die CPU entzieht und an andere Prozesse/Threads zuweist.
Zum hochzählen: Interlocked.Increment-Methode (System.Threading)
Threadsichere Kollektions: Verwendung einer threadsicheren Auflistung
Die Form könnte sich außerhalb des sichtbaren Bereichs deines Bildschirms befinden.
Ich weiß nicht ob der folgende Ablauf bei Win10 auch funktioniert, aber unter Win7 kannst du:*über dein Programm in der Taskleiste hovern
Ich glaube mit "procmon" war eigentlich das hier gemeint: Process Monitor
Das Tool zeigt dir alle Dateisystem/Registry Aktionen, die deine Programm macht. So kannst du z.B. herausfinden ob er versucht Dateien aus dem falschen Pfad zu laden o.ä.
Und "logFunc" hört sich für mich nach einer Log-Methode an. Hast du keine Dokumentation für die DLL?
Du kannst auch IntelliSense (Autocomplete) von Visual Studio verwenden.
Alternativ auch MSDN, dort bekommst du öfters auch mal wichtige Hinweise zum speziellen Verhalten von Methoden/Events.
Eventuell hilft dir das etwas weiter: Data Access in Universal Windows Platform (UWP) Apps | Building Apps for Windows
Edit:
Hab das mit der Synchronisation in deinem Beitrag übersehen:
synchronization - UWP and User database - Microsoft/Google/Facebook? - Stack Overflow
Nur weil dein Benutzeraccount die Rechte dafür hat, muss die Anwendung die Rechte dafür noch nicht haben.
Versuch mal die Anwendung mit Rechtsklick ->_ Als Administrator ausführen_ zu starten und schau ob dein Skript dann eventuell funktioniert.
Falls das nichts hilft, versuche einfach mal eine PowerShell ohne Skript aus deiner Anwendung aus zu starten.
... Mir fällt bisher keine Lösung ein, wie ich mir anzeigen lassen kann, was er genau ausführt. ...
Mit dem Process Monitor kann man das gut nachvollziehen.
Eventuell der Bug hier:
Topmost windows are not always in the topmost position in Windows 7 or in Windows Server 2008 R2
Du hast einen EventHandler am TextChanged-Event, löscht dieser den Text eventuell?
Das sollte genau dein Fall sein: Exchange Web Services (EWS) API "To" header for alias - Stack Overflow
Also musst du anscheinend den Header der E-Mail parsen um an deine Infos zu kommen.
Deine beschriebene Anforderung ist leider etwas unverständlich für mich.
Ich habe es so verstanden:
Du hast eine Textdatei welche pro Zeile eine Telefonnummer und eine Nachricht, getrennt mit einem Semikolon, enthält.
Du möchtest diese in dein Programm einlesen und anschließend einzeln und nur nach Bestätigung eines Benutzers exakt diese eine Nachricht versenden.
Nach dem Versenden der Nachricht, soll die nächste Nachricht in deiner eingelesen Liste für den Benutzer angezeigt werden und wieder soll der Benutzer die Sendung der Nachricht bestätigen.
Soweit alles korrekt?
Ein paar Tipps zu deinem vorhandenen Code:
*Lass deinen Code von VisualStudio formatieren, sonst liest sich dein Code für Außenstehende sehr schwer. (siehe Einrückung der zweiten for-loop)
*Benutze eine Klasse um die Datenfelder (Telefonnummer, Nachricht) zu kapseln.
*Benutze das Schlüsselwort using
für deinen StreamReader, damit automatisch Dispose()
nach Verwendung aufgerufen wird. (siehe IDisposable Interface (System))
*Logikfehler: Deine beiden Schleifen werden nicht zeitgleich ausgeführt, d.h. du iterierst durch alle Empfänger und erst dann durch alle Nachrichten.
Der MFC-J5910DW von Brother kann das gleichfalls. (pdf auf NAS/Email/FTP usw.)
Hast du schon mal mit dem Debugger alle Fields von "email" angeschaut?
Auch nicht manuell über regedit?
Ich kenne mich mit Windows Domain Netzwerken nicht so gut aus aber könnte es sein, dass eine Gruppenrichtlinie das verhindert?
Für Werttypen kannst du das Keyword "ref" verwenden um ein Call by Reference zu machen. (MSDN - ref
Hier noch ein Artikel für dich: [Artikel] Parameter-Übergabemechanismen: call by value vs. call by reference (ref/out)
Der komplette Inhalt des Buches ist übrigens kostenlos auf der Seite vom Rheinwerk Verlag einsehbar.
Was du mit "erst seit C#" meinst, weiß ich leider nicht.
Du übergibst deinen Methoden nur eine Referenz von "myData". (siehe auch MSDN - Verweistypen)
Du übergibst also nicht jedesmal alle Daten, sondern nur eine Adresse zu den Daten.
Das gilt nur für Verweistypen (s.o.) und nicht für Werttypen (MSDN - Werttypen)
Ich würde dir übrigens das c# openbook von Rheinwerk empfehlen. (Link ist hier links im Menü)