Laden...
P
phreakadelle myCSharp.de - Member
Fachinformatiker Anwendungsentwicklung Wolfenbüttel Dabei seit 25.03.2009 66 Beiträge
Benutzerbeschreibung

Forenbeiträge von phreakadelle Ingesamt 66 Beiträge

07.12.2016 - 09:24 Uhr

Ja, das stimmt. Habe ich so gerade nicht bedacht. 😃

07.12.2016 - 09:00 Uhr

Haben nicht alle Controls die "Tag"-Eigenschaft? Das könnte man doch nutzen, um die diversen TextBoxen voneinander zu unterscheiden. Damit könnte man auf die zusätzliche List<TextBox> verzichten.

24.07.2012 - 11:42 Uhr

Coole Idee, könnte sehr nützlich sein, wenn die Keys richtig ausgelesen würden.

Leider ist bei mir der Windows 7 Key fehlerhaft. Der Office 2010 Key war in Ordnung.

/EDIT:
Windows 7 ist bei mir 32 Bit.

11.05.2012 - 12:44 Uhr

Ich meine, funpic betreibt nur MySQL...

09.03.2012 - 13:08 Uhr

Versuch mal:


Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = "/C print.bat";
p.Start();

Das sollte meines Erachtens nach funktionieren.

15.02.2012 - 09:35 Uhr

Moin!

Dann solltest du vielleicht die komplette Schleife in einen Thread legen, anstatt für jeden einzelnen Download einen eigenen Thread zu starten.

Gruß,
phreakadelle

Edit:


        for (int i = 0; i < listView1.Items.Count; i++)
        {
            string downloadName = listView1.Items[i].SubItems[1].Text;
            string url = myObject.getDataLink(downloadName);
            myDlObject.download(url);
        }

Also, die Schleife in dieser Form in einem Thread unterbringen.

19.03.2011 - 14:58 Uhr

Naja, ungefähr so:

//Code zum Öffnen des neuen Fensters...
DBForm dbForm = new DBForm();
dbForm.FormClosed += new EventHandler(dbForm_FormClosed); // Abonnieren des Events...
dbForm.Show();

Das Obere, sowie das Folgende steht im Code deines Hauptfensters:


private void dbForm_FormClosed(object sender, EventArgs e)
{
//Hier kommt der Code rein, der ausgeführt werden soll, wenn dbForm geschlossen wird...
}

Kann sein, dass das hier nicht ganz 100%ig ist, aber so ungefähr könnte es aussehen. Wenn jemand Fehler entdeckt oder Verbesserungsvorschläge hat: Immer raus damit! 😉

19.03.2011 - 11:59 Uhr

Naja, du kannst doch in deiner Hauptform einfach das Form_Closed-Event deiner DBForm abonnieren, wenn du die DBForm instanziert hast...

18.03.2011 - 15:20 Uhr

Aber danke euch, auf jeden Fall! 😃 Immer wieder sehr interessant und hilfreich hier! 😃

18.03.2011 - 15:20 Uhr

Jau, vollkommen richtig... Nachdem ich gerade ausnahmsweise mal wieder die grauen Zellen aus dem Kerker der Kurzsichtigkeit gelassen habe, bin ich dann auch drauf gekommen... ^^

18.03.2011 - 15:13 Uhr

OK, das leuchtet ein...

Aber warum wird dieses Item nur dann erzeugt, wenn meine Klasse einen parameterlosen Konstruktor hat? Wie gesagt, wenn ich den weg lasse (wodurch dann keine XML-Serialisierung möglich ist), dann wird dieses leere Item im Grid nicht angezeigt.

//EDIT:
Doch, jetzt hab ich's... Durch den parameterlosen Konstruktor hat das Grid die Möglichkeit, automatisch ein neues Objekt zu erzeugen und dieses über die Properties mit Daten zu versorgen...

Also, dann schalte ich mal CanUserAddRows ab und schaue, was passiert...

18.03.2011 - 14:48 Uhr

Guten Tag!

Folgende Situation:
Ich habe in einer WPF-Applikation ein DataGrid. An dieses DataGrid habe ich per ItemsSource eine ObservableCollection gebunden, welche Objekte einer Klasse enthält, die ich selbst geschrieben habe.

Anfangs war alles in Ordnung. Nun ist es allerdings so, dass ich die ObservableCollection gern per XML serialisieren wollte. Dazu habe ich meiner Klasse, da der XmlSerializer dies so verlangt, einen parameterlosen (leeren) Konstruktor hinzugefügt. Wenn ich nun mein Programm starte, habe ich immer eine leere Zeile im DataGrid, die ich auch nicht entfernen kann. Sobald ich aber den parameterlosen Konstruktor entferne/auskommentiere und das Programm erneut starte, wird diese leere Zeile nicht mehr generiert.

Hat vielleicht jemand eine Idee, woran das liegen kann? Ich stehe da gerade irgendwie auf dem Schlauch.

Kann auf Anfrage (da ich mir nicht sicher bin, welche Code-Teile hier von Relevanz sind und ich den Post hier auch nicht überladen möchte) auch gern etwas Code posten. Sagt mir nur, welchen ihr braucht (wenn überhaupt).

Gruß,
Phreakadelle

16.03.2011 - 08:23 Uhr

Hat da jemand 'nen Link, wo man einen NICHT-WebInstaller runterladen kann?

11.03.2011 - 10:56 Uhr

Also, nach einem Treiberproblem sieht mir das eher nicht aus. Ich glaube eher es liegt an der Schriftart selbst (immerhin werden diese Quadrate ja immer dann angezeigt, wenn bestimmte Zeichen im Satz der Schriftart nicht vorhanden sind).

Würde da eher dem ersten Vorschlag folgen --> Schriftart ersetzen.

EDIT:
Ist aber keine Custom-Schriftart, sondern eine, die im Betriebssystem enthalten sein sollte, ja?

Und im Zusammenhang mit dem anderen Problem: Rechner neu aufsetzen, ansonsten Netzwerkkarte tauschen.

10.03.2011 - 07:51 Uhr

Also, ich kann dein Problem nicht nachvollziehen. Habe deinen Code mal getestet und er fügt wunderbar jeden eingegebenen Wert der Liste hinzu.

Aber 'ne andere Frage: Wozu der Zähler? Die Anzahl der Elemente in der List<T> kannst du auch über "meineList.Count" abrufen.

07.03.2011 - 16:02 Uhr

Fast.

In einer Spalte, nennen wir sie "Summe", steht '5'. Nun teile ich dem SQL einen neuen Wert '4' mit. Er soll nun die '5' durch eine '9' ersetzen.

Genau das würde doch ein Update-Statement tun. Und die Berechnung wird auch nicht auf dem Client durchgeführt.

07.03.2011 - 15:15 Uhr

Kannst du das nicht über ein Update-Statement machen?

Also zum Beispiel: UPDATE table SET value = value + x;

Hab bisher eher mit MySQL gearbeitet, aber müsste doch bei MSSQL auch so funktionieren, oder?

07.03.2011 - 10:12 Uhr

Benutze List<T>...

Wobei Du "T" bei der Benutzung von Strings gegen "string" ersetzt. Da haste dann auch .Add() oder .Insert().

Also:

List<string> strings = new List<string>();
strings.Add("Irgendwas");
03.02.2011 - 15:23 Uhr

Also, wenn du Bücher haben willst: keine Ahnung...

Ansonsten ist Google dein Freund... 😉 Da findet man eigentlich jede Menge zu dem Thema...

27.01.2011 - 15:07 Uhr

Also, ich hab meins hier geladen.

Damit geht das alles...

30.11.2010 - 15:40 Uhr

Hallo DiaryOfDreams,

schau dir das hier mal an:
Convert any control to an image (WPF)

Vielleicht bringt dich das ein wenig weiter.

Gruß,
Phreakadelle

12.10.2010 - 13:29 Uhr

Vielleicht kannst du noch den Code posten, der in "druckFensterAktualisieren()" ausgeführt wird. Das würde die Fehlerfindung sicherlich erleichtern.

12.10.2010 - 10:46 Uhr

Nein kann er nicht, da die Mehtoden Signatur wie folgt lautet.

Stimmt natürlich... Da war ich wohl ein wenig voreilig.

Bin schon so an "void Main" gewöhnt, dass ich da gar nicht weiter drauf geachtet habe.

12.10.2010 - 10:40 Uhr

Hallo nOTapRO,

Das "return 0" kannst du dir sparen.
Verwende stattdessen:

Console.ReadKey();

Damit bewirkst du, dass die Konsole offen bleibt, bis du eine Taste drückst, da die ReadKey-Methode auf einen Tastendruck wartet.

//EDIT:
Sorry, nicht gesehen, dass schon geantwortet wurde. ^^

06.10.2010 - 14:31 Uhr

Also, bei mir landen die immer unter "Allgemein"... Wird kein Namespace übernommen.

06.10.2010 - 14:03 Uhr

Hi Leutz!

Hab mir gerade ein User Control gebastelt. Hab auch keine Probleme damit. Allerdings würde ich gerne wissen, ob es möglich ist, dass diese UC automatisch in einer neuen Registerkarte untergebracht wird, sobald man sie in die Toolbox aufnimmt.

Standardmäßig werden die eigenen User Controls ja unter "Allgemein" aufgeführt. Ich hätte das aber gern so, dass die zum Beispiel gleich in "PhreakControls" landen.

Hat da jemand eine Idee? Google konnte mir leider nicht so wirklich weiterhelfen.

06.10.2010 - 11:53 Uhr

Das ist merkwürdig.

/GRANT lässt sich bei mir auch nicht nutzen. Ohne /GRANT wird die Freigabe korrekt eingerichtet. Hab schon Google gefragt, aber bisher noch nichts gefunden.

---EDIT:
Also, folgendes hat jetzt funktioniert (mit Win7):

net share testfreigabe=d:\testordner /grant:jeder,change
06.10.2010 - 10:21 Uhr

Moin!

Kannst doch mit Hilfe der Process-Klasse einen "net share" Befehl absetzen.

@Viper78: "net use" ist wohl eher unpassend, da er ja keine vorhandene Freigabe mappen, sondern eine erstellen möchte.

24.09.2010 - 13:58 Uhr

Löse das Ganze doch über ein Event, das in deinem Einstellungsfenster bei der Änderung der entsprechenden Einstellungen gefeuert wird und abonniere das Event in deinem MainWindow.

20.09.2010 - 12:55 Uhr

Also, ich würde behaupten, er spricht von Outlook (da ein Posteingang und NewMail erwähnt wurde)...

23.07.2010 - 14:22 Uhr

Also, John Noble (Fringe, Herr der Ringe) hat der Akinator erst beim dritten Versuch (nach ca. 35 Fragen) erraten.

13.07.2010 - 15:46 Uhr

Tja, ääähm... Primo Victoria by Sabaton!

01.06.2010 - 13:07 Uhr

Den hier beschriebenen Effekt hatte ich auch schon. Tritt meistens auf, wenn man in der 'Projektmappe\Projekt\Resources' eine Resource löscht.

Bei mir hat's geholfen nochmal die 'Resources.resx' im Designer zu öffnen. Dort sind die gelöschten Resourcen immernoch aufgelistet (mit Warn- bzw. Fehlerhinweis). Wenn man diese dann noch entfernt, dann geht's normalerweise.

01.06.2010 - 08:44 Uhr

OK, dann werd ich mal schauen, was ich da machen kann... Vielen Dank erstmal! 😃

//Edit:

Okay, ich hab's geschafft... Hab das Framework geändert, die angemeckerten Verweise entfernt, eine Resource neu eingebunden (die meckerte er merkwürdigerweise auch an) und schon läuft es wieder.

Danke nochmal! 😃

01.06.2010 - 08:38 Uhr

Yoah, das leuchtet ein... Aber wieso war eine Änderung des Frameworks von 3.5 auf 2.0 so unproblematisch (hatte ich mit einem älteren Projekt versucht)?!

01.06.2010 - 08:32 Uhr

Guten Morgen!

Weiß vielleicht jemand, ob und wie ich das Zielframework für meine WinForms-Applikation ändern kann?

Habe das blöderweise mit .NET 4 angesetzt, aber wahrscheinlich würde das 2.0er völlig ausreichen. Habe gerade schon versucht das zu machen, aber wenn ich die Änderung vorgekommen habe und VS2010 das Projekt neu geladen hat, werden einige Verweise (Microsoft.CSharp, System.Core, System.Data.DataSetExtensions und System.Xml.Linq) angemeckert. Diese sollte ich neu einbinden, aber finden kann ich die meisten davon nicht.

Hat da jemand eine Idee?

16.04.2010 - 07:35 Uhr

Guten Morgen, die Damen und Herren!

Ich stehe momentan vor folgendem Problem:

Wir hosten hier bei uns auf Terminalservern (Citrix-Lösung) eine Software für Meldebehörden. Beim Starten der gehosteten Anwendung werden die Drucker des Clients mit Hilfe von triCerat Screwdrivers in die Session übergeben.

Ich habe nun die Aufgabe, ein Programm zu schreiben, welches innerhalb der Terminalserver-Session überprüft, ob der Standarddrucker des Clients in der Konfigurationsdatei (.ini) der Meldebehördensoftware gesetzt ist. Falls nicht, soll dieser (je nach Einstellung meines Programms) gesetzt werden oder ein Infofenster angezeigt werden.

Das Ermitteln der Gesamtheit der Clientdrucker stellt kein Problem dar. Kann die Drucker in der TS-Session ja per PrinterSettings.InstalledPrinters abfragen. Und da in den Druckerbezeichnungen der Maschinenname des Clients auftaucht, lassen sich die Drucker leicht rausfiltern.

Hat jemand eine Idee/Denkansatz, wie ich aus der TS-Session heraus abfragen kann, welcher der ermittelten Clientdrucker auf dem Client als Standard gesetzt ist?! Optimal wäre es, wenn es möglich wäre, dies ohne zusätzliche Software auf dem Client zu lösen.

13.04.2010 - 09:29 Uhr

Könnte man nicht einfach im OnPaintBackground mit Graphics.CopyFromScreen arbeiten und den Hintergrund einfach mit dem Bildschirminhalt füllen, der hinter der neuen Position liegt?

09.04.2010 - 09:06 Uhr

Ja, natürlich... Wieder so eine Sache, auf die man eigentlich auch selbst kommen könnte.

Vielen Dank! 😃

09.04.2010 - 09:00 Uhr

Guten Morgen!

Gibt es eine Möglichkeit, die Anschlag- bzw. Wiederholungsverzögerung der Tastatur programmatisch zu umgehen?

Zur Info:
Ich versuche gerade ein kleines Spiel, ähnlich wie Superball (lief früher bei Sat.1) zu programmieren - nur mal so zum Testen. Und es nervt mich, dass beim der Tasten zum Bewegen des Spielerballs immer folgendes passiert:

Tastendruck -> Ball macht einen Schritt -> kurze Pause -> Ball bewegt sich flüssig...

Der Code zur Verarbeitung der Tastatureingaben sieht momentan folgendermaßen aus:


        private void BallGame_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Left)
            {
                playerBall.Move(-4);
            }
            if (e.KeyCode == Keys.Right)
            {
                playerBall.Move(4);
            }
        }

Also, falls jemandem etwas einfällt: Immer her mit den Infos... 😃

08.04.2010 - 11:50 Uhr

Sollte das nicht funktionieren, wenn du die Label-Eigenschaft "AutoEllipsis" auf "true" setzt?

30.03.2010 - 14:54 Uhr

Jawoll... Sowas hab ich gesucht. Vielen Dank! 😃 Dann kann ich ja weitermachen... 😃

30.03.2010 - 12:52 Uhr

Hallo liebe Community,

weiß jemand, ob es möglich ist eigene Fonts mit in die Resources aufzunehmen und von dort zu benutzen? Hab gerade schon im Netz gestöbert und hier gesucht, aber habe irgendwie nichts passendes gefunden.

Grüße,
Phreakadelle

25.03.2010 - 09:22 Uhr

Achso... Das erklärt natürlich einiges... Ich ging davon aus, dass "AddMinutes" direkt die Zeit des Objekts ändert, zu dem es gehört.

Dann werde ich mal versuchen, das ganze anders zu lösen.

Vielen Dank für die Information auf jeden Fall!

//EDIT
Problem gelöst. Überschreibe das vorhandene DateTime-Objekt nun mittels DateTime.Now.AddMinutes(5) und es funktioniert. Sehr cool.

Danke! 😃

25.03.2010 - 09:11 Uhr

Guten Morgen die Damen und Herren,

ich bin gerade dabei ein kleines Erinnerungsprogrämmchen zu schreiben. Dazu habe ich folgende Klasse geschrieben:

using System;
using System.Text;

namespace Terminizer
{
    public class Appointment : IComparable
    {
        private string subject;
        private string details;
        private string identifier;
        private DateTime alarmTime;
        private bool alarmTriggered;

        public bool AlarmTriggered
        {
            get { return alarmTriggered; }
            set { alarmTriggered = value; }
        }
        public DateTime AlarmTime
        {
            get { return alarmTime; }
            set { alarmTime = value; }
        }
        public string Identifier
        {
            get { return identifier; }
            set { identifier = value; }
        }
        public string Details
        {
            get { return details; }
            set { details = value; }
        }
        public string Subject
        {
            get { return subject; }
            set { subject = value; }
        }

        public Appointment()
        {
            // Keine Aktion...
        }
        public Appointment(string subject, string details, object datetime)
        {
            this.identifier = Guid.NewGuid().ToString();
            this.subject = subject;
            this.details = details;
            this.alarmTime = (DateTime)datetime;
        }
        public int CompareTo(object appointment)
        {
            Appointment a = (Appointment)appointment;
            if (this.AlarmTime < a.AlarmTime)
            {
                return 1;
            }
            else if (this.AlarmTime == a.AlarmTime)
            {
                return 0;
            }
            else
            {
                return -1;
            }
        }
    }
}

In meiner Main-Form läuft ein Timer der in einem 5-Minuten-Intervall sein Tick-Event feuert. Im Event wird dann geprüft, ob einer von den Terminen, welche in einer Liste vorgehalten werden (List<Appointment>), seine Fälligkeit erreicht hat. Darauf hin wird ein weiteres Fenster geöffnet, in dem die Termindaten angezeigt werden (das jeweilige Appointment-Objekt wird der Form übergeben). Allerdings ist mir das zu ungenau, wenn nur alle 5 Minuten geprüft wird. So kann es nämlich durchaus vorkommen, dass Termine leicht verspätet angezeigt werden.

Nun gibt es in diesem "Alarmfenster" 2 Buttons. Mit einem wird AlarmTriggered auf "true" gesetzt, sodass dieser Termin als erledigt gilt. Der andere Button soll nun eigentlich die Fälligkeit des Objekts in die Zukunft verlegen (AlarmTriggered bleibt hierbei "false"), sodass eine erneute Erinnerung erfolgt. Ich dachte, dass ich hierzu im Button-Click-Event auf das DateTime-Objekt innerhalb des Appointment-Objekts zu greifen und per alarmTime.AddMinutes(5) die Fälligkeit um 5 Minuten in die Zukunft verlegen kann.

Diese Methode zeigt aber irgendwie keinerlei Wirkung. Hab ich da irgendwas übersehen?! Würde mich freuen, wenn mir da jemand einen heißen Tipp geben könnte.

Vielen Dank schonmal!

09.06.2009 - 09:09 Uhr

Ja, ich glaub ich hab's gerade selbst gelöst... Ist halt doof, wenn man jedes Mal ein neues Objekt erstellt.

09.06.2009 - 08:42 Uhr

Guten Morgen!

Ich habe hier folgendes Problem. Ich hab in einem meiner Programme ein ListView-Control in welchem Server-IPs / -namen aufgelistet werden. Diese sollen auch in Gruppen angezeigt werden. Wenn ich also einen Server meiner Liste hinzufüge, kann ich dort auch einen Gruppennamen angeben (oder falls schon vorhanden auswählen - ComboBox). Die eingegebenen Daten (IP, Nutzername, Kennwort (verschlüsselt), und Gruppenname) werden in einer Datei gespeichert.

Wenn nun also die Dateien aus dem Verzeichnis gelesen werden (pro Server eine), dann sollen beim hinzufügen der Server zur ListView auch gleich Gruppen angelegt werden.

Das sieht ungefähr wie folgt aus:


            foreach (string str in myServerDir.GetServers(false))
            {
                string grp = File.ReadAllLines(str)[3];
                lvg = new ListViewGroup(grp);
                if (!this.listViewServers.Groups.Contains(lvg))
                {
                    this.listViewServers.Groups.Add(lvg);
                }
                ListViewItem lvi = new ListViewItem(new string[]
                    { str.Substring(str.LastIndexOf("\\") + 1),
                    str.Substring(str.LastIndexOf("\\") + 1) });
                lvi.Group = lvg;
                this.listViewServers.Items.Add(lvi);
            }

Das Problem, das ich nun habe ist, dass jedes Item einer Gruppe in einer eigenen Gruppe (wenn auch mit der gleichen Bezeichnung) angezeigt wird. Ich weiß irgendwie nicht, was ich da falsch mache.

Habe noch ein Bild angehängt, wo ihr sehen könnt, was ich meine.

05.06.2009 - 11:47 Uhr

Hi!

Gibt es die Möglichkeit die Rotationsrichtung zu ändern bzw. ist eine Implementierung dieser Möglichkeit angedacht? Standardmäßig läuft das Ganze ja gegen den Uhrzeigersinn.

Grüße
phreakadelle

03.06.2009 - 14:25 Uhr

OK, das hier hat sich erledigt. Kann dicht gemacht werden.

Habe übersehen, dass es "EventLog.GetEventLogs()" gibt...

03.06.2009 - 07:32 Uhr

Hallöchen!

Ich schreibe momentan ein Programm, welches für z.B. die letzten 7 Tage die EventLogs beliebiger Windows Server ausliest und in einer ListView anzeigt. Nun habe ich das Problem, dass z.B. das Auslesen der Security-Logs ewig dauert, weil dort sehr viele Einträge drin sind.

Ich hatte schon versucht, die Schleife zur Verarbeitung der Einträge abzubrechen, sobald ein Eintrag nicht mehr in den anzuzeigenden Zeitraum fällt. Allerdings sind die EventLog-Entries wohl nicht chronologisch sortiert, weshalb diese Methode nicht funktioniert.

Allerdings würde das funktionieren, wenn ich die EventLogs schon vor der Überprüfung von Datum und Uhrzeit (TimeWritten), sortiert vorliegen hätte.

Hat vielleicht jemand einen Vorschlag, wie man das lösen könnte?