Laden...

Forenbeiträge von bruncol Ingesamt 19 Beiträge

08.05.2008 - 17:24 Uhr

Arg...das wars.

Danke

bruncol

08.05.2008 - 10:25 Uhr

verwendetes Datenbanksystem: Access

Hierbei verwende ich eine datengebundene Tabelle, und ein mit dem Designer eingefügtes DataGridView.

Ich versuche bei einer Tabelle per Code alle Enträge zu löschen:


  customerDataSet.Addresse.Clear();
  addrTableAdapter.Update(customerDataSet.Addresse);

Leider sind nach einem erneuten fill Aufruf alle Einträge wieder da, also nicht in die Datenbank zurückgeschrieben.

Manuelles zeilenweise löschem im DataGridView geht problemlos.

bruncol

06.04.2008 - 22:38 Uhr

Für eine Anwendung mit mehreren Clients wollte ich die Kommunikation mit dem Server über Remoting realisieren. Ich habe die Kommunikation auch eigentlich schon fertig gehabt, bis mir aufgefallen ist, dass ich eigenlich CAO verwenden muß da jeder Client seine eigenen Daten hat.
Leider habe ich kein CAO Beispiel gefunden, bei dem Clientdaten im GUI-Kontext vom Server übernommen werden. Wie kann der Server z.B. ein Event installieren, daß ihm:

  1. eine Connection durch einen Client
  2. oder Änderung im CAO
    anzeigt?
    Erstellt der Server das Objekt, kann er sich ja auch über einen Hook informieren lassen, aber bei CAO bin ich nicht weitergekommen.

Im Moment erzeugt der Server ein Array von Objekten und jeder Client kennt seinen Index über den er auf seinen Bereich zugreift. Auch wenn die Anzahl der Clients bekannt ist und jeder Client kooperativ ist (nicht in fremden Datenbereichen rumpfuscht), ist das eine zwar einwandfrei funktionierende aber technisch unbefriedigende Krücke.
Leider hat mir der (ansonsten sehr informative) Remotinghelper auch nicht auf die Sprünge geholfen.

26.02.2008 - 11:04 Uhr

Hi,
kann man irgendwo einstellen, dass VS 2008 als Vorgabe für neue Projekte und konvertierte Projekte .Net 2.0 verwendet?

bruncol

21.02.2008 - 16:29 Uhr

Hi, JuyJuka,

*nicht raus rück will* Quellcode kann man im Hinzufügen-Dialog am Rand des Hinzufügen-Buttons ein DropDown-Menü aufrufen und dort "Als Verweis hinzufügen",

Mann ist das versteckt, genau das habe ich gesucht.

schauder Das ist aber echt eine Schei*-Lösung, bringt nur Probleme.

Ich werd's überleben 😉

Danke.

bruncol

21.02.2008 - 14:35 Uhr

Hallo,

ich brauch mal einen Hinweis (oder Link) wie ich in Visual Studio (2008/2005) am besten gemeinsamen Quellcode verwalte.

Ich habe verschiedene Klassen, die in vielen Projekten vorkommen. Wenn ich bei einem neuen Projekt über Hinzufügen/Vorhandenes Element den Quellcode dieser Klasse einbinde, wird die Datei in den Projektordner kopiert. Ich will aber eigentlich keine lokale Kopie, sondern einen zentralen Ordner, auf den alle Projekt e zugreifen. Änderungen (Erweiterungen) die ich während der Bearbeitung eines Projektes mache, kommen dann allen Projekten zugute.

Ich möchte diesen Code nicht in separate DLLs kompiliert haben.

bruncol

30.05.2007 - 15:32 Uhr

Hallo herbivore,

kam mir schon sehr merkwürdig vor, aber man glaubt ja doch erst einmal an eigene Fehler und sucht nach einer unabhängigen Instanz.

Da muss ich mir wohl einen Workaround basteln. 🙁

Danke für den Hinweis.

bruncol

30.05.2007 - 14:30 Uhr

Hallo zusammen,

beim Drehen einer Bitmap, die aus einer Monochrom BMP Datei geladen wurde habe ich bei bestimmten Bildbreiten einen Versatz von bis zu 8 Pixeln und einen schwarzen Streifen von eben dieser Breite. Wurde die Bitmap (z.B. von Paint) im Format 24 Bit Bitmap gespeichert, tritt das Problem nicht auf.

Soweit ich das erkennen konnte tritt das bei Bildbreiten mit Width Modulo 16 > 7 auf.

Ich habe mir z.B. mit Paint eine neue Bitmap mit Attribut Breite 152, Höhe 148 Pixel und Farben=Schwarzweiß erzeugt und mit folgender Routine bearbeitet:


Bitmap SourceImage = new Bitmap("testimg.bmp");         

Bitmap RotatedImage = new Bitmap(SourceImage.Width, SourceImage.Height);

Graphics g = Graphics.FromImage(RotatedImage);
           
g.TranslateTransform(SourceImage.Width, SourceImage.Height);
g.RotateTransform(180);

g.DrawImage(SourceImage, 0,0);

zur Anzeige dann noch :


RotatedImage.Save("rotated.png", ImageFormat.Png);
pictureBox1.Image = RotatedImage;

Mit Bildbreite 151 Pixel ist alles OK.

Habe ich da etwas falsch gemacht?

bruncol

15.10.2006 - 22:57 Uhr

Original von noi76
Unter WinXP ist die Redist-Datei vom Installer eine andere, wie unter Win98.

und nennt sich Instmsia.exe

bruncol

13.10.2006 - 16:20 Uhr

Hallo herbivore,

hatte gehofft, das Rad nicht neu erfinden zu müssen 🙁

bruncol

13.10.2006 - 16:01 Uhr

Hallo herbivore,

leider nein: "Parameter is not valid"

Mit bmp geht es einwandfrei.

Die Klasse ImageFormat hat auch leider nur folgende aufgelistet:bmp
emf
exif
gif
jpeg
png
tiff
wmf

bruncol

13.10.2006 - 15:16 Uhr

Hat jemand eine Routine zur Hand um PCX-Dateien zu lesen?

Mir würde ja schon etwas für monochrome Dateien ausreichen.

bruncol

11.10.2006 - 12:27 Uhr

Falls du nur so ein tool haben möchtest, so empfehle ich dir:

NetSetMan zur Verwaltung von verschiedenen IP-Settings, genial für den IT-Nomaden mit seinem Notebook.

Ansonsten gibt es für den Zugriff auf solche Daten System.Management:

            
ManagementObjectSearcher NetworkInfo = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'TRUE'");
 foreach (ManagementObject mo in MOC)
            {

                Console.WriteLine(mo["Description"].ToString());
                Console.WriteLine(mo["MACAddress"].ToString());
                foreach (string ip in (string[])mo["IPAddress"])
                {
                    Console.Write(ip);
                }
                Console.WriteLine();
                foreach (string isub in (string[])mo["IPSubnet"])
                {
                    Console.Write(isub);
                }
                Console.WriteLine();
}

Die Ermittlung der unbenutzten IP-Adressen kann dir das Betriebssystem leider nicht abnehmen, allenfalls die ARP-Tabelle mag hier Einträge der aktuellen Kommunikationsteilnehmer des Netztes haben. Schweigsame Rechner sind hier allerdings nicht verzeichnet.
Hier hilft nur, das Netz systemmatisch zu pingen und erhaltene Antworten aus der Freiliste zu streichen. Da mancher Host aber ICMP-Request aus Sicherheitsgründen nicht beantworten möchte, geht das manchmal in die Hose.
Um ein Netzwerk in vertretbarer Zeit abzugrasen muss man schon eine große Anzahl von Threads mit einem ping für die möglichen Adressen absetzten und jeweils den Netzwerktimeout abwarten.

Auch hier ein fertiges Tool Namens Angry IP Scanner.

bruncol

11.10.2006 - 11:33 Uhr

Die MAC-Adresse ist eine Hardwarekennung der Netzwerkkarte und auch dort gespeichert. Sie kann prinzipell erstmal (wie blackcoin schon sagt) nicht verändert werden, sondern wird vom Hersteller vorgegeben und in EEPROM gespeichert. Manche neuere Karten erlauben allerdings die Modifikation dieser Kennung weshalb ein MAC-Filter in einem WLAN-Accesspoint nicht unbedingt sicher ist.
Hierzu gibt es vermutlich in der Hacker-Szene geeignete Tools, ich kann mir aber nicht vorstellen, dass die Änderung aus Managed-Code möglich ist.

Abfragen kann man die MAC Adresse allerdings z.B. über

 ManagementClass NwAdapter = new ManagementClass("Win32_NetworkAdapter");

NwAdapter.GetInstances() liefert dann eine Collection in der auch ein Eintrag "MACAddress" steht.

bruncol

10.10.2006 - 20:26 Uhr

Hallo talla,

Hier :
>
gabs übrigens schon mal nen Thread zu der gleichen Fehlermeldung, ob die weitere Diskussion dir hilft musst mal sehen.

hat zumindest gezeigt, dass hier in der Tat verschiedene Vorgehensweisen bzw. Erwartungen des Verhaltens denkbar sind.

(hatte nur nach 'Delegate Vererbung' gesucht und nichts gefunden 🙁 )

bruncol

10.10.2006 - 18:37 Uhr

Hallo Talla;

das kann ich nicht nachvollziehen,
denn


 public class baseAClass
   {
    //    public event TestHandler ahandler;
    }

 public class derivedAClass : baseAClass
    {
        public event TestHandler ahandler;  // herhin verschoben
 
        public bclass bObject;

        public void ExecuteA()
        {
            bObject = new bclass();
            bObject.bhandler += ahandler;  // kein Compilerfehler:             
            bObject.ExecuteB();
        }
    }


funktioniert wie erwartet.

Die Meckerei des Compilers liegt offensichtlich nur darin begründet, dass


      public event TestHandler ahandler;

in der Basisklasse liegt.

Wie soll ich denn Deiner Meinung nach

...die Delegates die an A hängen an B hinzufügen.

bruncol

10.10.2006 - 18:08 Uhr

Bei der Bearbeitung von Events bin ich auf eine Fehlermeldung des Compilers gestossen, die mir nicht ganz einleuchten will:
Ein Objekt (A) soll einen Eventhandler zwischenspeichern, um ihn bei Bedarf an ein anderes Objekt (B) weiterreichen zu können.


public delegate void TestHandler(string str);

public class baseAClass
{
    public event TestHandler ahandler;
}

public class derivedAClass : baseAClass
{
    public bclass bObject;

     public void ExecuteA()
     {
         bObject = new bclass();
         bObject.bhandler += ahandler;  // Compilerfehler:             
         bObject.ExecuteB();
     }
}

Dies verweigert der Compiler, sobald A die Speicherung im Basisobjekt vornehmen soll:
'Das Ereignis "WindowsApplication1.baseAClass.ahandler" kann nur links von += oder -= stehen (es sei denn, es wird innerhalb des Typs "WindowsApplication1.baseAClass" verwendet).'

hier soll das Event erzeugt werden:


public  class bclass
{
    public event TestHandler bhandler;

    public void ExecuteB()
    {
        bhandler("call from b");
    }
}

und irgendwo der Aufruf und ein Handler:


public void Info(string str)
{
   System.Console.WriteLine(str);
}

public void TestObjcet()
{
   derivedAClass aObject;
   aObject = new derivedAClass();
   aObject.ahandler += Info;
   aObject.ExecuteA();
}

Nein, ich suche keine Lösung für das Problem (ich muss das Setzen des Handlers in die Basisklasse verschieben), aber aus welchem Grund
gibt es diese Einschränkung? Die normalen Vererbungsregeln sollten das doch eigentlich zulassen?

bruncol

09.10.2006 - 16:55 Uhr

Hallo Clemer,

hierzu hat MS die Language Packs für das NET Framework (ca. 1,8MB je Sprache) im Angebot.

Ich habe hier neben der englischen Vollinstallation noch deutsch und italienisch installiert.

Suche am besten bei MS nach

NET Framework Language Pack 2.0

bruncol