Laden...
C
CaptainIglo myCSharp.de - Member
Feldkirch - Österreich Dabei seit 09.02.2005 366 Beiträge
Benutzerbeschreibung

Forenbeiträge von CaptainIglo Ingesamt 366 Beiträge

30.08.2007 - 09:31 Uhr

Langsamer und komplizierter 😉.

Ich probiere das Problem nun mit schema.ini-Files zu lösen...

29.08.2007 - 18:35 Uhr

Gibts da irgendeine Erklärung oder ein kurzes Tutorial dazu, denn aus den Klassen alleine + MSDN werde ich nicht schlau?

29.08.2007 - 16:58 Uhr

Hallo,

ich verwende momentan eine OleDBConnection mit folgendem ConnectionString um eine CSV-Datei einzulesen:
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Path.GetDirectoryName(openFileDialog.FileName) + @";Extended Properties='Text;HDR=Yes;FMT=Delimited'"

Mit einem Beistrich als Trennzeichen ließt er das File TipTop ein, doch wie kann ich im sagen, das in einem File ; oder Tab als Trennzeichen verwendet wurde?

mfg

28.08.2007 - 22:32 Uhr

Hallo,

gibt es irgendwo eine (freie) Library zum übersetzen von Sprachen (En->De würde ich benötigen), vorzugsweise sogar mit Satz/Text-Unterstützung, welche unter .net zu verwenden ist?

mfg

28.08.2007 - 22:19 Uhr

Hallo,

bin mir nicht sicher ob der Thread besser zu GUI-Technologien passt, aber da die Frage ansich Web-technishc ist, poste ich jetzt mal hier:

Wie kann ich aus einem Windows.Forms-Anwendung einer Seite im Netz Daten per Post übermitteln und dann die resultierende HTML-Seite empfangen?

mfg

28.08.2007 - 13:21 Uhr

Ich habe aber keine Statusleite, also hilft mir das leider auch nicht weiter...

28.08.2007 - 11:39 Uhr

Ich habe ein normales MenuItem, welches ich einem MainMenu oder einem anderen MenuItem zuweise und da gibt es die Eigenschaft nicht, leider...

28.08.2007 - 10:41 Uhr

Wenns so einfach wäre, wäre ich wohl auch selbst drauf gekommen 😉.
Meine MenuItems (System.Windows.Forms.MenuItem) haben weder eine AutoToolTip noch TooltipText Eigenschaft...

28.08.2007 - 10:30 Uhr

Ok, war meine Frage doch etwas zu kurz:

Gibt es eine Möglichkeit und wenn ja wie? 😉

28.08.2007 - 10:11 Uhr

Hallo,

Kurze und bündig:
Gibt es eine Möglichkeit, auf einem MenuItem ein ToolTip zu setzen?

mfg

27.08.2007 - 17:04 Uhr

Kommt der Dialog, wenn du das Projekt OHNE Debuggen per VS ausführst?

27.08.2007 - 13:56 Uhr

Hallo,

ich habe meine Anwendung über die standard Lokalisierung von .net gelöst, was eigentlich auch ganz gut funktioniert.
Jetzt möchte ich aber gerne ein Menü erstellen, wo man die Sprache manuell wählen kann und nicht immer die aktuelle Systemsprache verwendet wird.
Dazu möchte ich gerne herausfinde, welche Sprachen verfügbar sind.
Gibt es dazu eine Funktion o.ä. oder muss man den Application-Folder manuell nach den verfügbaren *.recources.dll durchsuchen?

mfg

23.08.2007 - 12:30 Uhr

Super Tool, aber bei mir ist folgendes Phänomen:
Wenn ich in VS eine neu eToDo-Liste erstelle wird diese ordungsgemäß im VS geöffnet, wenn ich diese allerdings schließe und wieder öffnen will, macht er mir die Liste nicht im VS sondern in einer eigenen Instanz vom StandAlone-ToDo-Manager auf.

22.08.2007 - 11:29 Uhr

Habs gerade gefunden:
Unter System.Drawing.Drawing2D.HatchBrush versteckt sich ein schraffierter Brush mit jedmöglicher Schraffierungsart...

22.08.2007 - 10:26 Uhr

Das ist mich schon fast klar gewesen, aber wie male ich eine Schraffur?
Abwechselnd Linien Zeichnen oder gibt es da was einfacheres?

22.08.2007 - 10:14 Uhr

Hallo,

ich habe hier eine TreeView wo ich verschiedene Elemente durch andere Hintergrundfarben kennzeichne. Ein Element würde ich nun gerne durch einen schraffierten Hintergrund kennzeichnen, doch weiß ich nicht, wie ich eine schraffur hinkriege.
Also wie kann ich per C# eine Farbe als schraffur 2er anderer definieren?

mfg

21.08.2007 - 11:54 Uhr

Ich habe das selbe Problem mit dem negativen stride.
Bei mir ist es allerdings ein Screenshot der mit folgender Methode erzeugt wurde:

using (Graphics graphics = this.CreateGraphics())
{
    IntPtr hdcDestination = graphics.GetHdc();
    render.DrawToDC(hdcDestination);
    IntPtr hdcMemory = GDI32.CreateCompatibleDC(hdcDestination);
    IntPtr bitmap = GDI32.CreateCompatibleBitmap(
          hdcDestination,
          browser.Document.ActiveElement.ClientRectangle.Width,
          browser.Document.ActiveElement.ClientRectangle.Height
          );

    if (bitmap != IntPtr.Zero)
    {
        IntPtr hOld = (IntPtr)GDI32.SelectObject(hdcMemory, bitmap);
        GDI32.BitBlt(
            hdcMemory,
            0, 0,
            browser.Document.ActiveElement.ClientRectangle.Width, browser.Document.ActiveElement.ClientRectangle.Height,
            hdcDestination,
            browser.PointToScreen(new Point(browser.Location.X, browser.Location.Y)).X - Location.X - 10,
            browser.PointToScreen(new Point(browser.Location.X, browser.Location.Y)).Y - Location.Y - 68,
            TernaryRasterOperations.SRCCOPY
            );
        GDI32.SelectObject(hdcMemory, hOld);
        GDI32.DeleteDC(hdcMemory);
        graphics.ReleaseHdc(hdcDestination);

        return Image.FromHbitmap(bitmap);
    }
}
20.08.2007 - 12:18 Uhr

Hallo,

ich habe hier ein WebBrowser Control, in welchem ich eine HTML-Seite anzeige.
Nun hätte ich gerne von dieser Seite einen "Screenshot" als Bitmap.
Wie kann ich das machen, denn das WebBroser-Control hat kein DrawToBitmap o.ä.?

mfg

20.08.2007 - 10:42 Uhr

Mich würde deine Lösung interessieren, könntest du sie bitte posten 😉.

14.08.2007 - 18:28 Uhr

Warum wird dann das zeichen aber angezeigt, wenn ich es "kopiere" und manuell in einen string hineinschreibe.. 😉

14.08.2007 - 18:08 Uhr

@herbivore:
Wie im 1. Post geschrieben funktioniert das eben nicht komplett. Z.B. die 1. Hälfte "kommt kein einziges Zeichen an"...

14.08.2007 - 16:43 Uhr

Ich möchte ein Auswahldialog erstellen, wo diese Zeichen (0080 bis 00FF auf der geposteten Seite) zur Auswahl stehen und per klick in ein Feld geschrieben werden.
Nun muss ich aber, um die Zeichen auf dem Auswahlfeld darzustellen diese erst einmal "erzeugen", was ich nicht "hard coeded" machen möchte, sondern am liebsten per Schleife wie z.B.:

for(int i = 128; i<256;i++)
{
    button[i-128].text= Encoding.Unicode.GetString(new byte[] { 0, (byte)i });
}

was allerdings in dem oben gennanten Phänomen endet...

14.08.2007 - 16:23 Uhr

Hallo,

ich versuche gerade vergeblich per Code Unicode-Zeiche wie in folgender Liste zu sehen zu erzeugen:
http://jrgraphix.net/research/unicode_blocks.php
Wenn ich die da angeschriebenen Werte per Encoding.Unicode.GetString() in einen string umwandle bekomme ich nur chinesische Zeichen und nicht das gewünschte.
Wenn ich ein den Wert auf ein char caste erhalte ich "mache" der Zeichen, einige werden aber nur als Quadrat dargestellt.

Wie mache ich das richtig?

mfg

13.08.2007 - 17:16 Uhr

Hallo,

ich habe hier XML-Dateien, welche momentan mittels XSL-Stylesheets in HTML konvertiert und dann mittels eines WebBrowsers ausgedruckt werden.
Gibt es einen Weg, sich den "Umweg" über HTML und den Browser zu sparen und das drucken direkt unter .net erledigen?

mfg

09.08.2007 - 16:14 Uhr

Sorry, stehe heute ein wenig auf dem Schlauch...

09.08.2007 - 16:00 Uhr

Original von knub
kannst du bei OwnerDrawText nicht auch mit e.Graphics.FillRectangle() einen Hintergrund zeichnen?

Nur in der "Textfläche" nicht für die ganze Zeile...

@veasel:
Was geht? Komme bei denem Post nicht ganz mit...

09.08.2007 - 15:30 Uhr

Und so sieht es aus, bei OwnerDrawText:

09.08.2007 - 15:29 Uhr

Ja etwas falsch verstanden:
Er zeichnet mir KEINEN Hintergrund mehr bei ALLEN Zeilein (auch die mit e.DrawDefault=true).

So sollte es aussehen (habe jetzt mit etwas rumprobieren so hinbekommen, ist allerdings keine "saubere Lösung"):

09.08.2007 - 15:03 Uhr

Bei OwnerDrawText zeichnet er mir aber keine Hintergrundfarben mehr,
deshalb habe ich auf OwnerDrawAll gestellt und

if(!e.Node.IsSelected)
    e.DrawDefault = true;

wodurch er mir alle nicht selektierten Elemente richtig/"orginal" zeichnet so wie ich es will.
Das Selektierte kann ich dann selbst zeichnen, allerdings ist dann eben die gesamte Zeile zu zeichnen...

09.08.2007 - 14:50 Uhr

Sorry für die etwas unklare Ausdrucksweise:
Wie das Zeichnen mit Graphics geht, weis ich schon, nur wie dei Zeichenroutine enes TreeNodes aufgebaut ist nicht.
Einen Text bzw. eine (Farb)Fläche bekomme ich auch problemlos hin, aber bei einer TreeNode kommt noch einiges dazu (z.B. TreeLines oder in meinem Fall Checkboxen), auch gibt es sicher Möglichkeiten die Einrückweite bei SubNodes zu ermitteln und bei diesen Punkten scheitere ich dann...

09.08.2007 - 14:00 Uhr

Ja, bitte etwas Code, denn ich schaffe es nicht ansatzweise ein Node selber zu zeichnen...

09.08.2007 - 12:54 Uhr

Hallo,

ich habe hier eine TreeView (Problem gilt aber auch für ListView/-Box), bei welcher die Elemente farblich gekennzeichnet sind.
Nun habe ich das Problem, dass das selektierte Element Blau+Weiße Schrift ist und somit die Farbe nicht mehr sichtbar ist.
Nun möchte ich gerne irgendwie, beim selektierten Element die Hintergrundfarbe als Textfarbe verwenden, doch mit ForeColor=BackColor ist diese trotzdem durch die Selektion weiß.
Wie kann ich das ändern?

mfg

06.08.2007 - 13:16 Uhr

Danke für den Tip, aber Bass.net kennich schon und eine komerzielle Nutzung ist nicht ausgeschlossen, deshalb nicht nutzbar.
Habe allerdings inzwischen festgestellt, dass ALLE Audioaufnahmen an dem PC an dem ich momentan arbeite (ASUS-MB mit SoundMAX OnBord) diese Verzerrungen haben -> wird wohl am PC und nicht an der erwähnten Klasse liegen.

06.08.2007 - 09:43 Uhr

Hallo,

ich soll hier gerae einen Audiorecorder erstellen, welcher das eingangssignal vom Mic als MP3 aufzeichnet. Das encoden des MP3 stream habe ich bereits mittels eines Wrappers für den Lame-encoder geschafft, was mit .wav-Files auch TipTop funktioniert.
Jetzt sollte ich allerdings irgenwie den Input des Mic-Einganges in mein Programm bekommen (als byte[]), damit ich diese Daten encoden kann.
Das einzige was ich dazu gefunden habe, war ein Wavrecorder mit Splitfunktion hier im Forum, welcher bei mir aber "nicht funktionierte (Aufnahme war komplett verzerrt).
Wie kann ich das Problem lösen?

mfg

24.07.2007 - 21:23 Uhr

Hi,

ich programmiere gerade an einem Audioplayer herum und habe hier ein MP3 das sich nicht abspielen lässt und ich weiß nicht warum. Weder DX.AudioVideoPlayback noch per MCI geht es.
Kann jemand dieses File per .net abspielen und wenn ja wie?

File:
LINK

mfg
Capt.Iglo

13.05.2007 - 17:01 Uhr

@herbivore:
Sorry, habs in der "Hitze des Gefechts" vergessen (benutze sie normal "immer").

@talle:
Danke, werde mal danach suchen.

13.05.2007 - 16:54 Uhr

Hi,

gibt es ein Tool, welches mir bei meinem C# 2.0 Programm ausgibt, wie lange jede Funktion oder sogar jede Zeile benötigt hat?

Also z.B.:


void Main()
{
    int a = 3;             -->0.02ms
    int b = 5;             -->0.02ms
    int c = Add(a,b);   -->1.04ms
}

int Add(int a, int b)
{
    int result = a + b; --> 0.94ms
    return result;        --> 0.1ms
}

Auch eine Prozentualle angabe wäre ausreichend, denn ich bräcuhte so ein Tool eigentlich nur zum untersuchen, welche Programmteile am längsten brauchen, um gezielt optimieren zu können.

mfg
Capt.Iglo

10.05.2007 - 13:28 Uhr

Genau das Selbe suche ich auch.
Hast du schon eine Lösung gefunden?
Mir würde es eigentlich auch schon reichen, wenn ich zumindest die "Hauptsprache" festlegen könnte, denn mein VS erstellt mir immer ein deutsches Setup, ich brauche aber ein englisches...

mfg
Capt.Iglo

10.05.2007 - 09:21 Uhr

Hallo,

ich habe wie in folgendem Thread einen Service erstellt:
[Tutorial] Windows Services mit C#

Wenn ich nun aber wie weiter unten im Thread beschrieben, versuche mit ServiceController.ExecuteCommand(1) ein Kommando an den Service zu schicken, bekomme ich folgende Exception:

InvalidOperationException
Der Dienst NHT-Server auf dem Computer . konnte nicht gesteuert werden.

An was kann das liegen, bzw. was muss ich machen, damit dass funktioniert?

mfg
Capt.Iglo

09.05.2007 - 18:14 Uhr

Hab den Fehler der CP-Anleitung gefunden:
Der Designer hat mir irgendwie den verweis auf die AfterInstall-funktion gelöscht...

09.05.2007 - 17:27 Uhr

Hi,

ich habe hier einen Service, welcher mit dem Desktop interagieren muss.
Jetzt möchte ich den Service aber so installieren, dass das Häckhen nicht manuell vom Benutzer gesetzt werden muss, sondern, dass dies automatisch beim Setup passiert.
Dazu habe ich 2 Möglichkeiten bei CodeProject gefunden, doch funktionieren beide nicht.
Kennt jemand noch eine Lösung für mein Problem?

mfg
Capt.Iglo

07.05.2007 - 18:49 Uhr

Habs mit vjslib hinbekommen:
Wenn man als Dateinamen ein \ übergibt, ergibt das einen Ornder im ZIP.

07.05.2007 - 17:51 Uhr

Hallo,

ich muss hier ein Backup von einem Laufwerk machen, welches möglichst in einer Datei enden soll.
Deshalb möchte ich das ganze LW irgendwie zu einer Datei packen (z.b. zip).
Dazu habe ich allerdings nur die SharpZipLib gefunden, welche allerdings unter der GPL steht, was für mich nicht geht, da ich es kommerziell nutzbar und gratis braucht.
Ich habe auch noch mit den ZipStream der vjslib herumprobiert, allerdings nicht herausgefunden, wie ich dort Ordnerstruckturen packen kann.
Kennt jemand eine passende Möglichkeit für mich?

mfg
Capt.Iglo

05.05.2007 - 14:16 Uhr

Hi,

da bin ich gerade wieder einmal über einen alten Thread von mir gestolpert...

@Xineoph:
Hab irgenwie keine Mail bekommen, das da noch ein Post kam, deshalb erst so eine späte (und auch eher zufällige) Meldung meinerseits:
Ich habe das mit dem VLC über ein directes wrappen der libvlc.dll in C# gelöst.
Damit habe ich die "totale Kontrolle" über VLC. Falls du noch eine Lösung sucht, kann ich dir die Klasse zum Wrappen gerne zukommen lassen.

05.05.2007 - 13:50 Uhr

Hi,

zu Lösung des Problems aus diesem Thread, versuchte ich einen neuen Process zu starten, und die I/O umzuleiten, dass ich sie in meinem Code auslesen/schreiben kann. Dazu nutze ich folgenden Code:

public static int Format(string DriveLetter, string DriveName, bool QuickFormat, Delegate Status)
        {
            Process format = new Process();
            ProcessStartInfo startInfos = new ProcessStartInfo("format");

            startInfos.Arguments = DriveLetter + @": /FS:FAT32 /X /V:" + DriveName;
            if (QuickFormat)
                startInfos.Arguments += @" /Q";
            //startInfos.CreateNoWindow = true;

            // HIER DIE I/O REDIRECTS

            //startInfos.RedirectStandardError = true;
            //startInfos.RedirectStandardInput = true;
            //startInfos.RedirectStandardOutput = true;
            startInfos.UseShellExecute = false;

            format.StartInfo = startInfos;

            formattingRunning = true;
            Thread formatter = new Thread(new ParameterizedThreadStart(WaitForFormattingFinish));
            formatter.Start(format);

            while (formattingRunning)
            {
                try
                {
                    string output = format.StandardOutput.ReadLine();
                    if (output != null)
                    {
                        int statusPos = output.IndexOf(" ");

                        if (statusPos >= 0)
                        {
                            string statusStr = output.Substring(0, statusPos);
                            double pos = Convert.ToDouble(statusStr);
                            if (Status != null)
                                Status.DynamicInvoke(new object[] { pos });
                        }
                    }
                }
                catch (InvalidOperationException) { }

                Thread.Sleep(10);
            }
            if (Status != null)
                Status.DynamicInvoke(new object[] { 100 });

            return 1;
        }

        /// <summary>
        /// Waits for formatting to complete.
        /// </summary>
        /// <param name="mp3gain">The process handle.</param>
        private static void WaitForFormattingFinish(object process)
        {
            Process rProcess = (Process)process;

            try
            {
                rProcess.Start();
                rProcess.PriorityClass = ProcessPriorityClass.Idle;
                rProcess.StandardInput.WriteLine();
                rProcess.WaitForExit();
            }
            finally
            {
                formattingRunning = false;
            }
        }

Beim obigen Code kommt eine neue Komandozeile und der Befehlt wird ausgeführt, aber sobald ich die Redirect-Anweisungen auskommentiere, startet die Komadodzeile nicht mehr und ich bekomme sofort 1 von der Funktion zurück ohne das Formattiert wurde.
Wo ist da der Fehler, bzw. wie kann ich die I/O in meinem Programm bearbeiten?

mfg
Capt.Iglo

EDIT:
Habe gerade heruasgefunden, dass ich zum umleiten der I/O ShellExcecute auf false setzten muss und dann kommt schon beim ändern der Priorität (1 Zeile nach Start() eine Exception, dass der Process schon beendet wurde...

05.05.2007 - 12:55 Uhr

Original von winSharp93
Du kannst natürlich auch per versteckter Kommanmdozeile arbeiten.

Auf die Idee bin ich auch schon gekommen und das ist bereits in Arbeit (werde dann die Lösung posten), aber trotzdem danke für den Tip.

05.05.2007 - 11:10 Uhr

Gibts keine Möglichkeit OHNE diesen Dialog, also alles per .net zu lösen?

05.05.2007 - 10:46 Uhr

Hi,

wie kann ich per C# ein Laufwerk formatieren?
Möglichst auch mit dem Feauture, wie die Datenträgerverwaltung, dass auch formatiert werden kann, wenn das Laufwerk noch in Verwendung ist.

mfg
Capt.Iglo

03.05.2007 - 17:55 Uhr

Hi,

ich suche eine Möglichkeit, aus AAC bzw. M4A-Dateien die Bitrate bzw. Samplingrate auszulesen / ermitteln.
Weiß jemand wie das am einfachsten / schnellsten geht?

Ich meine das müsste irgendwo auszulesen sein, denn dbPoweramp ziegt diese Info's z.B. ohne parktische Verzögerung an (also ist ein kompliziertes "berechnen" auszuschließen).

mfg
Capt.Iglo

29.04.2007 - 16:21 Uhr

Hab die Lösung:
Es bezog sich wirklich auf 1.1.1904 0:00 Uhr.

Habe mit folgendem Code ein richtiges Datum erhalten:

uint val = 3260705592;
int days = (int)(val / (24 * 3600));
int hours = (int)(val / 3600 - 24 * days);
int minutes = (int)(val / 60 - 60 * hours - 60 * 24 * days);
int seconds = (int)(val - 60 * minutes - 3600 * hours - 3600 * 24 * days);
DateTime date = new DateTime(1904, 1, 1, 0, 0, 0);
TimeSpan span = new TimeSpan(days,hours,minutes,seconds);
DateTime date2 = date + span;
MessageBox.Show(date2.ToString());
//Und Zurück:
TimeSpan span2 = date2 - date;
val = span2.TotalSeconds;

Falls jemand eine schnellere / bessere Lösung hat, nur her damit...
Danke an alle, für die Hinweise.