Laden...
W
Walter Sägesser myCSharp.de - Member
Dipl. El. Ing. FH Schweiz, Zürcher Oberland Dabei seit 26.02.2007 15 Beiträge
Benutzerbeschreibung

Forenbeiträge von Walter Sägesser Ingesamt 15 Beiträge

29.09.2011 - 08:26 Uhr

Ich habe eine Applikation mit einem eigenen Thread für einen TCP-Listener. Wenn die Applikation geschlossen wird, rufe ich "Thread.Abort" auf, um vorerst den Thread zu beenden.
Unter Win-XP funktioniert das seit langer Zeit einwandfrei und unter allen Umständen. Läuft die Applikation jedoch unter Win-7, wird der Thread nicht beendet, d.h. im Taskmanager wird der Prozess nicht entfernt. Systematisch und nicht nur gelegentlich.
Ich habe nirgends einen Hinweis gefunden, dass Thread.Abort unter Win-7 nicht funktionieren würde. Wie müsste man denn das Win-7 konform machen? Danke für alle Hilfe.

Walter

04.06.2010 - 09:00 Uhr

Ich versuche mich an einer Applikation, die via HID Klasse mit einer MCU spricht. Auf der MCU habe ich, weil als Demo vorhanden, eine USB-Tastatur laufen. (Später soll daraus ein generisches HID-Gerät für bidirektionalen Datentranfer werden, das tut aber hier nichts zur Sache).
Dabei habe ich festgestellt, dass hunderte (nun ja, beinahe ...) von Einträgen in die Registry gemacht werden für dieses Gerät. Und solange diese Einträge vorhanden sind, bleibt das Gerät eine Tastatur, da kann ich in der MCU die Klasse, die Subklasse, das Protokoll ändern wie ich will; Windows kennt anscheinend nur ein Motto: Einmal eine Tastatur, immer eine Tastatur.

Nun meine Frage. Wie entferne ich mein Gerät vollständig, ohne Registry-Geschmier, wieder von meinem PC?

(Wenn ich die PID ändere, dann sieht Windows wohl ein neues Gerät mit dem Attribut "HID-kompatibel", also keine Tastatur. Aber das ist keine sinnvolle Lösung).

Dank für alle Hilfe.
Walter

05.03.2010 - 13:09 Uhr

Das hört sich ja ganz nach Plug'n Play an, Betonung auf Play.

Danke für eure Inputs.

04.03.2010 - 14:40 Uhr

Seit Tagen suche ich nach einer Möglichkeit, ALLE aktiven IP-Adressen des lokalen Subnetzes zu finden, an dem auch mein PC angeschlossen ist. Alle Vorschläge, die ich bisher gefunden habe, liefern nur meine eigene IP resp. die IP eines bekannten Hostnamens (z.B. WMI, Registry scan).
Am meisten verspricht noch der Zugriff über das Tool 'net view'. Aber 'net.exe' sieht offenbar nicht alle Geräte, die momentan angeschlossen sind (ich habe z.B. ein embedded Gerät, das per DHCP eine IP erhalten hat und von 'net' nicht erkannt wird).
Eigentlich müsste doch der DHCP Server im Netz Bescheid wissen. Kann man iergendwie darauf zugreifen?

Besten Dank
Walter

12.02.2009 - 09:11 Uhr

Es dürfte sich um einen gewöhnlichen Deadlock handeln.
Siehe in der Online-Hilfe "Process...StandardOutput-Eigenschaft" oder auch "Process...BeginOutputReadLine-Methode".
Da kann man sich ein recht gutes Bild machen.

24.01.2009 - 15:36 Uhr

Ist die Frage zu blöd 🙁 oder das Problem zu gross 8o? Keinerlei Hinweis?

19.01.2009 - 15:28 Uhr

Ausgehend von UserControl mit panel designer-fähig erstellen habe ich ein UserControl gebaut, welches erlaubt, verschiedene Seiten umzuschalten (ähnlich TabPages). Im Designer kann ich auf jede Seite Controls ziehen und dann hin- und herschalten. So weit so gut.

Das Konzept:*Basis-Control B, auf welchem ein designer-fähiges Panel DfP sitzt (auf welches Controls gezogen werden können). *'Tabs'-Property, über das der Anwender weitere Seiten hinzufügen kann. *Jede Seite erzeugt per Code ein Panel Px, welches dazu dient, beim Umschalten der Seiten die entsprechenden Controls aufzunehmen. DfP enthält also nur jeweils die dem aktiven Tab entsprechenden Controls (und das entsprechende Px ist dann leer). *alle Px werden B.Controls hinzugefügt.

// add a new panel due to a new tab
// call: property handler for Tabs
      internal Panel AddNewPanel ()  // in B, call: property Tabs.Set
      {
         Panel xPan = new Panel ();

         xPan.Name = "panel" + ( fPanels.Count++ ).ToString ();
         xPan.Location = new Point ( 0, 0 );
         xPan.Size = new Size ( 100, 100 );
         xPan.Visible = false;

         // nützt nichts und schadet nichts
         this.Controls.Add ( xPan );    
         fPanels.Add ( xPan );     // List<Panel>

         if ( fRecentPan == null )
            { fRecentPan = fPanels [ 0 ]; }
  
         pan__tabs.Refresh ();  // zeichnet zugehörigen Tab (vertikal)
         return xPan;           // wird dem Tab zugeordnet
      }

      // switch the controls from and to the visible control
      // necessary due to the fact that only pan__panels is able to receive 
      // controls at design time.
      // call: TNormTabPanelDesigner.OnMouseDragBegin (-> designer controlled)
      // aPan: the panel associated with the tab clicked by the user (sourse)
      internal void HandleTab ( Panel aPan )
      {
         if ( fRecentPan == aPan )  // the user clicked the same tab again
            { return; }

         while ( pan__panels.Controls.Count > 0 )  // pan__panels entspricht BfP
         {
             fRecentPan.Controls.Add ( pan__panels.Controls [ 0 ] );
         }

         while ( aPan.Controls.Count > 0 )
         {
            pan__panels.Controls.Add ( aPan.Controls [ 0 ] );
         }
         fRecentPan = aPan;
      }

Nun das "unlösbare" Problem:
Wenn ich auf ein Testform T ein Control B ziehe, ein paar Tabs zufüge und auf jede Seite ein Control ziehe, werden zwar ALLE Controls im T.Designer.cs gespeichert, jedoch die durch Code eingefügten Panels Px nicht. Somit geht auch alle Information verloren, welches Control auf welcher Seite war (ausser das, was zuletzt auf DfP sichtbar war).
Mir fehlt offenbar das Verständnis, was da abläuft oder ablaufen sollte und ich finde nichts, das mir weiterhelfen würde. Hat jemand den entscheidenden Hint?

Walter

16.01.2009 - 15:41 Uhr

Die Sache funktioniert und gibt eine Basis für weitergehende Arbeit.

Ich habe jedoch bis jetzt nicht herausgefunden, wie ich z.B. die Mausposition im Design (uiInnderPanelDesiger) festestellen kann. MouseMove oder MouseClick stehen ja nicht zur Verfügung und MouseHover gibt keine Position an.

Ich wollte ein eigenes tab-ähnliches Control bauen, wo man zur Designzeit neue Panel hinzufügen kann, zwischen denen dann umgeschaltet werden kann. Dazu muss ich aber wissen, wohin ich mit der Maus klicke.

Danke für alle Hilfe.
Walter

Mit "OnMouseDragBegin" geht's. Erledigt.

09.01.2009 - 07:00 Uhr

Danke. Da hätte ich ja eigentlich selber drauf kommen müssen. So hervorragend das Intellisens im Allgemeinen ist ... gelegentlich hindert es einen am Denken.

08.01.2009 - 15:10 Uhr

Ich wollte eine Container-Komponente erstellen und bin im Formum unter anderem auf die Klasse "System.Windows.Forms.Design.ControlDesigner" gestossen.

Ist diese Klasse in C#-Express 2008 nicht enthalten? Oder gibt es einen anderen Grund, warum ich nicht kompilieren kann?

Walter

06.12.2008 - 12:53 Uhr

Danke, sarabande. Wie so oft: gewusst wo.

(Dachte ich's mir doch, dass jemand fragen würde "Wozu der Unsinn" 😉. Manchmal will man halt einfach etwas ausprobieren, auch wenn die Erfolgschancen nicht riesig sind).

05.12.2008 - 17:00 Uhr

Ich will ein von RichTextBox abgeleitetes Control erstellen mit überschriebener OnPaint Methode.


public class MyRich : RichTextBox
{
...
   protected override void OnPaint ( PaintEventArgs e )
   {
      base ....
   }
}

Das kompiliert zwar, die Routine wird aber nie aufgerufen.
Gibt es irgend einen Trick, um das System dazu zu überreden, freundlicherweise die überschriebene Routine zu benutzen?

Wenn ich die Ableitung von Panel mache (anstatt RichTextBox), dann funktioniert es einwandfrei. Panel ist aber nicht was ich will.

Besten Dank für jede Hilfe
Walter

27.02.2008 - 13:20 Uhr

Ich will, dass längere Texte in den ToolTips mehrzeilig angezeigt werden.
Im Basis-Form habe ich mit dem PopUp-Event der 'hint'-Eigenschaft eine neue Grösse gesetzt und Zeilenumbruch aktiviert. Das funtioniert für alle normalen Controls auf allen abgeleiteten Forms.

Jedoch Schalter auf einem ToolStrip oder ToolStripMenuItems auf einem MenuStrip bleiben von dieser Massname unberührt. Die ToolTips erscheinen immer einzeilig und in der Standardfarbe.
Wie bekomme ich Zugriff auf diese ToolTips so dass ich sie zu mehrzeiliger Ansicht zwingen kann? Besten Dank für alle Hinweise.
Walter

08.11.2007 - 08:00 Uhr

Ich habe ein grösseres Projekt von Delphi .NET auf C# zu portieren.
Zur Zeit habe ich VS C# Express installiert und komme damit auch ziemlich gut zurecht.
Frage: Gibt einen ernsthaften Grund, auf eine käufliche Version umzustelln (Standard, Professional)? Sind diese z.B. mit einem besseren Debugger ausgestattet oder liegen die Unterschiede ausschliesslich in "Feature vorhanden / nicht vorhanden"?
Besten Dank für alle Hinweise.
Walter