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 schnecke
Thema: Fremde Registry
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hi,

nach langer C# Pause muss ich nun mal wieder ein kleines Projekt machen.

Ich möchte die Registry auslesen... lokal ist das über

Registry.LocalMachine.OpenSubKey(...);
auch kein Problem - aber wie mache ich das für x-beliebige Rechner im Netzwerk, von denen ich auch nur den Namen (also (noch) nicht die IP) habe? Wahrscheinlich über WMI oder so... aber weil ich nun ne gewisse Zeit aus C# raus bin, will es mir nicht einfallen... vllt jemand n Schnipsel oder Ideen? Habe leider nur diesen Thread hier gefunden: Weis jemand wie ich über wmi (oder C#) auf andere Registry zugreife aber der war nun nicht soooo befriedigend...

Admin-Passwort bzw. Domänen-Admin habe ich für die Zugriffe - also keine Sicherheitsfragen an dieser Stelle

Vielen Dank für alle Antworten...

Thema: LabelText -> DrawString ... oder drucken ... ?!
Am im Forum: GUI: Windows-Forms

Hallo,

ich wusste nicht ob meine Frage zu Forms oder Grafik gehört, deshalb stelle ich sie mal hier - kann aber gerne verschoben werden.

Also ich habe eine Form, in der eine PictureBox liegt mit der gleichen Größe. Die PictrueBox beinhaltet natürlich ein Bild, auf dem ich zeichnen. Nun habe ich noch eine Export-Funktion, die das Bild speichert... das mache ich so:

myPictureBox.Image.Save(sfd.FileName,ImageFormat.Jpeg);

So... dann kann man noch über ein paar Buttons Label der PictureBox hinzufügen:
Label label = new Label();
label.Text = "blabla";
this.picBox.Controls.Add(label);

Soweit, so gut... nun möchte ich aber gerne, dass beim Export ins Bild (oder auch beim Drucken z.B.) die Label-Texte mitgenommen werden.

Meine Idee wäre, die Labels in eine Liste zu schmeißen und in OnPaint jeden Label-Text per DrawString auszugeben. Das finde ich aber daher doof, dass man die Labels auch noch verschieben kann... und dann ist das eher schlecht... und außerdem gibt es doch da bestimmt eine bessere Methode...

Bestimmt fragt ihr euch, warum ich Labels nehme und nicht gleich DrawString ... das rührt daher, dass ich die Labels (oder halt den Text an sich) verschieben muss... und ich habe keine Möglichkeit gefunden, einen DrawString zu verschieben.

Soderle.... also für Ideen bin ich offen

Merci ihr Lieben und Grüße,
die Schnecke! =)

Thema: DrawLine -> Enden verschieben
Am im Forum: Grafik und Sound

Was meinst du mit Diskussion zum Project?!

Thema: DrawLine -> Enden verschieben
Am im Forum: Grafik und Sound

Na da antworte ich mir doch mal wieder selber

Ich habe mir jetzt eine Linien-Klasse gebaut, die Start- und Endpunkt hat sowie einen Beschreibungs-String...und wenn ich dann im Paint() alle Linien zeichne, mache ich einfach ein DrawString(myLine.Info, ...) mit ... =)

Hey, das war ja doch ganz einfach 8)

Thema: DrawLine -> Enden verschieben
Am im Forum: Grafik und Sound

Danke für die Tipps... so in der Art habe ich auch schon gedacht...

Aber habe nun diese Seite gefunden: http://www.codeproject.com/csharp/lineditor.asp#xx1055999xx

da ist schon so ziemlich das, was ich will....


ABER
Wir wäre es möglich, zu der Linie noch eine Beschreibung hinzuzufügen? z.B. per DrawString.... ?!

Thema: SaveFileDialog: neue Datei...
Am im Forum: GUI: Windows-Forms

Habe es doch noch hinbekommen; hier der Code:


if( saveFileDialog.ShowDialog() == DialogResult.OK )
{
	FileInfo fileInfo = new FileInfo(saveFileDialog.FileName);
	StreamWriter sw = fileInfo.CreateText();
    // ...
    sw.Write(myDate);
    sw.Close();
}

Thema: DrawLine -> Enden verschieben
Am im Forum: Grafik und Sound

Hey,

ich zeichne Linien mit DrawLine und würde gerne, dass man die Enden der Linien mit der Maus verschieben (= bewegen) kann. So das der User selber wählen kann, ob die Linien senkrecht, vertikal oder diagonal läuft (da er sie je verschieben kann). Ich weiß aber momentan keinen rechten Ansatz dafür um ...

a) einen MouseEvent an den Linienenden zu bekommen
b) Die Enden zu verschieben (vll. im Paint-Ereignis einfach die x bzw. y-Koordinaten an die der Maus anpassen...)
c) ....überhaupt alles...

Schön wäre es auch, wenn man die Linien größer und kleiner machen könnte... mhhh.... also wenn jemand eine Idee hat... her damit

Grüße!

Thema: SaveFileDialog: neue Datei...
Am im Forum: GUI: Windows-Forms

Hallo zusammen,

ich habe einen SaveFileDialog der über n Filter Dateien des Typs ".adr" anzeigt. Nun möchte ich eine neue Datei speichern, quasi also ein "Save As...". Das geht aber nie, ich kann immer nur bestehende Dateien überschreiben.

Beispiel: ich öffne den SaveFileDialog und sehe im Order C:\Temp diese Dateien:
- test1.adr
- test2.adr
- test3.adr

Nun möchte ich eine neue Datei "test4.adr" anlegen - bekomme aber immer beim klick auf "speichern" die Meldung "test4.adr konnte nicht gefunden werden" ... hmmm? Muss ich die Datei vorher noch anlegen oder wie? Und wenn ja - wie mache ich das?!

Verstehe das gerade nicht so.....?!

Thema: Bilder vergleichen
Am im Forum: Grafik und Sound

Zitat
Original von Qt21580
Mit GetPixel() bekomme ich zwar unterschiedliche Werte

... aber damit hast du doch schon quasi dein Ergebnis... fu vergleichst einfach beide Pixel-Werte (R,G,B) und wenn z.B. der B-Wert bei dem einem Bild höher ist als bei dem anderen dann weißt du doch, dass es dort "blauer" ist... und mit ein paar Berechnungen kannst du auch feststellen, ob es so und so viel Graustufen mehr sind etc.
Und wenn beide Pixel-Werte gleich sind, dann ist auch das Bild gleich... ganz easy


... oder was genau willst du jetzt vom PC ausgespuckt haben als Ergebnis?!

Thema: Delegate wieder entfernen...
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat
Original von Lynix
.... eben mit einer Abfrage auf null. Das sollte man grundsätzlich bei allen Events so machen.

Oh... das war mir so nicht bewusst.... bzw. habe ich nicht drüber nachgedacht... und bisher hat *klopf auf holz* das alles immer so funktioniert.... aber eigentlich ist es ja logisch, dass man auf null prüfen sollte.... ;(

Also vielen Dank für eure Tipps, waren wie immer sehr hilfreich.... und ich habe auch wieder was wichtiges dazu gelernt =)

Und mit dem -= geht jetzt auch wunderbar das (oder heißt es "der") Delegate wieder weg...

Thema: Delegate wieder entfernen...
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat
Original von IgG


myClass.OverImageDelegate d=new new myClass.OverImageDelegate(OverImage);
myObject.OverImage += d;
myObject.OverImage -= d;

Aber das += new ... ist in einer anderen Klasse und wird zu einem früheren Zeitpunkt angewandt. Erst im späteren Verlauf des Programms kommt es zu Zuständen, wo sich das Objekt ändert und dann nicht mehr auf das Event reagieren soll....vorher aber schon.

Einfach gesagt: bei Programmstart kann auf alle Bilder in einem Panel ein MouseOver gemacht werden, wird eine Aktion mit einem bestimmten Bild durchgeführt (sagen wir mal n Button gedrückt), dann soll das Bild nicht mehr auf den MouseOver-Event reagieren... ich glaube ich mache es komplizierter als es ist.... X(

Thema: Delegate wieder entfernen...
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Danke für die schnelle Antwort

Aber irgendwie klappt das so:

myObject.OverImage -= new myClass.OverImageDelegate(OverImage);  
nicht...
edit: mit "nicht klappen" meine ich, dass ich dann eine System.Null Exception bekomme, wenn ich den *früher vorhandenen* Event wieder auslöse... is ja eigentlich auch klar, dass er null ist, denn er ist ja weg... aber das Event wird trotzdem noch ausgelöst... soll es aber nicht...

... oder habe ich das jetzt missverstanden?!

Thema: Delegate wieder entfernen...
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

hier mein Code:


myObject.OverImage += new myClass.OverImageDelegate(OverImage);

... ich hoffe, das war jetzt verständlich... nun möchte ich von myObject das Delegate OverImage wieder entfernen... also quasi das hier machen:

myObject.Remove(OverImage);

... geht so natürlich nicht, aber damit wisst ihr, was ich möchte... also was habe ich zu tun?!

Danke schon mal =)

Thema: Socket: UDP-Broadcasts
Am im Forum: Netzwerktechnologien

Hi zusammen...

ich beschäftige mich gerade mit Sockets...worin ich auch recht neu bin... vielleicht kommen auch daher meine Probs... aber naja, ich kann mir halt nicht helfen und nach n paar Stunden googlen und testen bin ich mit meinem Latein am Ende.

Ich möchte per UDP ein Broadcast machen und mir alle NICs, die antworten, anzeigen lassen (also die IP der antwortenden Stellen). Doch das klappt nicht wirklich... mein Code bisher:


IPEndPoint ip= new IPEndPoint( IPAddress.Parse( "192.168.1.255"), 24105); 
Socket socket= new Socket( ip.Address.AddressFamily, SocketType.Dgram, ProtocolType.Udp); 			
socket.SetSocketOption( SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1); 
			
byte[] message= System.Text.Encoding.ASCII.GetBytes( "testnachricht"); 
socket.SendTo( message, message.Length, SocketFlags.None, ip); 

socket.SetSocketOption( SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 1000); 
IPEndPoint sender= new IPEndPoint(IPAddress.Any, 0); 
EndPoint remoteEP= (EndPoint)sender; 
byte[] buffer= new byte[1024]; 			 
try 
{ 
	int empfangen = socket.ReceiveFrom( buffer, buffer.Length, SocketFlags.None, ref remoteEP); 
	Debug.Write("Empfangen: " + empfangen.ToString() );
	sender= (IPEndPoint)remoteEP; 
	Debug.Write( "IP:" + sender.Address.ToString() ); 
} 
catch (Exception e) 
{ 				
	Debug.WriteLine( e.ToString()); 			
} 
socket.Close();			

Ich bekomme immer ein TimeOut... und ich weiß nicht, ob ich generell was *falsch* mache... oder woran es sonst liegt. Oder muss ich zum Senden und Empfangen zwei verschiedene Sockets benutzen?

Thema: PrintPreviewDialog: Zoom einstellen
Am im Forum: GUI: Windows-Forms

(antworte mir mal selber) 8)

Ich glaub, ich werde verrückt... das hier:

prnPrevDlg.PrintPreviewControl.Zoom = 1.0;
geht.... wird nur nicht von Visual Studio als autom. Codevervollständigung angeboten... und das hatte mich iritiert... aber compilieren und ausführen tut er es... strange... weiß jemand, warum es nicht per AutoComplete geht?!

Thema: PrintPreviewDialog: Zoom einstellen
Am im Forum: GUI: Windows-Forms

Ja... hallo erstmal...

Ich möchte in einem PrintPreviewDialog den Zoom-Faktor auf 100% stellen, per default ist der immer auf "Automatisch" gestellt... wie stelle ich das an? Ich habe diesen code hier über Google gefunden:


previewDialog.PrintPreviewControl.StartPage = 0;
previewDialog.PrintPreviewControl.Zoom = 1.0;     
previewDialog.PrintPreviewControl.Columns = 2;

... aber ich kann von meinem PrintPreviewDialog aus nicht PrintPreviewControl aufrufen, bzw. ansprechen... oder bin ich nur zu blöd?!

Also wenn jemand nen schnellen Weg weiß, dann her damit... wenn es nur über ein eigenes Control geht (abgeleitet von PrintPreviewDialog), dann lasst es mich wissen (obwohl mein gesunder Menschenverstand sich fragt, wieso ich keine Eigenschaft "Zoom" finden und einstellen kann).... =)

Thema: TreeView -> Anzahl der übergeordneten Nodes
Am im Forum: GUI: Windows-Forms

Wie kann ich auch einfache Weise die Anzahl der übergeordneten Knoten eines TreeView-Knotens ermitteln?

z.B. dieser Tree mit der Anzahl der Nodes dahinter:


Node0              - 0 Parent
   - Child0        - 1 Parent
   - Child1        - 1 Parent
   - Child2        - 1 Parent
Node1              - 0 Parent
   - Child0        - 1 Parent
   - Child1        - 1 Parent
      - Child0     - 2 Parent
      - Child1     - 2 Parent
Node2              - 0 Parent
   - Child0        - 1 Parent
      - Child0     - 2 Parent
         - Child0  - 3 Parent
         - Child1  - 3 Parent
Ich will natürlich immer die Parent-Anzahl haben.

Thema: Bandbreite im Netzwerk begrenzen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hmm... also eigentlich braucht man das Rad ja nicht neu erfinden... wenn du rein den Traffic begrenzen willst, dann kannst du viele fertige Tools nutzen, z.B.das hier: http://www.netlimiter.com/

... nur mal so als Idee...

Thema: Bandbreite im Netzwerk begrenzen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Die Bandbreite kann man IMHO nur an den Interfaces eines Netzwerkknotens selber einstellten... sprich, wenn du auf den Router willst, dann musst du dort die Netzwerk-Interfaces konfigurieren. Da dies meist über eine eigene, proprietäre Herstellersoftware funktioniert würde ich jetzt erstmal sagen, dass es schlecht aussieht.
Was für einen Router hast du denn?! Wenn du ihn über Telnet o.ä. steuern kannst, dann könnte ich mir das schon eher vorstellen (z.B. Befehle für die NIC an den Router schicken).

Thema: tabpage scrollen ...
Am im Forum: GUI: Windows-Forms

Herje, jetzt habe ich des Rätsels Lösung... Petzold sei Dank... nach Durcharbeiten des ganzen Kapitels über Bildläufe ist mir klar, warum es nicht geht: Der Bildlaufbereich basiert auf Position und Größe der Steuerelemente im Clientbereich. Wenn keine Steuerelemente im Clientbereich vorhanden sind, wird der Bildlaufbereich auf (0,0) gesetzt. Also habe ich die Festlegung der Werte für meine Scrollbar nun erst dann gemacht, nachdem Komponenten auf meinen Panel gelandet sind - und nicht davor. So habe ich meinen Code nun auf folgende kleine Änderung angepasst:


// ERST dem Panel Komponenten hinzufügen
MyCustomPanel panelNew = (MyCustomPanel)myPanels[1];
panelNew.Visible = true;
this.panel.Controls.Add(panelNew); 

// Und DANN die AutoScrollPosition festlegen:
this.panel.AutoScrollPosition = new Point(1000,500);

Man... so einfach... wenn mans weiß... =) 8o

Thema: tabpage scrollen ...
Am im Forum: GUI: Windows-Forms

Dieser Code hier:


Point p = this.panel.AutoScrollPosition;
p.X = 1000;
p.Y = 500;
this.panel.AutoScrollPosition = p;

MyCustomPanel panelNew = (MyCustomPanel)myPanels[1];
panelNew.Visible = true;
this.panel.Controls.Add(panelNew);
... ändert nicht die ScrollPosition meines Panels... aber warum?!

Der Debugger zeigt das hier (siehe Bild):
AutoScrollPosition ist (0,0) aber scrollPosition ist richtig (1000,500)... warum springt der Schiber der Scrollbalken da nicht hin?! Er bleibt einfach auf (0,0)... das kann doch nicht so schwer sein

Thema: Daten drucken
Am im Forum: GUI: Windows-Forms

Zitat
Original von dying_fetus
Habe schon nachgegrast und Methoden wie PrintPage, PrintDocument etc. gefunden, ist aber alles irgendwie unbrauchbar.
Naja, ohne PrintPage-Event und PrintDocument wirst du nicht viel drucken können.... das brauchst du nun mal zum Drucken, ob du es schön findest oder nicht.

Da du Daten aus der DB holst und anzeigst, nehme ich an, dass du irgendwo in deinem Code deine Daten in nem DataSet oder eine DataTable hälst... und der Inhalt dieser Komponenten lässt sich recht einfach auf eine Seite bringen und ausdrucken. Beispiele zum Drucken gibt es in der MSDN... und dann änderst du das Beispiel einfach so ab, dass deine DataRows gedruckt werden. Du kannst dir z.B. eine Klasse "Printer" schreiben, der du deine zu druckenden Rows übergibst, dann einfach OnPrintPage überschreiben und so anpassen, dass deine Rows gedruckt werden... z.B. so:


// Um z.B. die Spaltennamen zu drucken:
for(int i = 0; i < myDataTable.Columns.Count; i++)
{							
	grfx.DrawString(myDataTable.Columns[i].ToString(), myFont, Brushes.Black, xVal, yVal);		
}	
// Nun noch durch die Rows wandern und deren Werte poer DrawString ausdrucken... fertig :)

Thema: tabpage scrollen ...
Am im Forum: GUI: Windows-Forms

Size-Wert der PictureBoxen sind 30x30 (es sind mehrere, die zu einem großen Bild gehören) und Size des Panels ist 1500x1000. Die PictureBoxen sind auf dem Panel. Dann zeichne ich noch auf dem Panel eine Bitmap, die 3000x1500 groß ist, deshalb hat das Panel auch Scrollbars.

Thema: tabpage scrollen ...
Am im Forum: GUI: Windows-Forms

Also der Debugger bestätigt, dass die Scrollbars dem Panel gehören.

Thema: tabpage scrollen ...
Am im Forum: GUI: Windows-Forms

Zitat
Original von Programmierhans
Hast Du Panel.AutoScroll auf true
ja.
Zitat
Original von Programmierhans
ist das Control auf dem Panel grösser als das Panel ?
ja... habe da ein Bild drauf, dass größer ist als das Panel. Das Panel hat auch Scrollbars.

Thema: Angemeldeter Benutzer ferner Rechner
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ja, er läuft schon per WMI ... ich wollte nur ne andere Möglichkeit haben für das OS, denn eine WMI-Anfrage auf einem Linux-Server verläuft natürlich ins Leere...

... und die installierten Programme kann ich mir per WMI nicht anzeigen lassen, zumindest habe ich dafür keine Auslese-Funktion gefunden...

Thema: tabpage scrollen ...
Am im Forum: GUI: Windows-Forms

Also ich habe irgendwie schon wieder Probs mit dem Scrollen, dieses Mal in einem Panel... ich glaube, ich bin da zu blöde für X(...hier mein Code:


Point foundPos = new Point(0,0);
//...

if(valueFound)
{
   foundPos.X = 1000;
   foundPos.Y = 500;
}

panel.AutoScrollPosition = foundPos;
				
MessageBox.Show(foundPos.ToString() );
MessageBox.Show(panel.AutoScrollPosition.ToString() );

Ich bekomme als Ausgabe:
(x=1000,y=500)
und
(x=0,y=0)

... hähhh?!?!

Thema: Forms in Taksleiste
Am im Forum: GUI: Windows-Forms

Application.Exit() beendet doch das ganze Programm inkl. aller Unterfenster... oder habe ich da jetzt was nicht verstanden...?!

Thema: Angemeldeter Benutzer ferner Rechner
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Was meinst du mit rundll-Befehlen?!
Und wie kann ich das auf einem Remoterechner ausführen?!

Thema: Angemeldeter Benutzer ferner Rechner
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat
Original von norman_timo
"appwiz.cpl"

Ja, der Aufruf ist schon mal gut
Aber das startet ja die Ansicht für die Software-Übersicht... ich hätte am Liebsten einfach nur eine Textausgabe, also kein ganzes Fenster... sondern sowas wie:
string[] installedPrograms = GetProgrames("192.168.1.1");

... das ist natürlich Wunschdenken, denn ich könnte mir nicht vorstellen, dass es möglich ist, einfach so ein Programm auf einem Remoterechner zu starten... ich könnte den ganzen Rechner ja sonst hacken...
Man könnte bestimmt auf einem Server einen Thread laufenlassen, der Client-Anfragen entgegegennimmt - aber ich habe keinen Server zur Verfügung...