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 Borg
Thema: Bild in Picturebox laden und positionieren?
Am im Forum: Grafik und Sound

@Mr. Ed: Ich nehme an, es geht dir immer noch um dein Navigationssystem. Dann hast du wohl den letzten Satz meiner Antwort in Wie realisiert man die Bewegung der Karte von Navi Systemen? überlesen.
Daher wiederhole ich ihn hier noch einmal:

Zitat
Dazu kannst du bei einigen der Überladungen von Graphics.DrawImage() angeben, welcher Bereich einer Bitmap gezeichnet werden soll.
Damit sparst du dir das vorherige Kopieren und kannst direkt in deine PictureBox zeichnen.

Thema: [CF] serielle Druckeransteuerung ohne Treiber
Am im Forum: Rund um die Programmierung

Du brauchst doch vor dem String bloß die passende Anzahl an Leerzeichen senden, schon hast du rechtsbündigen Text...

Thema: webBrowser Schwierigkeiten
Am im Forum: GUI: Windows-Forms

Probier mal als URL "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}"

Thema: Laufwerk sperren/verstecken
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Event zu Mount und Unmount von Laufwerken?
Hardware sicher entfernen

Du könntest bei der Installation des Backup-Programms einen neuen Nutzer erstellen, der sich nicht lokal anmelden darf.
Dann startest du einen Service unter diesem Benutzer, der nur auf angesteckte Hardware wartet und diese darauf testet, ob sie eines deiner Backup-Medien sind.
Sollte das der Fall sein, entzieht der Service dem Gerät den Laufwerksbuchstaben und bindet es unter einem NTFS-Ordner ein, dessen Rechte so gesetzt werden, dass nur der Service-eigene Benutzer darauf zugreifen darf.
Die eigentliche Backupsoftware kann dann über eine der vielen Schnittstellen mit dem Service kommunizieren und so auf die Daten zugreifen.

Wenn der Nutzer allerdings Admin-Rechte hat oder den Stick an einen anderen Rechner steckt, war die ganze Mühe umsonst.
Du solltest also zusätzlich darüber nachdenken, Daten zu verschlüsseln und zu signieren.

Thema: IComparer Problem
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Schneide mal die komplette Compare-Methode aus, und lösche das :IComparer<>.
Dann Bereinigen und neu Erstellen, im Anschluss wieder :IComparer<> ran, von VS die Methodenrümpfe des Interface generieren lassen und den Code wieder einfügen...

Thema: RichTextBox Inhalt in HTML umwandlen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Forensuche nach "rtf html" liefert: Rtf 2 Html

Wer suchen kann, ist klar im Vorteil...

Thema: thread richtig abbrechen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Den Post von svenson solltest du eher so verstehen, dass du nicht unbedingt Code im catch- oder finally-Block brauchst.

Also ganz außen in deiner Thread-Methode ein try-catch so wie oben um die ThreadAbortException abzufangen und innerhalb des try-Blocks dann alle IDisposable-Objekte in ein using setzen und lokale try-catch und alles läuft.

Bei der ThreadAbortException sollte man immer bedenken, dass diese für den Thread eine Exception - also Ausnahme - ist. Man sollte einen Thread nur wenn unbedingt nötig per Thread.Abort abbrechen.

Thema: Updatestrategien
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Aus Datenschutzgründen und um den Server zu schönen, würde ich es anders herum machen.
Der Server stellt einfach eine statische Datei zur Verfügung (hier bietet sich XML geradezu an), welche eine einfache Liste mit Komponente, aktuellste Version, Dateihash und Download-Url enthält. Dein Programm lädt die Liste herunter, vergleicht mit den lokalen Versionen, lädt die neuen herunter, checkt den Hash und überschreibt die alten.
Falls du auch Dateitypen, welche keine Versionsinfo enthalten, updaten möchtest, musst du halt vorher den Hash berechnen (bzw. speichert diesen vom letzten Update).

Thema: Windowstaste + (ein buchstabe)
Am im Forum: GUI: Windows-Forms

Tastaturkombinationen aus dem Tray heraus abfangen

Thema: Netzwerk Überwachen
Am im Forum: Web-Technologien

@aelfxxx: Wieso machst du nach 1,5 Stunden im selben Forenbereich(!) noch mal den gleichen Post? Haben dir die Antworten im ersten nicht gefallen?
Crossposts (eigentlich RedundantPosts) sind nicht gern gesehen...

Ansonsten: Alle Daten im Internet-Café laufen über einen lokalen Proxy. Dieser stellt zusätzlich einen Service bereit, über den sich Rechner aus dem lokalen Netz an- und abmelden können. Der Proxy beliefert dann nur gerade angemeldete Rechner, alle anderen bekommen eine Startseite zu sehen.
Auf dem Rechner muss das Tool dann nur dem Proxy-Service mitteilen, dass an- bzw. abgemeldet wurde und einen Timer anzeigen.
Der Proxy-Webservice kann dann beim Abmelden die Rechner-/Zeit-/Volumen-Daten an den Kassenrechner weitergeben.
Damit kannst du auch verhindern, dass sich jemand einfach so am Internet eines Rechners bedient.

Thema: Internet Cafee
Am im Forum: Netzwerktechnologien

@aelfxxx: Wieso machst du nach 1,5 Stunden im selben Forenbereich(!) noch mal den gleichen Post? Haben dir die Antworten im ersten nicht gefallen?
Crossposts (eigentlich RedundantPosts) sind nicht gern gesehen...

Thema: Quellcode separieren
Am im Forum: Rund um die Programmierung

Das Unit-Konzept von Delphi kommt aus dem Pascal-Erbe und damit der strukturierten Programmierung.
Dort stellten Units mit den Interface- und Implementation-Blöcken die einzige Möglichkeit der Steuerung der Sichtbarkeit dar (vergleichbar mit der C-Unterteilung in Code- und Headerdateien)

Hier geht es dir wie dem C++ Programmierer, der sich auch mit Header-Dateien herumschlagen muss...

In einer OO-Programmiersprache ist dieses Konzept eigentlich überflüssig (Sichtbarkeit auf Klassen und Member-Ebene, nicht auf Codeblock-Ebene).
Daher gibt es in einer OO-Sprache auch so etwas nicht (außer halt als Erblast).

Thema: Problem: Methode Überschreiben
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Du lagerst den rekursiven Teil von ClearFields in der Elternklasse in eine private Methode aus, welche du dann von ClearFields aufrufst.

Thema: IComparer Problem
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Schon mal "Erstellen\Projektmappe bereinigen" und dann "Erstellen\Projektmappe neu erstellen" probiert?

Thema: ArgumentNullException bei Methodenaufruf
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Genau aus dem Grund setze ich jede einzelne Bedingung in Klammern.
Also:

 if ((paramList == null) || (paramList.Count == 0))
Dann kann nichts schief gehen...

Thema: Wie realisiert man die Bewegung der Karte von Navi Systemen?
Am im Forum: Grafik und Sound

Ich finde die erste Möglichkeit besser.
Begründung mal indirekt:
Wenn du die zweite Möglichkeit implementierst und nur am Rand eine neue Kachel einblendest, kann man nicht vorausschauend fahren. Also müsstest du den Wechsel bereits durchführen, bevor der Cursor am Rand angekommen ist. Das bedeutet aber, dass sich der Cursor immer nur über einen kleinen Bildausschnitt bewegt, der Hintergrund periodisch geändert wird und der Cursor springt.
Es ist leicht einzusehen, dass die andere Darstellungsvariante mit dem ruhenden Cursor und der sanft scrollenden Karte ruhiger wirkt, daher besser beobachtbar ist und durch die Ermöglichung einer vorausschauenden Fahrweise sicherlich insgesamt deutlich ergonomischer ist.

Da du mit einer gescannten Karte arbeitest, brauchst du doch bloß ausrechnen, bei welcher Pixelposition sich das Fahrzeug befinden würde und dann einen ausreichend großen Bereich um diese Position aus der Karte auf dem Bildschirm darstellen.
Dazu kannst du bei einigen die Überladungen von Graphics.DrawImage() angeben, welcher Bereich einer Bitmap gezeichnet werden soll.

Thema: Wie mache ich 2D-Spiele?
Am im Forum: Grafik und Sound

Zuerst muss ich zugeben, dass ich mich oben geirrt habe. Das XNA GSE lässt sich wirklich nur auf einer Express Version installieren.

Allerdings:

Ich habe den Installationsversuch mit einem Registry-Monitor überwacht und die Schlüssel identifiziert, an denen die Installation das Vorhandensein eines VS Express erkennt.
Durch Erzeugen einiger Schlüssel war es mir schon einmal möglich, die Installation durchzuführen (ich habe VS Professional). Leider gibt es beim Fertigstellen der Installation einen weiteren Fehler, der zu einen Rollback führt.
Ich habe heute Abend aber weder Zeit noch Muße, mich mit diesem Fehler auseinander zu setzen.
Ich werde mich die nächsten Tage weiter damit beschäftigen.
Das bisherige Ergebnis lässt mich allerdings an die Möglichkeit einer Lösung glauben.

Sobald sich etwas neues auf dieser Front ergibt, werde ich im Forum einen Thread erstellen.

Thema: 2 Tastaturen unterscheiden?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Nur wenn der Treiber dies zulässt. Falls er sich wirklich ausschließlich als Tastatur anmelden kann, wird diese immer parallel und ununterscheidbar zu einer richtigen Eingaben erzeugen.

Thema: .NET-Framework zerschossen?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Jag mal ein paar RegCleaner über dein System, die die COM-Registry säubern.

Thema: Parameterisierte Threads + Methode per Thread?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat
Wo auch immer das dort oben her stammt: vergiss es
Ob du nun anonyme Methoden oder benannte verwendest, ändert am Prinzip nichts...

Thema: IComparer Problem
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Passiert manchmal, dass er das nicht erkennt. Schreib mal public int IComparer<ListViewItem>.Compare( ... )

Thema: Parameterisierte Threads + Methode per Thread?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

internal class myThreadData{ // ... }
private void myThreadProc( object obj )
{
   myThreadData data = obj as myThreadData;
   if (data == null)
   {
      return;
   }
   // tue was auch immer
}

// irgendwo anders
myThreadData data = new myThreadData();
// data füllen
Thread myWorker = new Thread(new ParameterizedThreadStart(myThreadProc));
myWorker.Start( data );
// irgendwas anderes tun
// evtl. mittels myWorker.Join() auf den Thread warten
// data wieder auslesen

Thema: Konzept Multithreadding in GUI Anwendung
Am im Forum: GUI: Windows-Forms

Einen Thread zu starten ist doch aber nicht schwer.
Und da du für verschiedene Aufgaben sowieso verschiedene Methoden verwendest, stellt es ja kein Problem dar, diese jeweils in einem neuen Thread zu starten.
Mittels ParamterizedThreadStart (such mal hier im Forum danach) kannst du auch Parameter an den Thread übergeben. Das kann auch eine eigene Klasse sein, die Unmengen von Informationen enthalten kann. Aus dieser kann der Thread entnehmen, was er tun soll und seine Rückgabe speichern.

Also kannst du grundsätzlich so vorgehen:

internal class WaitDialog : Dialog
{ // ... }

internal class myThreadData
{
   public WaitDialog progress;
   // was auch immer
}

private void myWorkerThread( object obj )
{
   myThreadData data = obj as myThreadData;
   if (obj == null)
   {
      return;
   }
   // tue was auch immer, speichere Ergebnisse in data
   // aktualisiere ab und zu den Dialog über data.progress.Invoke
   // am Ende den Dialog über Invoke schließen
}

private void DialogZeigenUndArbeiten()
{
   myThreadData data = new myThreadData();
   // Infos in data setzen
   data.progress = new WaitDialog();
   (new Thread(new ParameterizedThreadStart(myWorkerThread))).Start(data);
   data.progress.ShowDialog();
   // ergebnisse aus data auslesen
}

EDIT:
Zitat
Im Prinzip gibts das schon und nennt sich BackgroundWorker.
Stimmt. Ich glaube, die Verwendung des BackgroundWorker macht die Sache für dich auch deutlich einfacher...

Thema: Problem mit Traffic überwachung
Am im Forum: Rund um die Programmierung

Wenn du den Counter natürlich auf das Loopback Interface ansetzt, bekommst du auch nur Verkehr für Loopback (localhost, 127.0.0.1) mit...

Thema: xml, sonderzeichen maskieren
Am im Forum: Netzwerktechnologien

http://msdn2.microsoft.com/en-us/aa738924.aspx

Thema: Form unten rechts in der Ecke
Am im Forum: Rund um die Programmierung

Nimm statt Bounds lieber WorkingArea, da sind alle Toolbars schon abgezogen.

Also im Form:

Rectangle rec = Screen.PrimaryScreen.WorkingArea;
this.Location = new Point( r.Right - this.Width, r.Bottom - this.Height );

Thema: explorerfenster in Form
Am im Forum: GUI: Windows-Forms

Zitat
War das jetzt hilfreich oder nicht?
Ich hätte wenigstens ein Danke erwartet.

Jetzt bist du aber leicht ungeduldig:

schillerdeluxe
Letzte Aktivität: Gestern, 16:46:07

Thema: Wie mache ich 2D-Spiele?
Am im Forum: Grafik und Sound

Zitat
Verstehe ich das richtig, dass sich das XNA nur in C# Express einbindet?
Nein.

Thema: IComparer Problem
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

public class ListViewComparer : IComparer< ListViewItem >

Thema: Process mit Adminrechten starten
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Wenn du den Nutzer aber darum bittest, dir Name und Kennwort eines Admins anzuvertrauen (ich würde es nicht machen, wenn ich nicht den Code sehe und selbst kompiliert habe), ist ein Dialog, in dem du auswählen kannst, das ganze eben nicht per Admin zu machen, doch relativ sinnlos...
Ansonsten kannst du ja vorher fragen, ob das ganze unter einem anderen Account gestartet werden soll und dann erst den Dialog anzeigen.