Laden...

Forenbeiträge von Alf Ator Ingesamt 764 Beiträge

11.01.2012 - 16:48 Uhr

Das kommt mir sehr spanisch vor. Ich kann mir eigendlich nicht vorstellen, dass die Reihenfolge ohne guten Grund 'durcheinander kommt'.

Nichtsdestotrotz:

Mach eine Struktur, wie sie deiner Meinung nach sein soll und ordne die entsprechenden Elemente der importierten Xml da ein, wobei du die Elemente, die in deiner Struktur festgelegt sind auslässt und die Elemente und Attribute, die von dir nicht festgelegt sind jeweils mit überträgst. Alles klar? 8o

10.01.2012 - 17:30 Uhr

Hier ein ausführlicher Beitrag von herbivore.

Nach gründlichem Nachdenken bin ich zu dem Schluß gekommen, dass DialogBox auch in diesem Fall vermieden werden sollte.
Beispielsweise würde ich gerne das Passwort in meinem Safe nachschlagen, komme aber nicht an den Link auf dem Desktop, da ich wegen der DialogBox mein Hauptfenster nicht verschieben kann. Alles klar 😄

10.01.2012 - 16:02 Uhr

Robert C Martin schreibt in seinem Buch: Clean Code, dass man Kommentare vermeiden soll. Und zwar indem man den Code aussagekräftig genug schreibt.

Edit: Aber das ist sicherlich ein Punkt, über den man streiten kann.

10.01.2012 - 15:29 Uhr

Ausnahmsweise mit einer DialogBox.

Achso.. äh: Als mach ein eigenes Form dafür und benutz dieses als Dialog.

10.01.2012 - 11:07 Uhr

Stellt sich noch die Frage, in wieweit das da Sinn macht.
Warum nicht gleich in den richtigen (ProgrammData) Ordner schreiben?

Dazu auch folgendes Szenario
Der User stellt UAC aus installiert dein Programm und stellt UAC wieder an.

09.01.2012 - 17:19 Uhr

Ok, vielen Dank herbivore.

09.01.2012 - 15:03 Uhr

Statemachines stammen aus der Urzeit der Automatentheorie. Eigentlich sollten sie in ihrer ursprünglich definierten Form längst ausgestorben sein. Leider sind die Dinos in vielen Köpfen noch dominierend. Die leichteren, schnelleren und fähigeren Exemplare ihrer regulären Nachkommen müssen noch unter den alten übergrossen Greisen leiden.
Jedoch ist stets gut die Geschichte zu kennen und zu verstehen. Der Cola-Automat in der modernen SW tut es allerdings nicht mehr so richtig. Auf die Rudimente stösst man allemal, ohne Zustände geht es nicht. Allerdings bekommt man manchmal solche wenn man diverse Artikel liest(Einer dieser(voll Retro) ist auf Wikipedia verlinkt: Die Geschichte der Statemachine ist eine Geschichte voller Missverständnisse usw. - hellblaue Blutungen in der linken Hand).
Kennen sollte man das Ding schon.

Hallo Zusammen! Ich muss mich hier mal als Totengräber betätigen. Ich versteh die obigen Aussagen nicht, will aber auch keine Dinos in meinem Kopf haben. Welches sind die leichteren und schnelleren Nachkommen? Wo liegen die Missverständnisse und was hat das alles mit blauem Blut zu tun. Fragen über Fragen... 🤔

02.01.2012 - 09:03 Uhr

Frohes Neues! 👍

16.12.2011 - 14:27 Uhr

There are only two hard problems in Computer Science: cache invalidation, naming things and off-by-one errors

Hahaha 😁

Spontan würden mir jetzt Inhalt (eher geeignet in Garagen, die auch Fahrräder etc. zulassen) oder AbgestelltesAuto einfallen.

Das ist doch schon mal was und ich glaube auch der Weg in die richtige Richtung, weil Property und Klasse sollten imho nicht gleich heißen, auch wenns geht.
Für meinen Problem passt das abgestellte Auto sehr gut. Vielen Dank!

16.12.2011 - 13:31 Uhr

Wie lustig ich habe diesen Beitrag erst nicht gefunden und angefangen ein neues Thema zu erstellt: Namensgebung: Property-Name == Klassenname
Das habe ich dann nochmal in die Suche reinkopiert und das hier gefunden.

Was ich noch nicht verstanden habe, wie könnten denn alternative Namensgebungen sein. Nehmen wir einfach ein Beispiel:

_class Auto _und class Garage

Bei einer DoppelGarage würde ich das Property List<Auto> Autos verwenden, oder LinkesAuto, RechtesAuto.

Bei einer Einzelgarage würde ich das Property Auto nennen, also genauso wie die Klasse. Aber wie wäre die Alternative dazu? Anderer Klassenname? Oder AutoInstanz oder wie oder was?

Gruß, Alf

http://www.classnamer.com/
👍 👍 😁

14.12.2011 - 08:58 Uhr

Vielleicht gibt es da tatsächlich auch eine Tabelle mit Wörtern mit 9 Buchstaben...

Das glaube ich eher nicht. Das Projekt ist noch recht jung. Allerdings könntest du eine Anlegen.

13.12.2011 - 08:41 Uhr

An dieser Stelle will ich auch mal auf FireDolphin - Die zentrale Datenquelle im Internet verweisen.

09.12.2011 - 14:55 Uhr

Ich kenne mich mit WPF nicht so aus, aber ich bin mir sicher, dass es eine Max-Eigenschaft gibt. Such doch mal nach SizeToContent und max.

Gruß, Alf

08.12.2011 - 11:28 Uhr

Eine einfache Lösung für ein doch recht komplexes Problem wirst du nicht finden.
Schau dir mal das ObjectListView Da ist ein TreelListView mit dabei und die Dokumentation ist recht gut, mit Beispielen etc.

07.12.2011 - 14:30 Uhr

Ich helf dir mal den Fehler zu finden:


string comboboxText = "lb";
Array values = "g,kg,t,lb,oz,lb-oz".Split(',');
int valueIndex = Array.IndexOf(values, comboboxText);
int[] numbers = new int[] { 0, 1, 2, 7, 8, 9 };
int z = numbers[valueIndex];

Da kannst du jetzt mit F10 Schritt für Schritt durchparsen und mit der Maus über die Variablen gehen und die Werte überprüfen. Dann siehst du genau wo der Fehler liegt.

Abgesehen davon lässt sich dein Problem natürlich viel eleganter lösen, z.B. wie schon geschrieben durch DataBinding, oder z.B. durch ein Dictionary<>

05.12.2011 - 08:52 Uhr

Privat brauche ich eigendlich keine VMs. Hab halt eine für Testzwecke, aber die wird nur selten gebraucht.
Beruflich arbeite ich Grundsätzlich nur unter VMs.

02.12.2011 - 15:59 Uhr

Hallo ihr Beiden.

Ja richtig, die Informationen sind wohl nicht so informativ x. Das kommt vom ganzen Grübeln, da schwirrt mir der Kopf zu sehr um sowas vernünftig rüberzubringen.

@MrSparkle
Die drei MaschineneProduktionen gehören zusammen zu einer Produktionslinie. Die Hauptproduktion beginnt also mit dem Start der ersten Maschinenproduktion und endet mit dem Ende der letzten MaschinenProduktion. Meine Aufgabe ist es die Hauptproduktion zu generieren. Zum Stundenplan passt es also eher nicht.

@herbivore
Ja, richtig erkannt, auch das mein eigentliches Problem die Fehlererkennung ist. Anhand der zahlosen möglichen Fehlerquellen, bin ich zu dem Schluß gekommen, dass sich dieses Problem nicht ohne Benutzerinteraktion lösen lässt. Damit erschlage ich dann auch gleich das übrigbleibende Problem der zeitlichen Überlappung von Produktionen.

Mit anderen Worten, der Benutzer bekommt jetzt drei Listen mit der zeitlichen Darstellung der Ereignisse und muss dann die zusammengehörigen selbst zuordnen. Also etwa wie meine Skizze auf die Seite gestellt.

Also wer's genauer wissen will, kann sich gerne an mich wenden.

Vielen Dank und schönes Wochenende

02.12.2011 - 14:11 Uhr

Hallo Community!

Ich habe ein Problem logischer Natur.

Und zwar muss ich Produktionen mehrerer Maschinen (drei) zu einer Hauptproduktion zusammenfügen. Die MaschinenProduktionen können zeitlich leicht unterschiedlich liegen, aber sind meistens Zeitnah aneinander.
Hauptproduktionen können sich somit auch überlappen.
Jede Produktion (also Maschinenproduktion und dann auch die Hauptproduktion) hat die Parameter ProdukionsId, Startzeit, Stopzeit und an den Maschinen die MaschinenId.

Ich soll jetzt aus den MaschinenProduktionen die jeweilige Haupproduktion erstellen.
Während Standard-Situationen vielleicht noch zu bewältigen sind, bringen mich die Details (Fehlererkennung) um den Verstand.

Für solche probleme hat sich doch bestimmt schon eine schlauer Kopf eine Lösung ausgedacht. Ich für meinen Teil dreh mich nur im Kreis.

Liebe Grüße, Alf

Edit: Ich habe grade noch was gefunden, Stichworte Lamport-Uhr und Vector-Uhr. OMG

Edit2: Ok, ich glaube mein Problem lässt sich mit einer Vector-Uhr lösen. Allerdings fürchte ich, dass mir das zu hoch ist.. 8o

30.11.2011 - 16:20 Uhr

Hallo mscheitza,

intressantes Projekt hast du da. Ich fände es schön, wenn es eine portable Version geben würde. Dass würde natürlich auch ein ""Server-unabhängiges" Datenbanksystem" mit einschließen.

Meinst du sowas wäre machbar? Würde mich freuen.

Gruß, Alf

28.11.2011 - 16:21 Uhr

Damit habe ich mich auch rumgeärgert. 😜

Wenn du dein Projekt neu erstellst, alle Dateien neu einfügen etc. dann kann es sein, dass es wieder geht. Wahrscheinlich ist es dass es dann nach kurzer Freude trotzdem wieder kaputt geht. Spar dir die Mühe und arbeite so weiter.
Es sei denn jemand weiss warum und wieso und weshalb und wie und wo und warum überhaupt =)

28.11.2011 - 14:29 Uhr

Ok, vielen Dank euch allen.

Die verschiedenen Befehlsketten in eigene Klassen zu packen (mit Polymorphie) hat viel übersichtlichkeit gebracht. Hätte ich nicht so erwartet.
Ausserdem habe ich noch die Aufrufe in einer eigenen Klasse gekapselt. Für den Anwender bleibt dann eine Klasse und 5 Methoden mit ein paar Parametern. So mag ich das.

Gruß, Alf

25.11.2011 - 13:58 Uhr

Ich habe das Buch auch gelesen und kann es auch guten Gewissens weiterempfehlen. Ist zwar nicht ganz fehlerfrei, aber erklärt alles gut und deutlich.

25.11.2011 - 10:57 Uhr

Zeig doch mal deinen Code, wie du das übergibts.

25.11.2011 - 10:17 Uhr

Ah, jetzt verstehe ich. Ja die nächste Nachricht ist abhängig von der jeweiligen Antwort.

Sogesehen wäre das Producer/Consumer-Szenario also gar nicht notwendig?

24.11.2011 - 15:40 Uhr

So, habe das ganze jetzt mal so Implementiert (mit Polymorphie). Gefällt mir gut so und ich fühl mich gleich viel wohler.

Statt commandObjects übergebe ich jetzt delegates:


protected delegate void commandDelegate();
protected BlockingCollection<commandDelegate> commandQueue = new BlockingCollection<commandDelegate>();

commandQueue.Add(() => controller.SendLogin(user));

commandQueue.Take().Invoke();

Warum ich bei der commandDelegate-Deklaration keinen Parameter mit angeben muss, weiss ich nicht. Funktioniert aber.
So hat es übrigens auch den Vorteil, dass ich eine Ende-Methode im ArtikelListEingeber aufrufen kann.

Vielen dank für die Hilfe, gfoidl

Hallo weismat,

die Artikel brauchen keinen Verweis auf den vorherigen Artikel
So ganz verstanden habe ich das noch nicht, worauf du hinaus willst.

Die Kommunikation mit dem Server ist Session-basiert. Das Senden und Empfangen von Nachrichten läuft über einen Wrapper der parst mir schön brav die Antworten und schickt die Kommandos ab, nachdem er sie in eine passende Form gebracht hat. Das heißt, die Antworten liegen mir schon als vollständige Objekte vor und Daten kann ich über entsprechende Methoden senden. Allerdings nur, wenn der Server in einem bestimmten Status ist (was ich über die Antworten herausbekomme).

gruß, Alf =)

24.11.2011 - 13:30 Uhr

Ok, vielen Dank! Dann werde ich mich mal dran machen, dass so umzusetzten.

Eine Fragen noch am Ende:

Das Senden und Empfangen von Nachrichten läuft Produktionsbedingt immer linear ab. das heisst, ich hätte in meiner commandQueue immer maximal ein commandObject. Dann könnte ich ja theoretisch statt einer Collection ein einzelnes Object verwenden, dass jeweils auf ein Delegate verweist? Dann würde ich pro Befehl in der Klasse CommandObject noch ein delegate anbieten, damit ich die SendMethoden direkt aufrufen kann.

Edit: maximal

24.11.2011 - 13:11 Uhr

Hallo gfoidl,

ich versuch mal zu Zeigen, ob ich das richtig verstanden habe:

Ich mach pro Befehlskette eine Klasse (ArtikelListEingeber, ArtikelVeränderer). Die Polymorphie lass ich erst mal aussen vor.
Meine Klasse ArtikelListEingeber bekommt jetzt eine commandQueue (vom Typ BlockingCollection<CommandObject>).
Das responseEvent schiebt, immer wenn eine Antwort kommt, ein commandObject in die commandQueue.
Ausserdem hat der ArtikelListEingeber einen Thread, der commandObjects aus der Queue holt und ausführt.


class ArtikelListEingeber
{
    BlockingCollection<CommandObject> commandQueue = new BlockingCollection<CommandObject>();
[...]
    void responseEvent()
    {
        AddNextCommandToQueue();
    }
    private void AddNextCommandToQueue()
    {
        switch (responseType)
        {
            case ResponseType.LoggedIn:
                {
                    commandQueue.Add(new CommandObject(SendArtikelListeEingeben));
                    break;
                }
            case ResponseType.WaitForArtikel:
                {
                    commandQueue.Add(new CommandObject(SendArtikel(artikelQueue.Dequeue()));
                    break;
                }
        }
    }

    public void InitCommandSender()
    {
        Task commandSender = Task.Factory.StartNew(SendCommand);
    }
    private void SendCommand()
    {
         while (notReady)
        {
            commandQueue.Take().SendCommand();
        }
    }
}

24.11.2011 - 11:38 Uhr

Da sonst noch niemand geantwortet hat, ohne mich damit auszukennen:

Vielleicht kannst du das neuste ToolTip jeweils vom ZedGraph trennen.

Andere Möglichkeit wäre eine eigene ToolTip-Klasse zu schreiben und/oder die selber zu Zeichnen.

24.11.2011 - 11:29 Uhr

Kannst du uns noch etwas Code dazuliefern, wie du die INI ausliest?

24.11.2011 - 11:23 Uhr

Hallo Zusammen =)

Ich stehe grade vor einem Problem, wie der Ochs vorm Berg und hoffe hier Erleuchtung zu finden..

Ich muss leider Gottes mit einem externem Program kommunizieren. Das mache ich per Textnachrichtenaustausch via TcpClient. Ich kann Befehle versenden und bekomme jeweils eine entsprechende Antwort (leider mehrdeutig).

Jetzt möchte ich eine Liste mit Artikeln an den Server (das externe Program) übermitteln.

Das würde folgendermaßen funktionieren:

SendLogin() -> LoggedIn-Antwort -> SendArtikelListeEingeben() ->
WaitForArtikel-Antwort -> SendArtikel(artikelQueue.Dequeue()) ->
WaitForArtikel-Antwort -> SendArtikel(artikelQueue.Dequeue()) ->
...
WaitForArtikel-Antwort -> SendArtikel(artikelQueue.Dequeue()) ->
(artikelQueue leer / alle Artikel übermittelt -> springt zu LoggedIn-Antwort)
LoggedIn-Antwort

Natürlich kann ich die Befehle nicht einfach raushaun, sondern muss warten, bis die entsprechende Antwort gekommen ist. Das können auch unterschiedliche Antworten sein.

Ich könnte also das responseEvent abbonieren und dort jeweils den nächsten Befehl absetzten. Den Vorgang würde ich dann mit einem SendLogin() anstoßen.


public void ArtikelÜbermitteln()
{
    SendLogin();
}
void responseEvent()
{
    SendNextMessage();
}

Das erscheint mir aber nicht richtig so.

Also habe ich einen Timer mit ins Spiel gebracht.


public void ArtikelÜbermitteln()
{
    SendLogin();
    timer.Start();
}
void timer_Elapsed(object sender, ElapsedEventArgs e)
{
    timer.Stop();
    if (gotResponse)
    {
        gotResponse = false;
        SendNextMessage();
    }
    timer.Start();
}
void responseEvent()
{
    gotResponse = true;
}

Im SendMessage würde ich dann je nach responseType den entsprechenden Befehl senden.


public void SendNextMessage()
{
    switch (responseType)
    {
        case ResponseType.LoggedIn:
            {
                SendArtikelListeEingeben();
                break;
            }
        case ResponseType.WaitForArtikel:
            {
                SendArtikel(artikelQueue.Dequeue())
                break;
            }
    }
}

Mein Problem, ja das kann ich selber nicht so genau definieren. Ich muss ja nicht nur ArtikelListen übermitteln, sondern auch andere Sachen machen. Zum Beispiel Artikel verändern. Für alle Tätigkeiten habe ich entsprechende Befehlsketten. Da die Antworten mehrdeutig sind, muss ich in SendNextMessage() jeweils unterschiedlich reagieren.


public void SendNextMessage()
{
    switch (responseType)
    {
        case ResponseType.LoggedIn:
            {
                if(taetigkeit == Taetigkeit.ArtikelListeEingeben)
                    SendArtikelListeEingeben();
                else if(taetigkeit == Taetigkeit.ArtikelVerändern)
                    SendVeraendereArtikel();
                break;
            }
        case ResponseType.WaitForArtikel:
            {
                SendArtikel(artikelQueue.Dequeue())
                break;
            }
    }
}

Mir erscheint das alles sehr unsauber. Was passiert, wenn ein Fehler auftritt und eine Befehlskette somit unterbrochen wird. Soll ich pro Befehlskette ein eigenes SendNextMessage und/oder responseEvent benutzen?

Gibt es für so ein Problem irgendwelche Patterns oder sowas?

Ist ganz schön viel geworden 🤔 Also vielen Dank an alle, die sich durchgequält haben.

24.11.2011 - 09:31 Uhr

Ok, das bringt endlich mal Klarheit in die Sache. Bisher war mir nämlich nicht klar, wo dein Problem liegt.

Laut topologie Sortier-blabla musst du dir merken, ob welche Datensätze du schon übersetzt hast und diese von der Übersetzung ausschliessen.
Hier könntest du dir eine Hashtable mit den UIDs der jeweiligen DS machen.

21.11.2011 - 15:09 Uhr

Ich nehme mal an, dass jeder User hat seine eigene Verbindungszeichenfolge kriegt.

21.11.2011 - 14:50 Uhr

Eine einfache Lösung wäre auch, eine zweite Exe, die dein Programm (jeweils die aktuelle Version) vom Netzlaufwerk auf den lokalen Rechner kopiert und dann startet.

21.11.2011 - 12:18 Uhr

Hallo AikenCura,

also du kannst das hier mal durchgehen: [FAQ] Wie finde ich den Einstieg in C#?

Ansonsten lerne ich an konkreten Projekten immer am besten.

Hier gibts ein paar Vorschläge:
[FAQ] C# Projektvorschläge (Anfänger, Schüler, Praktikanten)

Edit:
Um events zu begreifen, könntest du vllt ein kleines Netzwerkfähiges SteinScherePapier schreiben oder so.

15.11.2011 - 14:58 Uhr

Wenn du nur eine kurze Aktion durchführst, sieht man das blau nicht. Wofür brauchst du das überhaupt?

15.11.2011 - 14:45 Uhr

Hallo oli001,

worauf willst du denn hinaus?

Du könntest dann selectAll() aufrufen, wenn du es brauchst und danach wieder deselectieren. Oder du änderst die Farbe blau zur Hintergrundfarbe.

10.11.2011 - 15:20 Uhr

Ich habe versucht, mit ^ und $ auf Zeilenanfang und Zeilenende zu prüfen, bräuchte aber beide Kriterien gleichzeitig, um die Bedingung zu erfüllen.

Und was kam dabei raus?

09.11.2011 - 10:55 Uhr

Das wird so nicht funktionieren. Du hast keine Kontrolle über die Verknüpfung.

Mögliche Lösungen:

  • Du bietest in deinenm Program an, eine Verknüpfung zu erstellen, dann hast du die Kontrolle darüber.

  • Du Startest mit einem VersionSelector (da zeigt die Verknüpfung drauf) und der merkt sich, welche Version verwendet werden soll, oder bietet eine Auswahl.

07.11.2011 - 15:16 Uhr

Ich musste leider auch feststellen, dass die MSDN nicht unbedingt die Wahrheit sagt. Vllt war es mal geplant, die Komponenten mit einzubinden und wurde dann doch nicht gemacht. Wirst also evt. auf Alternativen zugreifen müssen.
Es gibt alternative Controls für WM6 zu kaufen, habe aber leider noch keine Erfahrung mit denen, kann hier also auch keine Empfehlung abgeben.

07.11.2011 - 09:08 Uhr

Was ist denn so schlimm an TN-Paneln (ausser dem kleineren Blickwinkel)?

02.11.2011 - 10:13 Uhr

Ich finde die Idee mit dem Merge gar nicht blöd. Schreib alle 1000 DS in eine tmp-Tabelle und Merge die dann. Sollte auch flott genug sein imho.

01.11.2011 - 16:21 Uhr

Hallo Kalle1970,

Ist dies möglich ?

Ja.

Als kleine Einstiegshilfe: Erstell ein neues Windows-Forms Project, und ziehe eine TextBox und einen Button auf die Form. Doppelklicke auf den Button und kopiere folgenden Code rein:


NaElement xi;
		    NaElement xo;
		    NaServer  s;
		
		    if ( args.Length < 3 ) {
			    Console.WriteLine("Usage : vollist <filername> <username> <passwd> [<volume>]");
                System.Environment.Exit(1);
		    }

            String Server = args[0], user = args[1], pwd = args[2];
		    
            try {
                
                Console.WriteLine("|--------------------------------------------------------|");
                Console.WriteLine("| Program to Demo use of Volume APIs to list Volume info |");
                Console.WriteLine("|--------------------------------------------------------|");
                
			    //Initialize connection to server, and
			    //request version 1.3 of the API set
			    //	
			    s = new NaServer(Server,1,3);
			    s.Style = NaServer.AUTH_STYLE.LOGIN_PASSWORD;
			    s.SetAdminUser(user, pwd);

                //Create Vol list Info ONTAPI API
                xi = new NaElement("volume-list-info");
			    if(args.Length==4){
                    String volume_name = args[3];
				    xi.AddNewChild("volume",volume_name);
			    }

                //Invoke Vol list Info ONTAPI API
		    	xo = s.InvokeElem(xi);
			    //
			    //Get the list of children from element(Here 'xo') and iterate 
			    //through each of the child element to fetch their values
			    //	
                System.Collections.IList volList = xo.GetChildByName("volumes").GetChildren();
                System.Collections.IEnumerator volIter = volList.GetEnumerator();
			    while(volIter.MoveNext()){
				    NaElement volInfo=(NaElement)volIter.Current;
				    Console.WriteLine("---------------------------------");
				    Console.Write("Volume Name\t\t: ");
				    Console.WriteLine(volInfo.GetChildContent("name"));

                                    textbox1.Text = volInfo.GetChildContent("name");

                    Console.Write("Volume State\t\t: ");
				    Console.WriteLine(volInfo.GetChildContent("state"));
                    Console.Write("Disk Count\t\t: ");
				    Console.WriteLine(volInfo.GetChildIntValue("disk-count",-1));
                    Console.Write("Total Files\t\t: ");
				    Console.WriteLine(volInfo.GetChildIntValue("files-total",-1));
                    Console.Write("No of files used\t: ");
				    Console.WriteLine(volInfo.GetChildIntValue("files-used",-1));
                    Console.WriteLine("---------------------------------");
    			}
	    	}
		    catch (Exception e) {
                Console.Error.WriteLine(e.Message);  
		    }

Dann fügst du oben bei den Usings noch das ein:

using NetApp.Manage;

Und rechts im Solution Explorer muss noch eine Referenz eingefügt werden:
Rechte Maustaste auf Verweise, Referenz hinzufügen. Auf Browse(Durchsuchen oder so) und die dll von NetApp raussuchen.

Anonsten empfehle ich dir noch [FAQ] Wie finde ich den Einstieg in C#? durchzuarbeiten.

Gruß, Alf

01.11.2011 - 15:44 Uhr

Ich kenne mich auf dem Gebiet Outlook und Interop leider auch nicht besonders aus. Deshalb die allgemeine Aussage auf Erfahrungen aus meiner Zeit als Administrator basierend. 😁
Ich dachte da eher an Windows-Berechtigungen. Vielleicht arbeitet der Nutzer beispielsweise nicht als Administrator. Habt ihr euer Programm schon als Adminstrator ausgeführt? Hat das Program Lese-/Schreibberechtigung auf den Outlook-Ordner etc.

edit:
Ach übrigens, ne kurze Suche nach der Fehlernummer hat mich zu folgendem Link geführt: http://email.iyogi.com/outlook/outlook-2010-not-indexing.html

Da steht was von wegen Outlook und Scripting-Support. Vllt hilft das weiter.

Gruß, Alf

01.11.2011 - 15:28 Uhr

Wenn etwas bei vielen geht und bei manchen nicht, ist das ein Hinweis darauf, dass es sich um ein Berechtigungs-Problem handeln könnte.

01.11.2011 - 14:28 Uhr

Ich habe mir 2x24 Zöllger gekauft. Samsung SyncMaster 2443BW 2x.

Hallo Coffeebean, bist du mit den Samsung Monitoren zufrieden? Was hast du für Kritikpunkte? Ich will meinen über 10 Jahre alten SyncMaster 900p langsam mal ersetzten. Der läuft übrigens immer noch super, deswegen liebäugel ich auch wieder mit Samsung-Monitoren.

01.11.2011 - 11:00 Uhr

Ich kann dazu nur sagen, dass mir die Fläche zum Arbeiten nie groß genug sein kann.

Beim Spielen könnte eine zu große Fläche nachteilig sein, da man eventuell nicht mehr das komplette Bild erfassen kann.

31.10.2011 - 12:50 Uhr

Zu 2:
Das kannst du über einen Broadcast lösen. D.H eine Nachricht an alle Rechner im LAN und wenn dein TicTacToe läuft, kann das antworten.

28.10.2011 - 17:23 Uhr

@TheBrainiac: Das geht leider nicht, weil er nur zugriff auf den RegexPattern hat.

@Maruu: Nachdem ich dein Problem verstanden habe, ich glaube das ist mit Regex nicht möglich. Du wirst da wohl eine andere Möglichkeit finden müssen.