Laden...

Forenbeiträge von alexanderschill Ingesamt 52 Beiträge

08.09.2013 - 15:57 Uhr

Wieso denn immer das Rad neu erfinden statt einfachd as bestehende zu erweitern:


using System;
public static class MediaTimeCode
{
    public static int TotalFrames(this TimeSpan TimeCode, int FPS)
    {
        return (int)((FPS / 1000D) * TimeCode.TotalMilliseconds);
    }

    public static int Frame(this TimeSpan TimeCode, int FPS)
    {
        return (int)((FPS / 1000D) * TimeCode.Milliseconds);
    }

    public static String ToMediaTimeCode(this TimeSpan TimeCode, int FPS)
    {
        return String.Format("{0:T}:{1}", TimeCode, TimeCode.Frame(FPS));
    }
}

das fügt dem TimeSpan struct einafch eine Frame methode hin zu und sollte ziemlich denselben effekt wie dein struct haben 😃

außerdem lässt sich so weiter mit TimeSpans arbeiten die in manchen hinsichten besser sind

03.09.2013 - 20:53 Uhr

Ich persönlich arbeite viel mit Ftp Servern mir hat es aber immer an einer guten Libary gefehlt um Ftp Dateien ähnlich wie mit der System.IO Libery bearbeiten und untersuchen zu können deswegen habe ich mcih mal drangesetzt und eine kleine Libary geschrieben die wie ich finde für die meisten Zwecke ausreichen sollte:

Folgendes kann meine Libary:
Einen neuen FtpServer anlegen:


FtpServer YourServer=new FtpServer("ANY FTP URL","username","password") 

nun lassen sich mittels ftpFile und FtpDirectory folgende Methoden aufrufen:

(auf englisch da auch in der Libary auf englisch)
Basic Directory Commands like:
>> Move
>> Delete
>> Create
>> Exists
>> LastModified

Basic File Commands like:
>> Upload
>> Download
>> Copy
>> Move
>> Delete
>> Create
>> Exists
>> LastModified
>> FileSize

Read and Write Operations:

>> OpenRead
>> OpenWrite
>> OpenAppend

>> OpenReadText
>> OpenWriteText
>> OpenAppendText

>> ReadAllByte
>> WriteAllByte
>> AppendAllByte

>> ReadAllText
>> WriteAllText
>> AppendAllText

>> ReadAllLines
>> WriteAllLines
>> AppendAllLines

Dokumentation ist dabei

Hoffe sie hilft euch vlt auch mal weiter könnt ihr in allen Apllicationen benutzen völlig uneinegschränkt wäre vlt nett eine referenz irgendwo unterzubringen 😉 muss aber nicht

EDIT: 03.09.2013 23:00
Achtung die Libary vorhher hatte ncoh einen bug in der Append Methode hier die korrigierte variante tut mir sehr leid

17.06.2013 - 17:31 Uhr

Wenn cih das richtig sehe möchtest du direkt auf die Form zugreifen und eine arte neue textbox hinzufügen bzw die vorhandene ersetzen durch eine eigene.

Die Variablen dieser Textbox werden durch deinen Mod berechnet ist das soweit richtig?

16.06.2013 - 14:53 Uhr

Per XAML Trigger also so

<Grid Name="VOLUMEBAR" Grid.Row="1" Margin="10,4" PreviewMouseLeftButtonDown="VOLUMEBAR_PreviewMouseLeftButtonDown" PreviewMouseLeftButtonUp="VOLUMEBAR_PreviewMouseLeftButtonUp" PreviewMouseMove="VOLUMEBAR_PreviewMouseMove">
                
16.06.2013 - 13:42 Uhr

e.Handeld ist immer unterschiedlich also leider geht das auch nicht 😦 selbst wenn ich in dem previewmousemove e.handled auf true setzte ist es in window mousemove trotzdem false

16.06.2013 - 00:47 Uhr

Hey liebes Forum ich hab ein Problem und dies plagt mcih jetzt schon einige Tage und zwar möchte ich meine Borderless Form per dragMove bewegen das funktioniert auch super nur hab ich jetzt das problem dass absolut überall die maus getrackt wird

beispielsweise hab ich selebr eine Trackbar programmiert, welche auch mit Mosuemove arbeitet nur funktioniert eben diese nicht sondern das fenster bewegt sich hier mal mein code:


private void Window_MouseMove(object sender, MouseEventArgs e)
        {
            if(e.LeftButton==MouseButtonState.Pressed && this.Tag==0)
            DragMove();
        }

        private void MAIN_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            MAIN.CaptureMouse();
        }

        private void MAIN_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            MAIN.ReleaseMouseCapture();
        }

         private void VOLUMEBAR_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            VOLUMEBAR.CaptureMouse();
            this.Tag = VOLUMEBAR;
        }

        private void VOLUMEBAR_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            VOLUMEBAR.ReleaseMouseCapture();
            this.Tag = null;
        }

        private void VOLUMEBAR_PreviewMouseMove(object sender, MouseEventArgs e)
        {
            if (e.LeftButton == MouseButtonState.Pressed)
            {
                VOLUME = (float)(Mouse.GetPosition(VOLUMEBAR).X / VOLUMEBAR.ActualWidth);
                RecalcVolume();
            }
        }


Ich hab nahezu alle möglichkeiten ausprobiert die mir in den sinn kamen ich ahbe sogar die tagvariable des Windows auf das Control gelegt auf dem mousedown ausgelöst wurde komsicherweise geht selbst dass nicht ich hoffe jemand kann mir helfen

15.06.2013 - 04:39 Uhr

Wieso überhaput einen button nehmen? Image unterstützt auch alle arten von events und nen eigenes bild für den button zu erstellen wenn du das bild nicht brauchst sollte kein Problem sein

14.06.2013 - 17:44 Uhr

Nun kommen wir zu dem Kniffligeren Teil, den ich persönlcih über den Code steuern würde da dies aus meiner sicht (Bina cuh Anfänger in WPF) einafcher ist

Zuersteinmal musst du in deinem Standardgrid den Path Anlegen den du später als Klappe haben willst sinvoll wäre hier auch direkt einen Namen zu vergeben mit Name="Klappe" zb. Damit die Klappe am anfang auch versteckt ist stelle die Visibility eigenschaft auf COLLAPSED (nicht mit HIDDEN verwechseln)

Wie Man Paths anlegt solltest du selbst rausfidnen können falls dus wiedererwartend nciht hinbekommst kannst du dich gerne nochmal melden.

Was du jetzt noch benötigst ist eine Funktion die deine klappe auch anzeigt wenn amn darauf klickt, da auf deinem bild >> zus ehen sit denk ich du wirst das als bild machen.

Durch das Grid in deinem Standardgrid lässt sich dieses Image oder Label doer was du nehmen willst sehr leicht anordnen einfach Vertical align auf top und horizontal align uf right stellen und schonist es oben rechts. nun erstellst du ein event von PreviewMouseLeftButtonDown oder PreviewMouseLeftButtonUp je nachdem was dir lieber ist

In diesem Event toggelst du die visibility eigenschaft des Path in dem fall also:


private void Klappe(object sender, MouseButtonEventArgs e)
{
       if(Klappe.Visibility==Visibility.Collapsed){
               Klappe.Visibility=Visibility.Visible;
        }
        else{
             Klappe.Visibility=Visibility.Collapsed
        }
}

eine einzige sache fehlt nun noch und zwar musst du nicht nur die Klappe anzeigen, sondern auch dein Fenster um die Größe der Klappe erweitern bzw verkleinern, da sonst der Sonstige Inhalt deines Fensters kleiner wird und das sehr unschön wäre

also hast dus chlussendlich diese Funktion:


private void Klappe(object sender, MouseButtonEventArgs e)
{
       if(Klappe.Visibility==Visibility.Collapsed){
               Klappe.Visibility=Visibility.Visible;
               this.Width=this.Width+Klappe.ActualWidth;
        }
        else{
             Klappe.Visibility=Visibility.Collapsed;
             this.Width=this.Width-Klappe.ActualWidth;
        }
}

damit sollte die arbeit eigentlich getan sein falls es unstimmigkeiten doer weitere fragen gibt kannst du dcih gerne melden
hoffe ich hab es ausreichend ausführlich erklärt und konnte dir helfen

14.06.2013 - 17:42 Uhr

Als nächstes brauchst du erstmal wieder einen Hintergrund dafür empfielt es sich das standard grid zu nehmen

<Grid></Grid>

In diesem Grid erstellst du 2 spalten eine für das normale fenster und eine für die Potentielle Klappe

dazu nutz du den vorteil dass du beid en Grids die Eigenschaft Width auf auto setzten kannst somit wird die klappe nur angezeigt wenn auch eine Klappe da ist dazu später mehr die erste spalte setzt du auf Width="*"

falls dus nicht weißt * bedeutet in unserem falle dann aller platz der übrig ist also später der platz von links zur klappe

also sähe dein Grid schonmal so aus:


<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinitions Width="*"/>
<ColumnDefinitions Width="auto"/>
</Grid.ColumnDefinitions>
</Grid>

So In dem standardGrid erstellst du am besten ein Weiteres Grid oder Stackpanel oder was auch immer du wilst und gibst diesem Grid eine Backgroundeigenschaft in der Farbe deines gewünschten Hintergrundes (Bidler und farbverlauf geht natürlich auch)

14.06.2013 - 17:35 Uhr

ICh helfe dir gerne ist aber zuviel um es in einem Post zu schreiben ich teile deswegen den post in ein paar teile auf:

Zuerstmal den Background deines Windows null setzen
un natürlich Den WindowStyle auf None und den ResizeMode auf None setzen
und dass der hintergrund auf null gesetzt werden kann noch AllowsTransparency auf true

inetwa so sähe dann der Header aus


<Window x:Class="AusklappbaresFenster.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="AusklappbaresFenster"
        Height="600" Width="1000"
        
        WindowStyle="None"
        ResizeMode="NoResize"
        AllowsTransparency="True"
        Background="{x:Null}"
        >

14.06.2013 - 17:11 Uhr

Eher soll die farbe des inneren kastens transparent sein und dnan würde amn das blau durchsehen

11.06.2013 - 01:08 Uhr

Habs Mittlerweile selber gelöst in dem ich einafch nen eigenen path gemalt ahbe und diesend er form hinzugefügt trotzdem danke an alle die helfen wollten

10.06.2013 - 19:08 Uhr

Hey liebes Forum ich ahbe eine farge und zwar:
Kann man die schnittfläche von zwei Bordersausfüllen?

Also ich hab einen kasten(ohne hintergrundfarbe und rechteckig Grau)
Darüberliegend einen Abgerundeten Kasten(Rot z.B)

Nun möchte ich diese schnittfläche ausfüllen (Blau)

kleine bilderklärung:

20.05.2013 - 17:55 Uhr

such mal nach Ionic.Zip das müsste gehen ist ne dll mit der du fast alles entpacken kannst

20.05.2013 - 17:52 Uhr

Hey Leute kleines Problem und zwar möchte ich verschiedene datneien (DLLs) beim Programmstart entpacken. Problem dabei ist dass es immer sagt dass die Dlls dannach nciht vorhanden sind obwohl ich sie im Ordner sehe. Komsicherweise wenn ichd as Projekt über die kompilierte exe starte und die dlls vorher lösche geht es ohne Probleme

Hab ich irgendwas missachtet? hier zur hilfestellung noch meine Main class:


using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WeAreOne
{
    static class Program
    {
        /// <summary>
        /// Der Haupteinstiegspunkt für die Anwendung.
        /// </summary>
        [STAThread]
        static void Main()
        {
            ExtractFiles();
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new WeAreOne());//Hier fehlt dann die Bass.Net.dll
        }

        private static void ExtractFiles()
        {
            String CurrentDir = Environment.CurrentDirectory;
            String CurrentFile;
            if (!File.Exists((CurrentFile = Path.Combine(CurrentDir, "bass.dll"))))
            {
                File.WriteAllBytes(CurrentFile, Properties.Resources.bass);
            }
            if (!File.Exists((CurrentFile = Path.Combine(CurrentDir, "Bass.Net.dll"))))
            {
                File.WriteAllBytes(CurrentFile, Properties.Resources.Bass_Net);
            }
            if (!File.Exists((CurrentFile = Path.Combine(CurrentDir, "Ionic.Zip.dll"))))
            {
                File.WriteAllBytes(CurrentFile, Properties.Resources.Ionic_Zip);
            }
            if (!Directory.Exists((CurrentFile = Path.Combine(CurrentDir, "SKIN"))))
            {
                Directory.CreateDirectory(CurrentFile);
            }
            if (!File.Exists((CurrentFile = Path.Combine(CurrentDir, "SKIN", "Default.wao"))))
            {
                File.WriteAllBytes(CurrentFile, Properties.Resources.Default);
            }
        }
    }
}


28.04.2013 - 21:24 Uhr

Hi kurze frage unterstützt WPF kein JPG?
Denn bei mir ist das problem im Designer wird das bild so angezeigt wie ich will, wenn ich aber das programm starte geht es nicht. es zeigt das bild einfach nicht an. png dateien sind allerdings kein Problem. an was liegt das und wie kann ich das korrigieren?

28.04.2013 - 20:09 Uhr

Bei WPF habe ich extreme probleme mit dem verscheiebn und animieren von objekten
Ich bekomme es selbst nach 10h tutorials und probieren nicht hin ein object zu verschieben, da ja alle koordinaten irgendwie relativ sind und man nciht einafch so ein object verschieben kann. Schlcihtweg WPF ist im vergleich zu XNA und DirectX extrem kompliziert, zumindest aus meienr sichtweise

edit: bzw 2 Animationen gleichzeitig auszufüren (auf dem gleichen Objekt)

28.04.2013 - 20:03 Uhr

Hey Leute ich hab mnal eine Frage und zwar bin ich gerade an einem (für mich) recht aufwenigen Projekt und zwar einen Musikplayer , bei dem man absolut alles verändern können soll also die verschiedenen objecte wie equalizer etc herumschieben und sowas auch die farben schriftart also einfach alles.

Nun habe cih diesen Playxer vorerst auf windows Forms basierend erstellt also zeichne ich alle Objecte auf einem Panel über GDI+ nun das problem ist da ich so extrem viele objecte habe fängt das Programm langsam an zu laggen bzw die Grafikzeichnung dauert über 20ms was für mich nicht ausreichend ist.

Nun meine Frage ist ob es vlt sinnvoll wäre das ganze in XNA auszulagern,was ja speziell für grafikintensieve sachen gedacht ist. Dabei habe ich aber das problem dass XNA 1. ein bsichen veraltet ist (.Net3.5 so viel ich weiß) und nicht jeder PC XNA installiert hat.
Die Andere möglichkeit wäre DirectX wo ich aber die MAnaged DLLs nicht finden kann welche in vielen tutorials dazu verwendet werden die einzige dll die funktioniert ist noch directX9. Was haltet ihr davon lieber auf windows forms bleiben oder zu XNA oder DirectX oder vlt was ganz anderes wechseln

01.03.2013 - 15:15 Uhr

Hey liebes Forum

Ich ahbe mal wieder eine Frage, und zwar muss ich schulisch JAVA lernen möchte aber weiterhin mit VS arbeiten können, da mir die Optik und der Aufbau von Eclipse NetBeans etc absulut nicht zusagt. Nun möchte ich fragen ob es eine möglichkeit gibt Java Code in VS zu schreiben inklusive SyntaxHighlighting etc (Drag and Drop Forms brauche ich aber nicht)

oder ob ich wirklich gezwungen bin Eclipse zu benutzen

PS Benutze VS 12 Ultimate

21.02.2013 - 17:14 Uhr

Ach ja genau die Properties danke dieser Denkanstoß hat mir gefehlt

21.02.2013 - 15:15 Uhr

HAllo Liebes C# Forum
ich habe eine Frage und zwar habe ich eine allgemeine Klasse definiert, und möchte nun eine davon Erbende Klasse erstellen (SubModell : Modell)

nun benötige ich allerdings eine Variable die SubModell von Modell erbt mit dem static Modifier statt public, da diese Variable in allen Instanzen von SubModell gleich ist.

nun habe ich diese Klasse


public class Modell
    {
        public Color BACKGROUND;

        public Modell() {
            
        }
    }

Diese Variable BACKGROUND soll nun in dieser Klasse static sein also so:


public class SubModell:Modell
    {
        public static Color BACKGROUND;

        public SubModell() {
            
        }
    }

Allerding ist es sehr unschön die Variable einfach zu Hiden deswegen Frage ich giebt es eine Alternative den Modifier von public in public static zu ändern oder soetwas in der Art

21.12.2012 - 00:46 Uhr

Hallo liebes Forum ich habe ein großes problem

ICh weiß auch nciht so recht an wen ich mich wenden soll also probier ich es einafch mal hier

Und zwar läuft Visual Studio sowohl 2012 Express 2012 Ultimate oder C# 2010 auf meinem rechner nciht und cih hab ekine ahnung wieso

Die installation wird bei allen dreien erfolgreich beendet nur wenn ich starte kommt
nur der ladescreen und sonst passiert dannach absolut nichts mehr
(Aufhängen tut sich das Programm allerdings laut taskmanager nicht)

System ist:
OS: Windows 7 Home Premium 64bit
CPU: Intel I7 Ivi Bridge unlocked
GRAKA: Nvidia 9600GT

Interessant nachdem ich das Programm gestartet habe ist die cpu auslastung imemr um ca 25%höher und bleibta uch konstant dort

Hoffe auf schnelle Rückmeldung ICh liebe c# und möchte auch nur sehr ungern auf den Komfort von Visual Studio verzichten

18.09.2011 - 18:47 Uhr

Ja ich möchte einen webbrowser integrieren und die dort abgespielten video urls ermitteln

18.09.2011 - 18:31 Uhr

Hallo liebes forum
manche von euch kennen vlt das programm streamtransport falls ja gibt es eine möglichkeit etwas ähnliches in c# umzusetzen? also wenn man ein youtubevideo abspielt man die videourl bekommt?

wäre nett wenn ihr helfen könntet

03.09.2011 - 15:00 Uhr

hey Liebes forum ich hab da ein problem und zwar habe ich folgende drei klassen

Funktion
Initialize
Main

so nun die Main Klasse ist wie der name schon sagt die ausgangsklasse
in der Initializeklasse erstelle ich eine Listview und möchte dieser listview eine Keypressfunktion geben, welche sich in der funktion klasse befindet nun sagt mir csharp aber leider immer das:

Fehlermeldung:
Fehler 1 Für das nicht statische Feld, die Methode oder die Eigenschaft "Tabellenkalkulation_v2.main.itemclick(object, System.Windows.Forms.KeyPressEventArgs)" ist ein Objektverweis erforderlich. C:\Users\Alex\Documents\Visual Studio 2010\Projects\Tabellenkalkulation v2.0\Tabellenkalkulation v2.0\Initialize.cs 43 49 Tabellenkalkulation v2.0

was muss ich ändern damit es geht

ps funktion in der Funktionklasse:

public void itemclick(object sender, KeyPressEventArgs e)
       {
              MessageBox.Show("Funktioniert")
       }
11.06.2011 - 21:02 Uhr

ok mittlerweile habe ichs auch schon selber umgesetzt danke ich dachte nur das geht vlt irgendwie

11.06.2011 - 17:01 Uhr

Hallo Leute

Ich denke die Überschrift gibt schon ein kleinen einstieg was ich machen will

Ich mochte eine reine Jahres und Monatsauswahl
ich dachte das geht mit monthcalendar aber dieser zeigt mir immer die Tage an

Also ich möchte einen Monthcalendar nur ohne Tage geht das und wenn ja wie

oder soll ich einfach gleich selber ne Monatsauswahl machen

07.06.2011 - 00:29 Uhr

isn private programm mit dem man webradio hören kann

06.06.2011 - 23:55 Uhr

ich will onlinestream im aac format und mp3 abspielen wmp ist einfach am einfachsten

06.06.2011 - 23:49 Uhr

schon aber des prog funktioniert nicht ohne beide dlls und das nervt da das ganze prg ja aus 3 dateien (exe dll 2. dll) besteht und grade mal 700kb groß is

06.06.2011 - 23:43 Uhr

Hey Leute

gibt es irgendeine möglichkeit die dlls von dem WMP control mit in die exe zu packen

ich hätte nämlich grene ne standalone exe

danke schon mal im vorraus

06.06.2011 - 23:41 Uhr

thx aber habs schon mit wmplib gemacht danke

05.06.2011 - 21:32 Uhr

Liebes forum ich habe eine frage und hoffe das ich hier richtig bin

ich möchte einen webradioplayer in c# bauen genauergesagt geht es mir um Technobase.fm

nun die frage wie kann ich einen webstream in c# abspielen

nochgenauer eine aac oder mp3 datei als webstream

AAC:
http://listen.technobase.fm/tunein-aacplus-pls

Mp3:
http://listen.technobase.fm/tunein-dsl-pls

hoffe ihr könnt mir helfen

30.03.2011 - 14:36 Uhr

Danke hat Funktioniert danke für den schnellen Support 👍 👍 👍 👍 👍 👍 👍

30.03.2011 - 14:31 Uhr

thx werds mal ausprobieren habe keine warnung oder fehler bekommen aber trotzdem danke

30.03.2011 - 14:11 Uhr

verwendetes Datenbanksystem: <XML>

Hallo Liebes Forum ich habe mal wieder ein Problem und Zwar habe ich diesen Code


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Diagnostics;
using System.Xml.Linq;
using System.Windows.Forms;

namespace Explorer
{
    public partial class MainMenu : Form
    {
        public string projectpath = Environment.CurrentDirectory;
        public Button[] button;
        
        public MainMenu()
        {
            string projectpath = Environment.CurrentDirectory;
            
            InitializeComponent();
            Button[] button= new Button[]{button1, button2, button3, button4, button5, button6, button7, button8, button9, button10, button11, button12};
        }

        private void Favoriten_Click(object sender, EventArgs e)
        {
            for (int item = 0; item <= 8; item++)
            {
            }
        }

        private void Change_Items(string section)
        {
            Image ButtonImage;
            for (int buttonnr = 1; buttonnr <= 12; buttonnr++)
            {
                var xmldoc = XDocument.Load(projectpath + "\\Data.xml");
                var items = from element in xmldoc.Descendants(section).Elements("Item")
                            select new
                            {
                                id = element.Attribute("id"),
                                name = element.Attribute("name"),
                                path = element.Attribute("path"),
                                picture = element.Attribute("picture")
                            };
                foreach (var item in items)
                {
                    MessageBox.Show(item.id.Value.ToString());
                    int ButtonId = Convert.ToInt16(item.id.Value.ToString()); 
                    ButtonImage = Image.FromFile(item.picture.Value.ToString());
                    button[ButtonId].Image = ButtonImage;//Der Objektverweis wurde nicht auf eine
                                                                             //Objektinstanz festgelegt.
                    button[ButtonId].Tag = item.path.ToString();
                    button[ButtonId].Text = item.name.ToString();
                    button[ButtonId].Visible = true;
                }
            }
        }

        private void Menu_Click(object sender, EventArgs e)
        {
            Button ClickedButton = (Button)sender;
            for (int id = 1; id <= 12; id++)
            {
                //button[id].Visible = false;
            }

            Change_Items(ClickedButton.Name);
        }

        private void Button_Click(object sender, EventArgs e)
        {
            Button ClickedButton = (Button)sender;
            string Programm2Start = ClickedButton.Tag.ToString();
            Process NewProcess = new Process();
            NewProcess.StartInfo.FileName = Programm2Start;
            NewProcess.Start();
        }
    }
}


geschrieben um diese XML Datei(nur ein auszug)


<?xml version="1.0" encoding="ISO-8859-1"?>
<root>
<Favoriten>
	<Item id="1" name="Opera" path="D:\Programme\Internet\Browser\Opera\\opera.exe" picture="E:\Desktop\Test\Internet\\Opera.png"/>
	<Item id="2" name="Opera" path="D:\Programme\Internet\Browser\Opera\\opera.exe" picture="E:\Desktop\Test\Internet\\Opera.png"/>
	<Item id="3" name="Opera" path="D:\Programme\Internet\Browser\Opera\\opera.exe" picture="E:\Desktop\Test\Internet\\Opera.png"/>
	<Item id="4" name="Opera" path="D:\Programme\Internet\Browser\Opera\\opera.exe" picture="E:\Desktop\Test\Internet\\Opera.png"/>
	<Item id="5" name="Opera" path="D:\Programme\Internet\Browser\Opera\\opera.exe" picture="E:\Desktop\Test\Internet\\Opera.png"/>
	<Item id="6" name="Opera" path="D:\Programme\Internet\Browser\Opera\\opera.exe" picture="E:\Desktop\Test\Internet\\Opera.png"/>
	<Item id="7" name="Opera" path="D:\Programme\Internet\Browser\Opera\\opera.exe" picture="E:\Desktop\Test\Internet\\Opera.png"/>
	<Item id="8" name="Opera" path="D:\Programme\Internet\Browser\Opera\\opera.exe" picture="E:\Desktop\Test\Internet\\Opera.png"/>
	<Item id="9" name="Opera" path="D:\Programme\Internet\Browser\Opera\\opera.exe" picture="E:\Desktop\Test\Internet\\Opera.png"/>
</Favoriten>
</root>

auszulesen

nun bekomme ich immer an einer Stelle eine Fehlermeldug und weiß nicht was ich machen soll
(Fehler ist im Code als Kommentar)
oder siehe anhang

28.03.2011 - 16:07 Uhr

Thanks TH69 werds mal testen und dann melden falls es funktioniert hat

27.03.2011 - 21:45 Uhr

verwendetes Datenbanksystem: <XML>

Liebes Forum ich habe iene Frage und zwar habe ich mit XML


<root>
<Internet>
	<Item id="1" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="2" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="3" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="4" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="5" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="6" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="7" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="8" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="9" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
</Internet>
</root>

folgenden Code zum auslesen


 private void ChangeItems(string section)
        {
            for (int buttonnr = 1; buttonnr <= 12; buttonnr++)
            {
                var xmldoc = XDocument.Load(projectpath + "\\Data.xml");
                var items = from element in xmldoc.Descendants("Internet").Elements("Item")
                            select new
                            {
                                id = element.Attribute("id").ToString(),
                                name = element.Attribute("name").ToString(),
                                path = element.Attribute("path").ToString(),
                                picture = element.Attribute("picture").ToString()
                            };
                foreach (var item in items)
                {

                }
            }
        }

das funktioniert auch soweit, nun habe ich aber ein Problem und zwar habe ich 12 buttenswo die Daten eingetragen werden sollen also id = buttonnr (zb id=1 -> button1) name als buttontext und picture als image

nun die Frage wie kann cih die Daten dorteintragen

27.03.2011 - 19:12 Uhr

Danke Bino aber ich suche eine lösung mit Linq

trashkid danke für den tipp werds mal ausprobieren

27.03.2011 - 00:54 Uhr

also ich hab jetzt meinen code soweit fertig allerdings komm ich beim auslesen nciht wirklich zurecht


<?xml version="1.0" encoding="ISO-8859-1"?>
<root>
<Favoriten>
	<Item id="1" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="2" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="3" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="4" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="5" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="6" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="7" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="8" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="9" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
</Favoriten>

<Internet>
	<Item id="1" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="2" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="3" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="4" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="5" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="6" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="7" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="8" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="9" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
</Internet>

<Büro>
	<Item id="1" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="2" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="3" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="4" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="5" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="6" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="7" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="8" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="9" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
</Büro>

<Spiele>
	<Item id="1" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="2" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="3" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="4" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="5" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="6" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="7" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="8" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="9" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
</Spiele>

<Multimedia>
	<Item id="1" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="2" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="3" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="4" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="5" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="6" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="7" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="8" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="9" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
</Multimedia>

<Ordner>
	<Item id="1" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="2" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="3" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="4" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="5" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="6" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="7" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="8" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
	<Item id="9" name="Arcor Online" path="C:\Arcor..." picture="D:\Data..."/>
</Ordner>
</root>

Code:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        
        static void Main(string[] args)
        {
            string projectpath = Environment.CurrentDirectory;
            var xmldoc = XDocument.Load(projectpath + "\\Data.xml");
            var internet = from e in xmldoc.Descendants("Internet")
                           select new
                           {
                               items =  e.Descendants("Item").//was muss hier hin damit ich alle attribute
                                                                              //gleichzeitig auslesen kann?
                           };
            foreach (var item in internet)
            {
                Console.WriteLine(item);
                
            }
            while (true){}
                
        }
    }
}


wie kann ich nun alle attribute des items auslesen?

26.03.2011 - 22:11 Uhr

ok danke für den Tipp nur wie kann ich diese Knoten mit den Variablen nun auslesen?

26.03.2011 - 20:32 Uhr

verwendetes Datenbanksystem: <XML>

Hallo Liebes Forum ich habe ien Problem ich habe mir eine Programmverwaltung geschrieben, wo die Verschiedenen Programme mit Pfad und Name und Icon beschrieben werden diese Programme werden in verschiedene Gruppen eingeteilt siehe hier:

editiert wegen Bino431 Kommentar


<?xml version="1.0" encoding="ISO-8859-1"?>
<root>
<Favoriten>
	<Item id="1">
		<Name>Arcor Online</Name>
		<Pfad>C:\Arcor...</Pfad>
		<Bild>D:\Data...</Bild>
	</Item>
	
	<Item id="2">
		<Name></Name>
		<Pfad></Pfad>
		<Bild></Bild>
	</Item>
</Favoriten>

<Internet>
	<Item id="1">
		<Name></Name>
		<Pfad></Pfad>
		<Bild></Bild>
	</Item>
	
	<Item id="2">
		<Name></Name>
		<Pfad></Pfad>
		<Bild></Bild>
	</Item>
</root>

nun meine Frage wie komme ich an diese Daten heran ich komm immer nur bis ebene 1 und weiter leider nicht

außerdem sagt es immer: Es sind mehrere Stammelemente vorhanden. Zeile 59, Position 2.

21.03.2011 - 20:40 Uhr

Ich hab in nem anderen Forum gelesen dass man das so machen sollte wie gesagt ich hab keinen Plan wie das funktionieren kann da es nirgends ein gescheites Beispiel oder ne Musterlösung gibt

überall steht nur das man das irgendwie mit dem Resourcenmanager machen soll aber bei mir erkennt das Programm nicht einmal das die exe eingebunden ist

Also Nochmal von Vorne

Ich hab eine 12 Mb große Setupdatei von Daemontools Pro Advanced

Diese Setupdatei möchte ich in mein Projekt einbinden (hab ich schon)

Nun soll wenn ich auf den Installieren Button drücke die genannte Setupdatei ins Temporäre Verzeichnis kopiert und ausgeführt werden nun hab ich aber das Problem, dass ich nicht weiß wie ich diese Setupdatei aus dem laufenden Programm extrahieren kann
und wollte Fragen wwie das Möglich ist, da das beispiel aus dem oben genannten Thread:


String myFile = Path.GetTempPath() + "\\StupidAppFromRes.exe";
File.WriteAllBytes(myFile, Properties.Resources.StupidApp);
System.Diagnostics.Process.Start(myFile);  

Nicht für meine *.exe datei Funktioniert

(Es gibt ja die Möglichkeit die Setupdatei automatisch in das Ausgabeverzeichnis zu Kopieren also muss es ja Funktionieren nur wie kann ich die Datei statt ins Ausgabeverzeichnis ins Tempverzeichnis extrahieren)

21.03.2011 - 18:54 Uhr

wie ich schon sagte das Threadbeispiel geht nicht es erkennt die exe nicht und ich weiß nicht warum

21.03.2011 - 17:56 Uhr

also das is mein code bis hier


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Windows.Forms;


namespace Daemon_Tools
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Install_Click(object sender, EventArgs e)
        {
            this.BackgroundImage = Daemon_Tools.Properties.Resources.BackInstall;

            TextDatei DaemonToolsSetup = new TextDatei();
            string temp = System.IO.Path.GetTempPath();
            DaemonToolsSetup.WriteFile(temp + "DaemonToolsSetup.exe", setupfile);

            Process Setup = new Process();
            Setup.StartInfo.FileName = temp + "DaemonToolsSetup.exe";
            Setup.Start();
        }

        private void Uninstall_Click(object sender, EventArgs e)
        {
            this.BackgroundImage = Daemon_Tools.Properties.Resources.BackCrack;
        }

        private void AutoInstall_CheckedChanged(object sender, EventArgs e)
        {
            if (AutoInstall.CheckState.ToString() == "Checked")
            {
                Uninstall.Enabled = false;
            }
            else
            {
                Uninstall.Enabled = true;
            }
        }

    }
}


und das is die includete Filwrite cs


using System;
using System.IO;

class TextDatei
{
    ///<summary>
    /// Liefert den Inhalt der Datei zurück.
    ///</summary>
    ///<param name="sFilename">Dateipfad</param>
    public string ReadFile(String sFilename)
    {
        string sContent = "";

        if (File.Exists(sFilename))
        {
            StreamReader myFile = new StreamReader(sFilename, System.Text.Encoding.Default);
            sContent = myFile.ReadToEnd();
            myFile.Close();
        }
        return sContent;
    }

    ///<summary>
    /// Schreibt den übergebenen Inhalt in eine Textdatei.
    ///</summary>
    ///<param name="sFilename">Pfad zur Datei</param>
    ///<param name="sLines">zu schreibender Text</param>
    public void WriteFile(String sFilename, String sLines)
    {
        StreamWriter myFile = new StreamWriter(sFilename);
        myFile.Write(sLines);
        myFile.Close();
    }

    ///<summary>
    /// Fügt den übergebenen Text an das Ende einer Textdatei an.
    ///</summary>
    ///<param name="sFilename">Pfad zur Datei</param>
    ///<param name="sLines">anzufügender Text</param>
    public void Append(string sFilename, string sLines)
    {
        StreamWriter myFile = new StreamWriter(sFilename, true);
        myFile.Write(sLines);
        myFile.Close();
    }

    ///<summary>
    /// Liefert den Inhalt der übergebenen Zeilennummer zurück.
    ///</summary>
    ///<param name="sFilename">Pfad zur Datei</param>
    ///<param name="iLine">Zeilennummer</param>
    public string ReadLine(String sFilename, int iLine)
    {
        string sContent = "";
        float fRow = 0;
        if (File.Exists(sFilename))
        {
            StreamReader myFile = new StreamReader(sFilename, System.Text.Encoding.Default);
            while (!myFile.EndOfStream && fRow < iLine)
            {
                fRow++;
                sContent = myFile.ReadLine();
            }
            myFile.Close();
            if (fRow < iLine)
                sContent = "";
        }
        return sContent;
    }

    /// <summary>
    /// Schreibt den übergebenen Text in eine definierte Zeile.
    ///</summary>
    ///<param name="sFilename">Pfad zur Datei</param>
    ///<param name="iLine">Zeilennummer</param>
    ///<param name="sLines">Text für die übergebene Zeile</param>
    ///<param name="bReplace">Text in dieser Zeile überschreiben (t) oder einfügen (f)</param>
    public void WriteLine(String sFilename, int iLine, string sLines, bool bReplace)
    {
        string sContent = "";
        string[] delimiterstring = { "\r\n" };

        if (File.Exists(sFilename))
        {
            StreamReader myFile = new StreamReader(sFilename, System.Text.Encoding.Default);
            sContent = myFile.ReadToEnd();
            myFile.Close();
        }

        string[] sCols = sContent.Split(delimiterstring, StringSplitOptions.None);

        if (sCols.Length >= iLine)
        {
            if (!bReplace)
                sCols[iLine - 1] = sLines + "\r\n" + sCols[iLine - 1];
            else
                sCols[iLine - 1] = sLines;

            sContent = "";
            for (int x = 0; x < sCols.Length - 1; x++)
            {
                sContent += sCols[x] + "\r\n";
            }
            sContent += sCols[sCols.Length - 1];

        }
        else
        {
            for (int x = 0; x < iLine - sCols.Length; x++)
                sContent += "\r\n";

            sContent += sLines;
        }


        StreamWriter mySaveFile = new StreamWriter(sFilename);
        mySaveFile.Write(sContent);
        mySaveFile.Close();
    }
}


21.03.2011 - 17:45 Uhr

zu dem size problem ich würde die Scalierung im Designer auf none setzen damit werden die Bilder nicht verzogen müssen allerdings die Größe haben die du später auf deiner Gui möchtest

21.03.2011 - 17:40 Uhr

also bei den Icons musst du aufpassen du benötigst meist multiresolutionicons also ein icon wo mehrere ebenen in verschiedenen Größen sind

Lässt sich mit Gimp leicht umsetzen die besten größen wären

128x128 dann 64x64 dann 32x32 dann 16x16 damit werden die Icons immer schön angezeigt siehe zb Findicons.com dort findest du jede menge multiresicons

21.03.2011 - 17:23 Uhr

sorry die Beiden Einträge haben mir zwar geholfen komme allerdings nicht weite ich krieg einfach diese blöde exe nicht rausgeschrieben ps es ist keine .Net Anwendung

Das Programm meldet immer:

Fehlermeldung:
Fehler 2 "Setup.Properties.Resources" enthält keine Definition für "Setup". C:\Users\Alex\Documents\Visual Studio 2010\Projects\Setup\Setup\FileExtract.cs 12 71 Setup

ich weiß nicht wie ich diese exe auf meine Festplatte extrahieren kann

Ps: Die Exe Befindet sich 100%ig in den Ressourcen

20.03.2011 - 19:45 Uhr

Hast du die Hintergrundfarbe des Labels auf transparent gesetzt?

dann müsstest du eigentlich wenigstens die Schrift sauber haben

Edit: Du könntest auch mal versuchen die Schrift erst nach dem initialize der ersten Form zu erstellen

also nach diesem Codestück:

InitializeComponent();

könnte eventuell auch helfen habs aber nicht ausprobiert

20.03.2011 - 19:41 Uhr

Hallo liebe Community

Ich hab eine Frage ich habe eine .exe datei als eingebettete Ressource in mein Projekt eingebunden und wollte fragen wie ich sie entweder direkt ausfürhren kann oder sie in ein Temporäres verzeichnis kopieren\extrahieren kann