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 inflames2k
Thema: OpenFileDialog - fehlende(s) Laufwerk(e)
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Wie ich schrieb, liegt es am Wechsel des Nutzerkontextes.

Nutzer XYZ verbindet das Netzlaufwerk mit seinen Berechtigungen. Wenn jetzt Nutzer ABC eine Anwendung unter seinem Namen startet, ist das doch nix anderes als hätte er sich mit seinem eigenen Konto angemeldet und die Anwendung gestartet. Warum sollte er hier also die Netzlaufwerke von XYZ sehen können? Schon in Bezug auf Computersicherheit wäre das etwas unglücklich.

Wobei ich bis heute auch noch nicht ganz durchgeblickt habe, warum das Berechtigungssystem mit Windows 7 so stark abgeändert wurde, dass man um eine Anwendung wirklich als Admin zu starten (der man ja eigentlich schon ist) einen Kontextwechsel ausführen muss.
Ich meine klar. der Grund ist mir durchaus geläufig. Das erhöht einfach erheblich die Sicherheit des Systems. Ist aber im Umkehrschluss halt häufig auch so semi cool.

Thema: Programm beenden über das Nertzwerk
Am im Forum: Rund um die Programmierung

Mal davon ab, dass ich es für eine schlechte Idee halte Anwendungen automatisch zu beenden, an denen gerade jemand arbeitet eventuell folgender Ansatz:

- In der Datenbank in einer meinetwegen "Config"-Tabelle ein Flag einführen: "Shutdown".

Die Anwendung muss dann zyklisch die Tabelle anfragen und auf das Flag prüfen. - Ist es "1" wird ein Hinweis in der Anwendung angezeigt, mit der Möglichkeit die Anwendung zu beenden. Bestätigt der Nutzer das nicht, läuft die Anwendung einfach weiter.

Haben alle Nutzer bestätigt und die Anwendung beendet, kannst du dein Update ausführen und das Flag wieder auf 0 setzen.

Schön ist die Lösung nicht, aber es ist neben der Lösung von BerndFfm, das einzige was mir einfällt was halbwegs i.O. erscheint.

Thema: OpenFileDialog - fehlende(s) Laufwerk(e)
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,

wenn es Netzlaufwerke sind, die mit Zugangsdaten des Nutzers verbunden werden, liegt es tatsächlich daran, dass die Anwendung mit Adminrechten ausgeführt wird.
Das liegt einfach daran, dass damit in einem anderen Nutzerkontext gewechselt wird.

Thema: TCP Client / Server verstehen sich nicht
Am im Forum: Netzwerktechnologien

Nein du musst gar nichts in einen String umwandeln. Du liest die Bytes und anhand der Werte (Rückumwandlung in UInt16) weißt du, wie die Antwort aussieht.

Was hast denn du die ganze Zeit mit deinen Zeichen / Strings?

Thema: TCP Client / Server verstehen sich nicht
Am im Forum: Netzwerktechnologien

Zitat von Tossi65
@inflames2k
Da liegst du leider nicht richtig. E§s muss die gesamte Sequenz übermittelt werden "01 00 00 00". Das sind dann mit Blanks 11 Zeichen.

Und wo genau steht in der Schnittstellenbeschreibung dass du Zeichen übertragen sollst?

Schon die Beschreibung gibt ja her, dass du da was nicht richtig machst:
  • 2 UINT16 01hex Nachrichten-ID
  • 2 UINT16 00hex Nutzdatenlänge

Rechnet man jetzt mal zusammen, wie viele Bytes das ergibt sind wir bei 4 und nicht bei 11.

Thema: TCP Client / Server verstehen sich nicht
Am im Forum: Netzwerktechnologien

Zitat von Tossi65
der Client daraus "4849324848324848324848" Byte

Das wäre ein sehr mehrkwürdiger Byte-Wert. Sicher dass du dort nicht irgendwelche ASCII Zeichen liest?

Versuchen wir mal deine Dezimalen Werte die du als "Byte" annimmst in ASCII umzuwandeln.

Dec. 48 = Hex. 30
Dec. 49 = Hex. 31
Dec. 32 = Hex. 20

Insofern scheint ja zumindest das anzukommen, was du auch versendest. Allerdings ist das was du versendest nicht korrekt. Übrigens verschickst du 11 Bytes und nicht wie Eingangs in der Beschreibung angeführt, 2 die du versenden sollst.

Fragst du nämlich mich sollte dein Byte Array das du versendest folgende Werte haben:
1
0


Thema: TCP Client / Server verstehen sich nicht
Am im Forum: Netzwerktechnologien

Bei TCP/IP Kommunikation werden immer Bytes versendet.

Im allgemeinen solltest du mehr erklären. Wir kennen weder die Spezifikation der Kamera, noch weiß ich persönlich was "YAT" ist.

Thema: Fritz!Box - IP-Client - DynDNS
Am im Forum: Smalltalk

Nur um noch über das Ergebnis zu informieren:

Mit dem Bridgemode und Konfiguration der Fritz!Box auf Verwendung eines vorhandenen Kabelmodems funktioniert alles genau so, wie ich es brauche.
Eine gute Anleitung bietet dafür AVM. FRITZ!Box für Betrieb am Kabelanschluss einrichten.

Funktioniert soweit ich das sehe auch mit allen aktuellen Geräten.

Thema: Fritz!Box - IP-Client - DynDNS
Am im Forum: Smalltalk

Hallo Stefan.Haegele,

natürlich ist angedacht in Zukunft auf ein Kabelrouter von AVM zu wechseln. - Allerdings mag ich nicht gerne mit Mietgeräten hantieren, weswegen ich das erst einmal nach hinten geschoben habe. - Finanziell ist jetzt ein neuer Router einfach nicht drin.

Aber nach langem suchen habe ich wohl einen Weg gefunden der viel versprechend ist. Kann ich aber erst am Mittwoch ausprobieren, weil es so lang dauert bis V/KD den Homespot abgeschaltet hat.

Laut einigen Sachen die ich im Netz dazu gefunden habe, muss die Kabel-Box von V/KD nur im Bridgemodus betrieben werden und die Internetverbindung anschließend über den Assistenten neu eingerichtet werden (Betrieb an Kabel-Modem).

Thema: Fritz!Box - IP-Client - DynDNS
Am im Forum: Smalltalk

Hallo,

in meiner neuen Wohnung habe ich auf Kabel-Internet von Kabel Deutschland gesetzt. - Der gelieferte Standard Router soll hierbei jedoch "nur" als Modem dienen. - Daher habe ich meine Fritz!Box als IP-Client angeschlossen.

In der Fritz!Box ist seit langem der VPN Zugriff und DynDNS aktiv. Natürlich bekommt die Fritz!Box die Neueinwahl nun nicht mit. Welche Möglichkeiten, außer einen zusätzlichen Progrämmchen auf weiterer Hardware stehen mir denn jetzt zur Verfügung den DynDNS Anbieter über die geänderte IP-Adresse zu informieren?

DynDNS auf der Kabel Deutschland Hardware zu aktivieren möchte ich eigentlich vermeiden.

Thema: Visual Studio 2019 Community
Am im Forum: GUI: Windows-Forms

Hallo Chessman31,

Zitat von Th69
Du meinst im Windows Forms Designer? Kannst du mal einen Screenshot davon zeigen?

Mach mal wie Th69 schrieb einen Screenshot und poste hänge diesen an.

Thema: Visual Studio 2019 Community
Am im Forum: GUI: Windows-Forms

Kannst du denn direkt über die Items-Collection Menüeinträge hinzufügen?

Thema: xml deserialisieren
Am im Forum: Datentechnologien

Hallo,

Zitat von sindibad
ich kann xml ändern.

was für Informationen beschreiben denn die "Settings"? Das sind doch wenn ich dich richtig verstehe irgendwelche Parameter für eine andere Schnittstelle (du schriebst: "und möchte sie konvertieren in Bytes und über den Serialport senden").

Dann haben die einzelnen Parameter ja sicherlich sprechende Namen.

Ansonsten, da du ja schreibst du kannst die XML frei ändern. Was spricht also dagegen dein Configuration-Objekt direkt zu serialisieren / deserialisieren? Das Xml sehe hier ja auch nur ein klein wenig anders aus:

<?xml version="1.0"?>
<Configuration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Settings1>10</Settings1>
  <Settings2>0</Settings2>
</Configuration>

Und wenns dann doch "Settings" heißen soll im Root:


[XmlRoot("Settings")]
public class Configuration


Thema: xml deserialisieren
Am im Forum: Datentechnologien

Ist das Xml so vorgegeben oder kannst du das frei ändern?

Ansonsten.. wieso arbeitest du mit Reflection? Ich würde die Parameter einfach in einer Schleife durchgehen und anhand des Parameters den entsprechenden Wert setzen.


Configuration configuration = new Configuration();

foreach(Parameter parameter in settings.Parameters)
{
     switch(parameter.Name)
     {
          case "Settings1":
              configuration.Settings1 = Convert.ToUInt32(parameter.Value);
              break;
         ....
     }
}

Das wäre am Ende die sicherste Variante auf deinem Weg.

Ansonsten wenn man bei deinem Ansatz bleibt:


object oValue = settings.Parameters.Find(item => item.Name == prop.Name).Value;
prop.SetValue(configuration , Convert.ChangeType(oValue, prop.PropertyType));

Thema: Punkterotation
Am im Forum: Grafik und Sound

Vielen dank. Das wars.

Hab ich absolut nicht gesehen.

Thema: Ereignisse in C#
Am im Forum: Grundlagen von C#

Zitat von Speedys_Work
was würdet ihr empfehlen bei einer kleinen App, soll ich den Austausch von Informationen zwischen Klassen per Eventhandler oder Nachrichten schicken umsetzen?

Nachrichten in welcher Form? Zumal das stark abhängig vom Aufbau der Anwendung ist. Und wenns eine kleine Anwendung ist, sollte i.d.R. die einfache Werterückgabe von aufgerufenen Methoden ausreichen.

Thema: Punkterotation
Am im Forum: Grafik und Sound

Hallo,

ich bin gerade dabei für Windows CE eine Rotationsfunktion für ein Array von Punkten zu schreiben, die anschließend gezeichnet werden sollen. Das funktioniert soweit erst einmal auch. Allerdings scheine ich irgendwo einen Knoten zu haben, da es augenscheinlich zusätzlich um die Z-Achse rotiert.

Meine Funktion ur Rotation sieht wie folgt aus:


private Point[] Rotate(Point[] originalPoints, int angle, Point middlePoint)
{
    Point[] rotatedArrowPoints = new Point[originalPoints.Length];

    for (int i = 0; i < originalPoints.Length; i++)
    {
        // Punkte um den Mittelpunkt verschieben (Standard 0,0 = oben links)
        double x = originalPoints[i].X - middlePoint.X;
        double y = -originalPoints[i].Y + middlePoint.Y;

        // Berechnung neue Koordinaten 
        x = (x * Math.Cos(angle * Math.PI / 180)) - (y * Math.Sin(angle * Math.PI / 180));
        y = (x * Math.Sin(angle * Math.PI / 180)) + (y * Math.Cos(angle * Math.PI / 180));

        // Verschiebung um Mittelpunkt rückgängig machen
        x = x + middlePoint.X;
        y = (y - middlePoint.Y) * -1;

        rotatedArrowPoints[i] = new Point((Int32)x, (Int32)y);
    }

    return rotatedArrowPoints;
}

Auch ohne die Multiplikation mit Math.PI / 180 sieht das Ergebnis ähnlich verkorkst aus. - Lediglich bei 0 und 180 grad sieht das Bild korrekt aus. Hat jemand eine Idee, an welcher Stelle ich den Rechenfehler mache?

Das Bild im Anhang zeigt die verwendete Beispielzeichnung bei 0°, 30° und 90 °.


Thema: WCF Authentication Header
Am im Forum: Web-Technologien

Haben es jetzt so gelöst, dass das generierte Soap in etwa dem entspricht, was Asmx-Webservices auch generieren, durch Verwendung von MessageContracts.
Ist zwar ein wenig Klassen-OVerhead im Dienst, dafür bleibt die Client-Anbindung einfach.

Thema: WCF Authentication Header
Am im Forum: Web-Technologien

Hallo,

für normale Webservices ("Service.asmx") nutzen wir einen Authentifizierungsmechanismus mit einem "ServiceAuthenticationHeader". Für ein aktuelles Projekt brauchen wir dies auch für WCF Services.

Das wichtige ist, dass der SoapHeader genauso aussehen soll wie beim normalen Webservice.


<Header>
    <ServiceAuthHeader>
         <UserID>...</UserID>
         <Password>...</Password> 
    </ServiceAuthHeader>
</Header>
<Body>
</Body>

Das funktioniert soweit, wenn ich im Client den ServiceAuthHeader noch mal bekannt mache und als MessageContract bekannt gebe. Dann kann ich den Header mit Hilfe von folgendem hinzufügen:


using (ServiceClient client = new ServiceClient())
{
    using (OperationContext ctx = new OperationContext(client.InnerChannel))
    {
        ServiceAuthHeader header = this.GetAuthHeader();
        System.ServiceModel.Channels.MessageHeader authHeader = System.ServiceModel.Channels.MessageHeader.CreateHeader("ServiceAuthHeader", string.Empty, header);
        System.ServiceModel.OperationContext.Current.OutgoingMessageHeaders.Add(authHeader);

        // execute service call
        // ...
    }
}

Das unschöne daran ist, dass der Aufrufer die ServiceAuthHeader-Klasse quasi selbst noch einmal entwickeln muss mit den entsprechenden Eigenschaften. Gibt es hier einen Weg, wo svcutil den Header schon im Client-Proxy mit generiert?

Bei dem ganzen handelt es sich um eine Schnittstelle für einen externen Dienstleister. - Daher wollen wir es diesem nun auch nicht unnötig schwer machen den AuthHeader abzubilden.

Bei einfachen Webservices reicht es in der Service.asmx.cs den ServiceAuthHeader als Property hinzuzufügen.

Thema: 2 Xml Dateien vergleichen und Unterschiede speichern
Am im Forum: Datentechnologien

Hallo BhaaL,

das hatte ich auch schon gefunden. Allerdings ist das Diif Ergebnis dort jetzt nicht wirklich brauchbar bzw. sehr komplex.
Bei Unterschieden in den Werten gibt er nur die Indizes der Knoten aus, die sich geändert haben und den neuen Wert.

Habe nun basierend auf Palladin007's Vorschlag eine aktuell gut funktionierende Lösung gefunden.

Ich danke an der Stelle schon einmal.

Thema: 2 Xml Dateien vergleichen und Unterschiede speichern
Am im Forum: Datentechnologien

Verwendetes Datenbanksystem: XML

Für ein aktuelles Projekt muss ich ein Xml-File mit seinem Vorgänger vergleichen und alle Änderungen zusammenfassen.
Dabei sollen teilweise Xml-Knoten beim Vergleich ausgeschlossen werden.

Im Ergebnis sollen anschließend n-Xml Dateien raus kommen, die jeweils den geänderten Knoten und den alten sowie neuen Wert und alle ignorierten Werte enthält.

Beispiel:

Vorher:


<Data>
    <Buffer>10</Buffer>
    <Status>1</Status>
    <ReadTime>dd.MM.yyyy HH:mm:ss</ReadTime>
</Data>

Nachher:

<Data>
    <Buffer>20</Buffer>
    <Status>1</Status>
    <ReadTime>dd.MM.yyyy HH:mm:ss</ReadTime>
</Data>

Im Ergebnis soll jetzt folgendes ausgegeben werden:

<Diff>
    <NodeName>Buffer</NodeName>
    <PreviousValue>10</PreviousValue>
    <CurrentValue>20</CurrentValue>
    <Data>
           <Buffer>20</Buffer>
           <ReadTime>dd.MM.yyyy HH:mm:ss</ReadTime>
    </Data>
</Diff>

Bei dem flachen Xml kein Problem. Das wird straight forward runterprogrammiert und die Xml Knotenweise durchgegangen. Die Knoten aus der alten Xml werden dann mithilfe des NodeNamen aus der neuen gelesen.

Allerdings habe ich einen Knoten im Kopf, wie ich das bei Xml-Dateien bewerkstellige, die eben nicht flach alle Informationen auf einer Ebene haben. Hat hier jemand eine Idee bzw. einen Vorschlag?

Thema: mit Task.Factory.StartNew eine class aufrufen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen


Aber meiner Erfahrung nach hat DataBinding auch so seine Tücken in MultiThreaded Szenarien.

Ich scheitere z.B. trotz Jahrelanger Erfahrung in der Entwicklung immer noch daran, in Windows Forms eine vernünftige Synchronisierung hinzubekommen. Denn nur davon, dass ich meine BindingList oder ähnliches ans Grid pappe kann ich trotzdem nicht einfach in einem anderen Thread Einträge bearbeiten, entfernen und hinzufügen ohne das mir eine entsprechende Exception um die Ohren fliegt.

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

Noch mal zu den Board und Thread Status. Es gibt ja den Link "Forenbereich als gelesen markieren.". Der funktioniert auch erst mal soweit. Alle ungelesenen Themen werden als gelesen markiert. - Auch das Board selbst bekommt den gelesen Status.

Allerdings habe ich gestern erst einmal alle auf gelesen gesetzt. Heute sind diese wieder als ungelesen markiert. Hat das noch jemand oder liegt das an mir?

Thema: BinärDatei lesen mit festen Positionen und einem Start-"SuchText"
Am im Forum: Rund um die Programmierung

Kennst du denn die groben Bytepositionen? Dann würde ich das File einlesen und dann die entsprechenden Bytes auslesen.
Andernfalls wird es schon schwieriger, wenn du tatsächlich über bestimmte Inhaltsmuster gehen musst.

Thema: Wie aktuelles Datum in einen Json String einbetten?
Am im Forum: Grundlagen von C#

Indem du statt dem festen Datum z.B. DateTime.Now rein gibst.
Das hat jetzt aber im allgemeinen nix mit JSON sondern mehr mit Grundlagen zu tun.

Allgemein solltest du versuchen statt das Objekt selbst zusammen zu bauen mit JSON Serialisierung zu arbeiten.

Thema: DLL mit Form-Vererbung läßt sich von VS nicht laden
Am im Forum: GUI: Windows-Forms

Huh, sehe grade das scheint ein Bug in VS zu sein. Hab einfach mal versucht ein geerbtes Formular zu erstellen. Und siehe da. Gleicher Fehler (hier: VS Professional 2017).

Ich empfehle dir ohnehin: Verweise auf die Bibliothek mit dem BaseForm, erstelle ein neues Formular und ändere den Basistyp von Form auf dein BaseForm.

Damit solltest du allen ärger aus dem Weg gehen.

Thema: DLL mit Form-Vererbung läßt sich von VS nicht laden
Am im Forum: GUI: Windows-Forms

Das klingt von der Fehlermeldung her, als ob du eine Unmanaged DLL z. B. in C++ vorliegen hast.

Eine normal in C# oder C++/CLI Assembly (DLL) sollte sich Problemlos einbinden lassen.

Thema: Oracle Client Komponenten für Applikationen/.net
Am im Forum: Datentechnologien

Im .NET Umfeld empfehle ich den Oracle.ManagedDataAccess aus den Oracle-Komponenten. Ein großer Vorteil bei diesem ist nämlich dass bei richtiger Verwendung gar keine Oracle Client Installation auf dem Zielsystem erforderlich ist.

Denn die korrekte Installation des Oracle Clients ist auch immer so eine Sache. Vor allem, wenn man den x86 und den x64 Client benötigt.

Thema: DB-Verbindung schlägt fehl
Am im Forum: Datentechnologien

Hast es denn mal auf einem Windows Rechner probiert?

Finde leider auch nur Beiträge, wo Leute nach dem Update auf Version 2 der Microsoft Datenprovider Fehler hatten. - Möglicherweise liegts daran? Hast du mal eine ältere Version des Packages probiert?

Thema: Konsolenanwendung mit TCPListener läuf als Dienst nicht korrekt
Am im Forum: Netzwerktechnologien

Zitat von TomRie
@inflames2k, in der Konsolenapplikation ohne Service gibt es doch noch gar keinen DataProcessor.

Nun, wenn du deinen eigenen Code nicht liest. Dann verstehe ich die Wurzel der Probleme.
Zitat von TomRie
Dass der Service "und nur der Service (inkl. DataProzessor)" nicht für diese Art Anwendung geeignet ist sage ich ja schon lange, daher muss ja etwas anderes her.

Ja genau. - Nämlich die korrekte Variante ohne Timer. - Was passiert denn wenn du deinen DataProcessor direkt ausführst statt über den Timer? - Dort sollte man ansetzen den Fehler zu suchen und nicht irgendetwas Wild mit Timern dahinter zu Frickeln damit überhaupt was startet.
Zitat von TomRie
Übrigens wenn das gezeigte nur als Konsole ausgeführt wird, kommt der Timer entgegen deiner Ansicht gar nicht zum Zug, nur beim auführen des Services. Das erkennt man kurzerhand im Beispiel über den Link.

Das habe ich auch nie behauptet. - Im Gegenteil. Ich habe dich drauf hingewiesen, dass er ja dort - wo dein Programm funktioniert - eben nicht zum Einsatz kommt.

Nun weiß ich auch, wo das ganze Problem her kommt. - Du schreibst leider nur ab, was in der Anleitung vorgegeben ist ohne dir weitere Gedanken darüber zu machen. Für den in der Anleitung verwendeten Anwendungsfall [der auch nur ein Beispiel ist] macht der Timer natürlich sinn. - Für deinen Fall aber nicht. - Also als erstes Weg mit dem Timer. Danach können wir uns der weiteren Probleme annehmen.