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 trib
Thema: Outlook gesendete E-Mail abfangen
Am im Forum: Office-Technologien

Zitat von Abt
Bei Deiner Argumentation hinkt auch, dass Du explizit Exchange erwähnst.
In der Theorie wäre das mit allen Systemen möglich; wenn eben kein besonderer Usercase bei der Implementierung bedacht wurde.
Gut, dann bleiben wir beim SPAM-Filter. Sobald dieser im Einsatz ist, stünde man vor selbigem Problem. Vollkommen irrelevant ob dieser automatisiert, bzw. maschinell die Mails durchforstet. Jede Firma mit einem SPAM-Filter muss den Mitarbeitern private Emails untersagen, sonst macht sie sich strafbar.

Und der SPAM-Filter hat sicherlich auch ein Administratoren-Account, damit er die eingehenden Mails prüfen kann. Daher halte ich es für relativ unwahrscheinlich, dass es viele Firmen gibt, die diese Möglichkeit von vornherein ausschließen. Also keinen Master-Admin haben und keinen SPAM-Filter.

Nochmal zum Thema der Rechmäßigkeit:
(Auch auf die Gefahr hin, das der Wahrheitsgehalt von Wikipedia nicht immer unumstößlich ist)
Zitat
E-Mails gehören per Definition zu der Kategorie „Brief“ und unterliegen diesem Grundrecht. Daher kann eine automatisierte E-Mail-Sicherungsmaßnahme in einem Unternehmen nur durch eine vertragliche Vereinbarung mit den Mitarbeitern oder mit der Zustimmung eines vertretungsberechtigten Betriebsrates erlaubt werden. Eine andere Möglichkeit ist die Durchsetzung eines allgemeinen Verbots privater E-Mail-Kommunikation von Seiten der Geschäftsleitung.
Quelle: E-Mail-Archivierung

Thema: Outlook gesendete E-Mail abfangen
Am im Forum: Office-Technologien

Zitat von Stefan.Haegele
Dies geht für mich in eine Ecke - welche auch sehr gut für Viren & Co eingesetzt werden kann um User auszuspähen!
Hast Du schonmal ein Outlook AddIn einrichten/aktivieren müssen? Das geht alles andere als automatisiert und nur lokal auf der Maschine im Benutzerkontext. Da müsste man dem zu infizierenden noch eine dreiseitige Anleitung farbig ausdrucken :)

Jede Firma die Exchange im Einsatz hat, "überwacht" die Mitarbeiter. Selbst ein Spam-Filter ist ein Eingriff in die Privatsphäre. Daher sind private Mails von unserem Account auch "untersagt":

Thema: Text in Punkte (ähnlich wie eine Matrix) umwandeln
Am im Forum: Grafik und Sound

Hallo Alphagen,

in der Vergangenheit habe ich relativ viel mit dem Arduino und LED´s gemacht.
Da gab es etliche Lösungen, die imho alle auf "hart" programmierten Buchstaben basiert haben. Also Arrays, die in einem definierten Raster die an- und ausgeschalteten LED´s beinhaltet haben.
Um Platz zu sparen, basieren manche Lösungen auch auf Hex-Werten, die letztendlich nichts anderes repräsentieren.
Problematisch wird es hierbei nur, wenn man beginnt, die Schriftgröße variieren zu wollen. Man kann defakto auf einer Matrix eine Schrift nicht nur 1px größer machen. Auch bei der 1,5 Fachen Größe hat man das Problem, welche Pixel "verdoppelt" werden, und welche hintenüber fallen.

Zwar gibt es dafür auch manche Herangehensweisen, die allermeisten Lösungen, die ich kenne verfügen aber nur über eine auf die Matrix festgelegte Schriftgröße.

Hier kannst Du das Prinzip sehr gut einsehen:
LED- Matrix Scrolling Text

Habe auch noch irgendwo ein Programm, mit dem man eine Matrix in unbestimmter Größe testen kann. Funktioniert, bis auf eben Text, auch sehr gut. Könnte ich bei Interesse nochmal raus suchen.

Thema: Daten über serielle Schnittstelle von Arduino!
Am im Forum: GUI: Windows-Forms

Hallo DerPete,

wie schon in dem 2. Post angesprochen, kann ich nur den folgenden Link empfehlen:
Template SerialPort
Denn dort wird kein Timer verwendet, sondern ein Event des ComPorts. Das bedeutet, Du fragst nicht sinnlos jede Sekunde an, ob Daten vorhanden sind, sondern der Port meldet sich quasi von selbst, wenn es was zu lesen gibt.
Das hat neben dem Verhindern von sog. polling auch den Vorteil, dass Du bei korrekter Implementierung* jedes mal den gesamten Wert des RTF überschreiben kannst. Also auf Append verzichten kannst.

*Der ComPort kann u.u. auch die Daten aufsplitten, daher ist man erst mit einem fest definierten Endzeichen auf der ganz sicheren Seite. Sollte bei kleineren Datenpaketen aber erstmal irrelevant sein.

Thema: Bad-USB: Angriffe auf den PC per modifiziertem USB-Stick
Am im Forum: Szenenews

Hi zusammen,

ich habe schon vor einigen Jahren auf einem Live-Hacking Event gesehen, wie ein USB-Stick sich als Tastatur selbstständig gemacht hat. Das war schon sehr interessant und eigentlich auch ganz simpel. Die vermeintliche Tastatur hat einfach in wenigen Milisekunden die Konsole geöffnet, eine URL eingetippt und somit eine Schadsoftware heruntergeladen.
Dazu braucht es nichtmal SCSI-Kenntnisse, o.ä.

Die Firmware-Manipulation nimmt aber schon ganz neue Dimensionen an!
Mittlerweile gibt es Trojaner, die sich in die FW von Festplatten einbrennen. Da hilft auch keine Formatierung mehr, da reicht nur noch der große Hammer.
Auch die HDD´s oder SSD´s haben nur wenige, unterschiedliche Chipsätze. Das macht es natürlich relativ einfach.
Relativ ist aber ein sehr dehnbarer Begriff. Die Codeteile, die (ich meine) Kapersky herausgefiltert hatte, ließen Rückschlüsse auf ein Multimillionen Dollar Projekt zu.

Wie bei allem, wird es trotzdem in wenigen Jahren auch den "Consumer Market" erreichen und jeder kann sich die notwendige Technik in fadenscheinigen Onlineversandhäusern bestellen.

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

Zitat von FZelle
Bitte richtig lesen.

2008 EXPRESS kann kein Compact Framework.
Sorry, Schande über mein Haupt :)
Bin zu verwöhnt mit den Lizenzen auf der Arbeit.

Aber wenn es mit SharpDevelop funktioniert, gibt es ja eine Lösung. Die IDE fand ich damals auch garnicht so schlecht.

[Offtopic]
Kann allerdings die Politik hinter dem Ganzen nicht so recht verstehen. Wenn das CF aussterben soll, warum bring MS weiterhin laufend CE / Compact Versionen an den Markt?
Bei Windows Embedded Compact 7 kann ich VS2008 auch nicht mehr richtig verwenden. (Auf Gerät kompillieren oder Debuggen ist nicht mehr möglich)
[/Offtopic]

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

Zitat von mogel
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
Deshalb ist in dem Link ja auch 2008 und nicht 2010 enthalten :)

Spricht ja nichts dagegen mehrere VS Versionen parallel zu installieren. Habe momentan auch 2008 (CF), 2010 (Install Shield) & 2012 laufen.

Thema: Mit C# Applikation Daten per Bluetooth an Mikrocontroller schicken
Am im Forum: Netzwerktechnologien

Hallo E-Techniker,

man kann im Gerätemanager von Windows nachschauen, welchen Com-Port der Bluetooth-Dongle bekommen hat. Diesen muss man dann natürlich entsprechend hinterlegen.
Dieser kann sich aber nach einem Rechner Neustart wieder ändern, wenn das Bluetooth Modul nicht fest integriert ist.
Dein Code selbst ist ja äußerst rudimentär. Hier im Forum gibt es schon sehr gute Implementierungen, die Dir das Leben erleichtern.
Schau dazu mal im Snippet-Bereich vorbei:
Template SerialPort

Thema: Was haltet ihr von Wearables?
Am im Forum: Smalltalk

Zitat von FZelle
Aber ansonsten habe ich schon etwas länger eine MIO Fuse, ich hasse nämlich Brustgurte, und die Fuse ist die einzige von den neuen die per ANT+ mit meine Acro S reden will.
Die Fuse funktioniert auch mit der Garmin, habe ich vorhin gelesen.
Zitat von Sebastian.Lange
Heise.de hat vor einiger Zeit diesbezüglich mal einen gründlichen Labortest für Fitness-Uhren unternommen. Dabei stellte sich raus das kein einziges Produkt mehr funktioniert wenn man seine persönlichen Daten nicht an den Hersteller schickt.
Da muss ich Dir absolut Recht geben. Meine "alte" Laufuhr konnte noch lokal verwendet werden. Die neuen schicken alles direkt an ein online-Portal.
Da ich dort aber nicht mit meinem vollständigen Namen registriert bin und auch sonst keine sensiblen Daten dort angegeben habe, habe ich mich darauf eingelassen.
Trotzdem kann ich Deine Kritik daran vollkommen nachvollziehen!

@pinki: Dann scheinen die beiden Uhren nicht sonderlich weit voneinander entfernt zu sein. Mich stört die Vibration allerdings kaum.

@Roland_K: Deshalb meine Entscheidung, beides zu verbinden. Fitness und etwas "Business" (also eingehende Notifications)

Thema: Was haltet ihr von Wearables?
Am im Forum: Smalltalk

Aktuell sprießen Uhren aus dem Boden, die sich Smartwatch, Fitnesstracker oder generell Wearables nennen.
Diese wiederum unterscheiden sind durch mehr oder minder sparsame eInk, Retina, LED, AMOLED oder sogar überhaupt keine Displays.

Auch die Betriebssysteme schießen aus dem Boden, wie junger Spargel.

In dem schier undurchschaubaren Markt, stellt sich natürlich die Frage:
Braucht man so etwas überhaupt?

  • Wenn ja: Welches Modell interessiert Euch und weshalb? (Oder habt ihr schon eine?)
  • Wenn nein: Was fehlt Euch an Funktionen, die euch zum Kauf bewegen würden?


Persönlich finde ich es ganz nett, nicht für jede Nachricht das Telefon aus der Tasche zu holen. Oder auf der Arbeit aus der Docking-Station. Bestimmt auch in Meetings sehr praktisch!
Apps sind für mich eher uninteressant, da ich nicht ein paar Handgriffe auf dem Telefon, durch komplizierte, Mäusekino-Artige Eingaben ersetzen werde.

Meine Entscheidung:
Da ich seit einigen Jahren zur Gattung der Läufer zähle und auch schon längere Zeit meine Strecken aufzeichne, bin ich hellhörig geworden, als Garmin eine neue Uhr vorstellte.
Diese beinhaltet alle Funktionen eines Lauf-/Rad-/Schwimm-/Golf-Computers. Das war für mich schonmal obligatorisch. Zusätzlich handelt es sich um einen Fitnesstracker, wie diese ganzen Armbänder, die Schritte und Bewegungen ganztägig zählen.
Zu guter Letzt kommen die rudimentären Smartwatch-Funktionen hinzu. Wetter, Musikplayer-Bedienung, Notifications-Anzeige, Kalendereinträge.
Die Uhr verfügt über einen Vibrationsalarm und ein Tageslicht-Farbdisplay (Welches sich aber zusätzlich beleuchten lässt).

Also habe ich mir diese gestern zugelegt und bin bisher ganz zufrieden. In der Realität ist sie nicht ganz so schick wie auf den Bildern. Sonst erfüllt sie komplett meine Erwartungen.
Wen es interessiert, es ist eine Garmin Vivoactive.

Meine erste App, bzw. mein erstes "WatchFace" (Uhrenoberfläche) habe ich schon entwickelt. Geht einigermaßen gut. Mir fehlt nur ein vernünftiges Intellisense ;)

Thema: EWS - Freigegebener Kontakt Ordner
Am im Forum: Office-Technologien

Hallo zusammen,

ich versuche gerade per Exchange Web Services auf einen Kontaktordner zuzugreifen.
Die Herausforderung ist jedoch, dass der Ordner von jemand anderem verwaltet wird.

Person A legt einen Ordner in seinen Kontakten an:
Rechte Maustaste -> Freigeben -> Ordnerberechtigungen -> Reiter Berechtigungen -> Person B bekommt die Freigabe & Rolle "Besitzer"

Nun nochmal per rechter Maustaste:
Freigeben -> Kontakte freigeben -> Email öffnet sich, Haken setzen bei "Empfänger können Elemente im Ordner Typ 'Kontaktordner' hinzufügen, bearbeiten und löschen".

Person B sieht den Ordner nun unter:
- Freigegebene Kontakte
- Person A - Ordnername

Nun kommt EWS mit ins Spiel.
Zuerst habe ich versucht unter WellKnownFolderName.Contacts alle Ordner auszugeben. Dort ist er aber nicht enthalten. Gesucht und folgendes Beispiel gefunden:https://social.msdn.microsoft.com/Forums/exchange/en-US/bbff797d-21df-4bf9-8796-e7b81d818f93/cews-retrieve-all-shared-contacts-available-from-user?forum=exchangesvrdevelopment

Gebe ich dort nun Person B (also mich) als MailboxNamen an, so findet er den Ordner "Common Views" und anschließend 0 Einträge mit dem Suchfilter "Shared Contacts".
Gebe ich Person A dort ein, findet er nicht mal den Ordner "Common View".

Hat jemand sowas schonmal versucht? Mein Outlook zeigt mir die Kontakte an, auch kann ich dort welche hinzufügen oder ändern.
Die Code-Fragmente schauen alle ähnlich bis gleich aus, die man im Internet so findet.
Auch war es mir bisher nicht möglich auf die Freigegebenen Kalender zuzugreifen :(

Bin über jeden Tipp dankbar!

Thema: Textdatein in Ordner auslesen
Am im Forum: Grundlagen von C#

Zitat von PowerPiete
Ich bekomme auch alle Ordner Namen aber die Textdateien will er bei meinem aktuellen Code einfach nicht auslesen.

Deinen aktuellen Code können wir von hier aber nicht einsehen :)

Auch
Zitat von PowerPiete
[...]eine Meldung das der Befehl falsch ist
hilft uns nicht sonderlich viel weiter, ohne die genaue Meldung zu kennen.

Bitte poste nochmal Deine entsprechende Code-Stelle und schreibe dazu was genau nicht funktioniert, bzw. wie die Fehlermeldung lautet.

Gruß
trib

PS: Abt war schneller. Den Link solltest Du Dir in jedem Fall ansehen! Wohl möglich erledigt sich Dein Problem dann von selbst.

Thema: Mein Ausscheiden aus dem myCSharp.de-Team
Am im Forum: Ankündigungen

Von mir auch noch ein paar lobende Worte:
Dein fachliches Wissen und die Art und Weise dies zu vermitteln, stehen außer Frage!

Mich hat aber insbesondere Deine Objektivität beeindruckt. Egal wie verrannt ein Thema gerade war, wie hitzig die Debatte, Du bis immer vollkommen sachlich geblieben.
Wo andere Leute längst eine Partei ergriffen haben und (scheinbar) unbelehrbar ihren Standpunkt vertreten, warst Du immer extrem Ergebnis-offen.

Vielen Dank für alles, was ich in den letzten Jahren hier lernen durfte :)

Thema: Windows CE Messagebox schließt sich sofort wieder
Am im Forum: GUI: Windows-Forms

Gibt es irgendwelche Veränderungen an dem Hauptprogramm?
Also z.B. die Verlagerung in einen Background-Prozess zwecks eines Splash-Screens?

Das einfachste wird sein, wenn Du eine leere Applikation erstellst und dann peut á peut den Code um die MessageBox drumherum baust, bis es nicht mehr funktioniert.

Oder gibt es vielleicht ein Return als Tastatureingabe? CE reagiert da etwas anders. Wenn ich Text eingeben und die Applikation läd, sammelt CE die Eingaben und sendet die brav an die Applikation, wenn diese fertig geladen hat. Das hat manchmal unschöne Auswirkungen.
(Ich drücke Return, die Applikation reagiert augenscheinlich nicht, weil sie eine 2. Form initialisiert. Also drücke ich nochmal Return und die 2. Form öffnet und schließt sich sofort aufgrund der Eingabe)

Thema: Windows CE Messagebox schließt sich sofort wieder
Am im Forum: GUI: Windows-Forms

Hallo pikachu,

ich arbeite auch viel mit CE und mir ist das Verhalte weder bekannt, noch kann ich es nachstellen.

if (MessageBox.Show(Language.GetCaption("strClosingConfirmation"), Language.GetCaption("strClosingTitle"), MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.No)
                    e.Cancel = true;
Das klappt hervorragend. Bis auf die Icons, die werden nicht unterstützt. Trotzdem muss man sie mitgeben

Thema: Projektvorschlag: Ähliminator gesucht
Am im Forum: Projekte

Zitat von dr4g0n76
Jetzt brauche ich nur noch ähs. ^^ ;-)

Nichts leichter als das:
Edmund Stoiber - Transrapid

Anschließend müsste die Tonspur nur noch etwa 15 Sekunden umfassen

Thema: [erledigt] OpenFileDialog ändert GetCurrentDirectory()
Am im Forum: GUI: WPF und XAML

Die Lösung des Ganzen ist noch etwas einfacher als ich gedacht habe:


        private void OpenFileDialog(string initialDirectory)
        {
            var dlg = new Microsoft.Win32.OpenFileDialog();
            dlg.RestoreDirectory = true;            
            [...]
        }

Schön ist die Verwendung in WPF natürlich nicht, aber für den einen Dialog in der Anwendung finde ich mich damit ab.

Danke für den "Tritt" in die richtige Richtung!

Thema: [erledigt] OpenFileDialog ändert GetCurrentDirectory()
Am im Forum: GUI: WPF und XAML

Zitat von Abt
Ist auch das korrekte Verhalten. Sollte auch in der Beschreibung stehen.
Die Shell und Co verwendet und setzt diesen Wert bei jeder direkten API-Funktion, bei der es um Ordnerselektion geht.
Deswegen sollte man auch in .NET eher davon Abstand nehmen. Wieso interessiert oder stoert dich das denn in deiner Anwendung?

Hallo Abt,

danke für die Info! Dann muss ich das ggf. nach Beendigung des Dialogs wieder überschreiben. Sonst sehe ich da wenig Möglichkeiten für meinen Fall.

Die Applikation kümmert sich um die Konfig-Datei eines Dienstes. Somit liegt sie immer neben der Konfigurationsdatei. Wähle ich nun den Speicherort einer LOG-Datei aus, wird die Konfiguration auf einmal dort abgelegt und der Dienst findet sie nicht wieder. Daher stört es doch massiv ;-)
Zitat von FZelle
Zitat
Beim Beenden wird per relativer Pfadangabe eine Konfigurationsdatei gespeichert.
Zitat
Und nicht mehr im Programmverzeichnis.
Sowas macht man sowieso nicht, haben wir hier aber nur ca 10.000 mal erklärt.

Und vorallem gibt es deswegen extra ( seit FW 1.0 ) das Property RestoreDirectory im OFD.

Vielen Dank für die Belehrung, das hat nur leider überhaupt nichts mit dem Problem zu tun.
So erkläre ich mir auch die 10.000 Vorkommnisse :D

PS: Auch von mir nicht böse nehmen :)

Thema: [erledigt] OpenFileDialog ändert GetCurrentDirectory()
Am im Forum: GUI: WPF und XAML

Hallo zusammen,

ich habe eine Sache bemerkt, die ich mir überhaupt nicht erklären kann.

In WPF habe ich ein Control (Button) gebaut, welches einen Microsoft.Win32.OpenFileDialog() verwendet. Das Control habe ich an einer Textbox gebunden, diese dann den selektierten Pfad anzeigt.
Soweit, so gut!

Nun wähle ich damit eine Datei aus und beende das Programm. Beim Beenden wird per relativer Pfadangabe eine Konfigurationsdatei gespeichert.
Diese landet nun in dem Pfad, den ich vorher selektiert habe!!! Und nicht mehr im Programmverzeichnis.
Ändere ich den Dateipfad "manuell" über die Textbox, wird dieser korrekt übernommen und landet nach der Beendigung im Verzeichnis, wo auch die Anwendung liegt.

Meine Vermutung war, dass es mit InitalDirectory zusammenhängt. Habe ich auskommentiert -> Gleiches Verhalten.

private void OpenFileDialog(string initialDirectory)
        {
            // Create OpenFileDialog
            var dlg = new Microsoft.Win32.OpenFileDialog();

            // Set filter for file extension and default file extension
            var extension = new List<string>();
            extension.AddRange(_fileFilter.Split('|'));

            dlg.Title = DialogDescription;

            dlg.DefaultExt = extension.Count > 0 ? extension[extension.Count - 1] : ".*";

            dlg.Filter = _fileFilter;

            if (!string.IsNullOrEmpty(initialDirectory))
                dlg.InitialDirectory = initialDirectory;

            // Display OpenFileDialog by calling ShowDialog method
            var result = dlg.ShowDialog();


            // Get the selected file name
            if (result == true)
            {
                var filename = dlg.FileName;
                Text = filename;
            }
        }

Wenn ich nun Directory.GetCurrentDirectory() aufrufe, ist diese vor der Verwendung
..\bin\Debug\
nachher
C:\Temp\ (Dort liegt meine ausgewählte Datei)

Kann sich jemand das erklären?

Thema: Raspberry Pi 2 - aufgepimpter Himbeerkuchen
Am im Forum: Smalltalk

Zitat von BerndFfm
Ich habe einen Raspberry Version B hier im Einsatz als Mediaplayer mit xbmc.
[...]
Wenn sich das Teil nun mit Visual Studio programmieren lässt umso besser.

Da kann ich mich uneingeschränkt anschließen :)
Bisher habe ich XBMC Gotham als OpenElec am TV angeschlossen und bin sehr zufrieden.
Ein paar andere OS habe ich schon ausprobiert, aber wirklich effektiv nutzbar waren die imho nicht (Rein aus Performance-Gründen).

Da ich auch viel mit Home-Automation, Arduino, usw. zu tun hatte, sehe ich dort die Möglichkeit nochmal richtig durchzustarten! Bisher konnte ich, kommend aus der .Net Welt nie so richtig in die PI-Programmierung reinfuchsen.

Meine Bestellung geht gleich raus :)

Thema: Barcode Lesegerät => Scannung abgreifen
Am im Forum: Rund um die Programmierung

Hallo zusammen,

dann möchte ich meinen Senf auch noch dazu abgeben :)

Die imho einfachste Variante wäre es, dem BarcodeScanner ein Start- und Endzeichen zu hinterlegen. In der Regel liegen der Anleitung ein paar Konfigurations-Barcodes bei. Einmal anscannen, schon schickt der Scanner z.B. ein STX & ETX mit.
Natürlich muss man nun alle Eingaben verarbeiten und auf die Zeichen prüfen. Das geht aber relativ zentral über die OnKeyDown-Events oder ProcessCmdKey.

Gruß
trib

Thema: QuickIO.NET - Performante Dateioperationen
Am im Forum: .NET-Komponenten und C#-Snippets

Frohes neues Jahr Debiii,

versuch es doch mal wie folgt:

QuickIOFileCopyJob job = new QuickIOFileCopyJob (@"C:\Users\****\Desktop\Neuer Ordner\file.mp3", @"C:\Users\****\Desktop\Ordner\file.mp3", observer);

Sonst versuchst Du eine Datei in einen Ordnernamen zu kopieren.

Gruß
trib

Thema: Reflection - verschachtelte Objekte auslesen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo manullino,

das ganze wird natürlich über eine Schleife gelöst.
Man iteriert durch alle Properties und prüft deren Typen oder direkt das geparste object:


public static bool IsArray(Type t)
        {
            return t.IsArray;
        }
public static bool IsIList(Object o)
        {
            return o is IList;
        }
Wenn es sich um eine Array oder eine Liste handelt, ruft man erneut eine Schleife auf, die wiederum alle Properties dessen Typs durchläuft. Optimaler Weise macht man das nun Rekursiv, so dass Du die selbe Funktion wiederverwenden kannst.

Am besten schaust Du Dir mal an wie ein Serializer das macht. Dort findest Du massenweise Lösungen.
z.B. Simple JSON
Die Funktion GetFieldOrPropertyValue wäre dort von Interesse.

Gruß,
trib

Thema: Windows Mobile: Button Click wird nachgeholt
Am im Forum: GUI: Windows-Forms

Hallo eddieromm,

das kann ich bestätigen. Sofern die Form in irgendeiner Art und Weise läd/sperrt,
scheint das Gerät die Eingaben vorzuhalten.
Das betrifft nicht nur das Drücken eines Button, sondern auch die Eingaben per Tastatur oder Barcode-Scanner.
Bisher habe ich allerdings noch keinen Grund gesehen, weshalb das stört.
I.d.R. kennen die Anwender ja nach einer gewissen Zeit die Applikation und drücken instinktiv die korrekte Abfolge der Knöpfe.
Was aber hilft, ist eine vernünftige Rückmeldung an den Benutzer , damit dieser sieht, dass die Applikation arbeitet und er nicht nochmal den Knopf drückt. Sei es auch ein WaitCursor.

Thema: Kommunikation zwischen Webservice und Console App
Am im Forum: Web-Technologien

Hallo inek,

wo genau vermutest Du denn ein Problem?
Du kannst mit Bordmitteln (Webverweis hinzufügen) einen Webservice abonnieren, unabhängig ob es sich um eine Forms, WPF oder eben Konsolen-Anwendung handelt.

Wenn Dein Apache oder IIS steht, kannst Du aus der wsdl alle notwendigen Klassen in C# erzeugen lassen. Entweder manuell oder eben per "Webverweis hinzufügen" per Rechtsklick auf dem Projekt.

Diese Klasse wird dann Deine Funktion "GetValue" beinhalten und du kannst sie ansprechen. Den Rest erledigt dann das Framework für Dich (Bis auf das Abfangen von Fehlern).

Gruß,
trib

Thema: Performanceoptimierung beim rekursiven durchlaufen einer Form
Am im Forum: GUI: Windows-Forms

Zitat von _Bugrick_
Danke! Das klingt interessant, probier ich direkt mal aus. Wirklich einsetzen werde ich das aber auf die Schnelle nicht oder nie können, da wir unsere Übersetzungen zentral auf einer Datenbank einpflegen und beim Programmstart laden.

Hallo _Bugrick_,

es stellt überhaupt kein Problem da, wenn man die Übersetzungen beim Programmstart zieht und der Form vor der Darstellung übergibt. Da scheint eher noch ein architektonisches Problem zu bestehen.

Wenn Du jedes Mal die gesamte Übersetzung in einem Rutsch lädst, verwende doch einen SplashScreen. Hast Du die Übersetzungen beisammen, übergibst Du diese der Haupt-Form und rufst anschließend Show() auf.

Der Vorteil eines SplashScreens ist, dass dieser i.d.R. in einem anderen Thread läuft und somit die Ladeanimation unabhängig Deiner Datenbankanfrage aktualisieren kann.

Gibt es weitere Forms, so muss man natürlich selbst entscheiden, ob man dessen Übersetzungen schonmal präventiv in einem anderen Thread bezieht, oder beim Initialisieren der entsprechenden Form.
Das kommt dann darauf an wie schnell die Abfrage an die Datenbank von Statten geht.

Thema: Cache-Problem bei reporting services
Am im Forum: Rund um die Programmierung

In dem Projekt-Ordner findet man pro Report auch eine ReportName.rdl.data-Datei.
Diese muss man ggf. händisch löschen.
Normaler Weise sollte aber ein Klick auf die grünen Aktualisierungs-Pfeile in der Vorschau ausreichen. Klappt jedoch nicht immer...

[Offtopic]
Sicher dass Du nicht vielleicht doch eine andere Datenquelle verwendest, als Du erwartest?
Passiert schon mal :)
[/Offtopic]

Thema: Assembly.LoadFrom ohne versionierte Abhängigkeit
Am im Forum: Rund um die Programmierung

Zitat von herbivore
welche Überladung der Assembly.LoadFrom-Methode benutzt du?

Inwiefern wird bei Assembly.LoadFrom eine bestimmte Version referenziert?

Hallo herbivore,

ich lade sowohl die DLL mit dem Interface, als auch die Extensions per

Assembly.LoadFrom(assemblyFilePath);
Also über den reinen Dateipfad, samt dessen Abhängigkeiten.

Die Extensions rufen dann einen Fehler (Die Abhängigkeit konnte nicht gefunden werden...) hervor, wenn die Versionsnummer nicht exakt übereinstimmt.

Gruß,
trib

PS: Ich versuche mich gerade an

var assembly = Assembly.ReflectionOnlyLoadFrom(assemblyFilePath);
Dann muss ich aber einiges umstellen um an die Beschreibung zu kommen (Ist ein DescriptionAttribute)

[EDIT]:
So, das war schon die richtige Richtung. Danke!

Assembly.Load(AssemblyName.GetAssemblyName(assemblyFilePath));
wird auf das Interface angewendet, so dass die DLL ohne Version im Speicher landet. Anschließend kann ich die Extensions mit Assembly.LoadFrom problemlos laden. (Außer diese enthalten wiederum eine exakte Versionsabhängigkeit)

Thema: Assembly.LoadFrom ohne versionierte Abhängigkeit
Am im Forum: Rund um die Programmierung

Hallo zusammen,

ich habe aktuell ein Problem, wo ich A: Nicht weiter komme und B: Die generelle Funktionsweise dahinter nicht verstehe :(

Für eine Anwendung habe ich eine Erweiterung geschrieben. Diese leitet natürlich von einem Interface ab, welches mir die Anwendung zur Verfügung stellt. Die Anwendung erhält etwa einmal im Monat ein Update, womit sich die Build & Versionsnummer der Anwendung und eben auch dessen Interface ändert.
Die Erweiterungen sind jedoch alle aufwärts kompatibel.

Meine Erweiterung verweise nun auf die spezielle Version 5.0.0, obwohl die Anwendung mittlerweile 5.1.2 verwendet. Kein Problem soweit für das Programm.
Allerdings kann ich nun meine eigene DLL nicht mehr mit Assembly.LoadFrom auslesen, da diese die V 5.1.2 erwartet, aber die 5.0.0 referenziert.

Leider kann ich auch nicht fest auf die 5.0.0 referenzieren, das es noch weitere Erweiterungen von Kollegen gibt, die eine Zwischen-Version z.B. 5.0.7 verwenden können.

Wie kann ich nun meine eigene DLL auslesen, ohne die exakte Version deren Abhängigeit zu kennen?
Bzw. wie kann die Anwendung das ohne weiteres?


Ach, und weshalb mache ich das überhaupt? Ich brauche den Namen, die Beschreibung und die Version der Methode, die von dem Interface abgeleitet wird.

Thema: Control in anderem Prozess analysieren/modifizieren: Control aufgrund des .NET-Variablennamen finden
Am im Forum: Rund um die Programmierung

Hallo Quaneu,

kurze Info: Unter Windows 7, 8 & 8.1 funktioniert Spy++ nicht mehr.