Laden...
B
budili myCSharp.de - Member
Student Informationstechnik (BA) B-W Dabei seit 26.04.2007 171 Beiträge
Benutzerbeschreibung
Student Informationstechnik (BA)

Forenbeiträge von budili Ingesamt 171 Beiträge

10.11.2008 - 10:24 Uhr

Alles klar ... THX!

10.11.2008 - 10:05 Uhr

Hallo Leute,

ich habe einen etwas älteren Code analysiert und fand dort folgedene
Codestrukturen:

int test |= !!state; // state ist vom Datentyp int

Kann mir jemand kurz erklären was dieser Code
tut. Unklar ist mir vor allem die doppelte Negierung "!!".

Gruß
Budi

04.02.2008 - 10:24 Uhr

Okay dann werde ichs mal versuchen ...
War mir nur nicht sicher ob das Ergebnis das selbe ist ...

Die Schrift etc ist irrelevant, mir gehts nur um die Verteilung der
Buttons bei dem Prog, weil die abhängig von der Auflösung sind.

04.02.2008 - 09:54 Uhr

Hallo Leute,

ist es möglich eine Anwendung in einer kleineren Auflösung zu
starten, ohne die aktuelle dabei zu verändern?

Bsp: aktuell verwendte Auflösung 1280x1024
Nun möchte ich mein Programm in der Auflösung 800x600 starten,
wie realisiere ich das am besten, ohne die aktuell vewendete
Auflösung zu verändern?

Oder genügt es, wenn ich beim Prog Width und Height auf 800 und 600
einstelle? Ist es das selbe Ergebnis?

Gruß
Budi

30.01.2008 - 08:19 Uhr

Ja es bezieht sich auf die Form.
Habe es noch mit Visible versucht, aber das selbe Ergebnis.

29.01.2008 - 13:12 Uhr

Hallo,

hätte nochmal ne Frage zum erstellen von Screenshots,
ich hab das jetzt mal so getestet:


this.Opacity = 0.0;  // Verstecken der Form vor dem Screencopy
            // Screencopy erstellen und in BildschirmBMP ablegen
            Screen Bildschirm = Screen.PrimaryScreen;

            using (Bitmap BildschirmBMP = new Bitmap(Bildschirm.Bounds.Width,        // Ziel-Bitmap
                                                       Bildschirm.Bounds.Height,
                              System.Drawing.Imaging.PixelFormat.Format24bppRgb))
            {
                using (Graphics BildschirmGR = Graphics.FromImage(BildschirmBMP))
                {
                    // Graphics erzeugen
                    BildschirmGR.CopyFromScreen(Bildschirm.Bounds.X, Bildschirm.Bounds.Y, // Abbild erstellen 
                                                0, 0, BildschirmBMP.Size);
                }
                
                // Screencopy verarbeiten
                BildschirmBMP.Save(str_pfadScreen); // Screenshot speichern
            }
            this.Opacity = 1.0;  // Wieder anzeigen der Form nach dem Screencopy

Nur habe ich das Problem, dass die Anwendung, welche den Screenshot erzeugt,
nicht immer unsichtbar wird! Manchmal funktionierts wie es sein soll
und auf manchen Bildern ist diese zu sehen ..

Was mache ich da falsch?

P.S. Kann mir da keiner einen Tipp geben? Oder ist es so okay .. ??

28.01.2008 - 15:21 Uhr

Okay .. habs mal gemacht:


            Image pfadImage = Image.FromFile(@"c:\Test.tif");
            Bitmap skaliereBild = new Bitmap(pfadImage, new Size(1600, 1200));
            Graphics tempGraphic = Graphics.FromImage(skaliereBild);
            tempGraphic.DrawImage(skaliereBild, 0, 0);
            skaliereBild.Save(@"c:\new.tif");

Scheint auch zu funktionieren ... ist es von der Logik so okay?

Gruß
Budi

28.01.2008 - 13:36 Uhr

Okay herbivore, damit habe ich generell kein Problem.
Nur wenn man sich nicht ganz sicher ist, wie man
etwas realisieren möchte/könnte, dann frage ich
lieber vorher nacht...

Hat sich bei meinem Problem wieder bewährt,
wenn ich nur gesucht hätte, dann wäre ich
auf die Idee von "egrath" nicht gestoßen 8)

28.01.2008 - 13:25 Uhr

ja sorry, habe solche Sachen noch nie gemacht,
deshalb die Frage an euch (dich) 😉

28.01.2008 - 13:18 Uhr

Naja gut, ich gehe mal davon aus, dass die Seitenverhältnisse sich
nicht ändern.

Kann mir jemand sagen wie ich das Bild auf die
gewünschte Auflösung skaliere?

Gruß
Budi

28.01.2008 - 13:07 Uhr

Ojee .. das weiß ich gar nicht genau.

Festeht, dass der Client einen Windows-Rechner hat
und eine feste Auflösung.

28.01.2008 - 13:00 Uhr

Hm die Idee ist nicht schlecht, nur weiß ich nicht genau
ob das mit meiner Software klappt.

Folgendes Problem:
Habe hier eine Software die ihre Oberfläche von der
aktuellen Auflösung erzeugt/anpasst.

Nun weiß ich nicht genau ob ich das selbe Ergebnis
bekomme, wenn ich das Bild im nachhinein skaliere...

Aber theoretisch müsste das Ergebnis identisch sein oder?

28.01.2008 - 12:45 Uhr

okay, d.h. man kann keine Auflösung simulieren ...
Nur mit der aktuell verwendeten Auflösung die Screens
schießen.

Stimmt soweit oder?

P.S. Wie kann man die Bildschirmauflösung ändern?

28.01.2008 - 11:52 Uhr

Mit simulieren meine ich, einen Screenshot in einer anderen Auflösung
zu erzeugen, als der aktuell verwendeten.

Bsp: aktuell verwendete Auflösung: 1280 x 1024
Ich möchte nun ein Screenshot haben, von meinem System
in der Auflösung: 1024 x 768 ...

Per hand sowas immer zu machen ist doof, weil die Icons hinterher
oft verschoben werden.

Deshalb bräuchte ich da etwas, das sowas auto. erledigt.
Nur weiß ich nicht, ob es überhaupt möglich ist.

28.01.2008 - 11:42 Uhr

Okay habe ich gemacht:
Screencopy ... Wirklich so einfach ???

Jetzt hätte ich noch eine weitere Frage:
Ist es möglich die Bildschirmauflösung zu simulieren?

Gruß
Tim

28.01.2008 - 11:22 Uhr

Hallo Leute,

ist es ohne weiteres möglich einen Screenshot
des eigenen Systems zu erzeugen und das Bild
als JPEG-Datei zu speichern?

Gruß
Tim

28.07.2007 - 14:35 Uhr

Servus,

und änder mal


richTextBox1.Text+=text;

um in :


richTextBox1.AppendText(text);

Gruß
Budi

27.07.2007 - 10:15 Uhr

Okay, jetzt habe ichs kapiert 😁

27.07.2007 - 09:49 Uhr

achso meinst du das:

Ich soll einfach den Code aus dem Eventhandler in
diese neue Methode kopieren oder wie jetzt ?

Oder steh ich jetzt total aufm Schlauch...

Gruß
Budi

27.07.2007 - 09:31 Uhr

achso ...

Und in dieser Methode soll ich dann das Event für
den Eventhandler DataReceived feuern ??

Habe ich das richtig verstanden?

Gruß
Budi

27.07.2007 - 09:21 Uhr

wie man eine eigene Methode definiert und aufruft, solltest du wissen, oder?

Hoffe ich mal ... aber um es nicht falsch zu machen, habe ich vorsichtshalber
dich gefragt... meinst du jetzt Methode oder Event?

27.07.2007 - 09:01 Uhr

Naja, der Mensch ist von Natur aus faul und versucht sich das Leben
so einfach wie nur möglich zu gestalten 8)

Gruß
Budi

P.S. Soll ich dann an der Stelle selber ein Event feuern ?
Oder haste vllt ein kleines Beispiel für mich ? ;D

27.07.2007 - 08:52 Uhr

Hm ... aber was ist so schlimm daran (falls die Events übereinstimmen) ??

In dem Fall habe ich ja das Problem, das kein Event mehr gefeuert wird ...

Budi

27.07.2007 - 08:43 Uhr

irgendwie klappt das nicht ...
ich mache was falsch ...


private void Restart_DataReceived()
{
            SerialDataReceivedEventArgs ex = System.IO.Ports.SerialDataReceivedEventArgs.Empty;
            port_DataReceived(this, ex);
}

Compiler sagt:
"Fehler 1 Der Typ "System.EventArgs" kann nicht implizit in "System.IO.Ports.SerialDataReceivedEventArgs" konvertiert werden. Es ist bereits eine explizite Konvertierung vorhanden. (Möglicherweise fehlt eine Umwandlung.)"

27.07.2007 - 08:20 Uhr

Moin,

über ein Button_Click(object sender, EventArgs e) Ereignis führe ich
ein paar Funktionen aus.

Nun möchte ich noch das Ereignis der der "SerialPort" Klasse,
DataReceived einmal ausführen.

Habe das mal so versucht:


Port_DataReceived(this, (SerialDataReceivedEventArgs)e);

Kompilieren klappt auch soweit, nur wenn ich hinterher debugge,
bekomme ich an der Stelle eine Ausnahme:

"InvalidCastException"
Das Objekt des Types System.EventArgs kann nicht in Typ
System.IO.SerialDataReceivedEventArgs umgewandelt werden.

Mache ich da was falsch ??

Gruß
Budi

19.07.2007 - 15:56 Uhr

Ja, ist natürlich möglich.
Ich werde nochmal schauen ... (kA wo ... aber ich versuchs 😄)

Gruß
budi

19.07.2007 - 15:02 Uhr

Ja hab ich!

Das Log File und die Ausgabe in der RTB sind identisch.
Was heißen würde, dass die Telegramme falsch reinkommen.

Was aber wiederrum nicht verständlich ist, ist das mit der Scrollbar,
wieso macht er es richtig, bei nicht mitscrollender Scrollbar?
Da tauchen keine Ausreißer auf....

Gruß
Budi

19.07.2007 - 14:18 Uhr

Mahlzeit,

ich habe mal mit geloogt und geschaut. Der Log ist derselbe wie auf
in der RTB...

Nur verstehe ich nicht, wieso es, wenn ich die Funktion "ScrollbarDown"
nicht verwende, einwandfrei funktioniert ....

Gruß
Budi

18.07.2007 - 16:03 Uhr

Okay, Danke erstmal.

Werde das morgen früh tun und mich dann nochmal melden.

Gruß
Budi

18.07.2007 - 15:52 Uhr

@punkdevil: das funktioniert nicht, weil ich ja sonst nach jedem Telegram,
einen Umbruch hätte ...
Von 200 Telegrammen ist ja nur eins nicht korekt, anders wärs umgekehrt.

@herbivore: ich logge das mit in einer Datei, dort sind die selben
Ausgaben wie auch auf der Textbox.

Ich dachte die ganze Zeit, das es irgendwie an dem Socket liegen müsste,
ist aber wie es aussieht nicht der Fall.

Hier mal ein fehlerfreies Bsp:


T 18.07.07 15:46:53 HRx1A : K00##1001\A0              // <LC 1, Port 0> <P1K01>, key pressed, 
T 18.07.07 15:46:53 HTx**+: W00011F                   // TW/PA connection from <LC 0, Port 0> to <LC 0, Port 1>, prio.: 5, 
T 18.07.07 15:46:53 HTx**-: H##??D001    1Tisch       // <LC 1, Port 0> unknown type, state unknown, 
T 18.07.07 15:46:53 HTx**-: H##??d001                 // <LC 1, Port 0> unknown type, state unknown, 
T 18.07.07 15:46:53 HRx1A : k00##1001\A0              // <LC 1, Port 0> <P1K01>, key released, 
T 18.07.07 15:46:53 HTx**+: w00011F                   // TW/PA disconnection from <LC 0, Port 0> to <LC 0, Port 1>, prio.: 5, 
T 18.07.07 15:46:54 HRx1A : K00##1001\A0              // <LC 1, Port 0> <P1K01>, key pressed, 
T 18.07.07 15:46:54 HTx**+: W00011F                   // TW/PA connection from <LC 0, Port 0> to <LC 0, Port 1>, prio.: 5, 
T 18.07.07 15:46:54 HTx**-: H##??D001    1Tisch       // <LC 1, Port 0> unknown type, state unknown, 

Und nun mit Fehler:


T 18.07.07 15:48:52 HRx1A : K00##1008\A0              // <LC 1, Port 0> <P1K08>, key pressed, 
A 18.07.07 15:48:52 DTx   : q##00
T 18.07.07 15:48:52 HTx**-: q##00
T 18.07.07 15:48:52 HRx1A : k00##1008\A0              // <LC 1, Port 0> <P1K08>, key released, 
A 18.07.07 15:48:53 DTx   : q##00T 18.07.07 15:48:54 HTx**-: q##00
T 18.07.07 15:48:54 HRx1A : K00##1008\A0              // <LC 1, Port 0> <P1K08>, key pressed, 
A 18.07.07 15:48:54 DTx   : q##00T 18.07.07 15:48:55 HTx**-: q##00
T 18.07.07 15:48:55 HRx1A : k00##1008\A0              // <LC 1, Port 0> <P1K08>, key released, 

Was das bedeutet ist ja nicht so wichtig.
So jetzt schaut euch mal die beiden Telegramme an:

  • 15:48:53
  • 15:48:54
    eigentlich ist nach : q##00 Ende, d.h. das T 18.07.07 ...
    müsste in die nächste Zeile, was nicht der Fall ist.

Gruß
Budi

18.07.2007 - 15:00 Uhr

Hmm .. also dann weiß ich auch nicht weiter.

@punktdevil: Habe auch schon probiert vor
SetText(InputData) (bzw. vor der Ausgabe) die letzten beiden Zeichen
zu prüfen, ob es ein "\n" ist.

Hat aber nicht weiter geholfen ....

Gruß
Budi

18.07.2007 - 14:05 Uhr

Ja ich füge den Text mit RTB.AppendText(input); ein ....

Debuggen kann ich das Problem auch nicht, da der Fehler willkürlich
auftaucht und ich nie weiß, wann es passiert.

Wenn ich debugge, dann funktionierts richtig.
Der Fehler taucht relativ selten auf (im Schnitt einmal bei ca 200-1000 Telegrammen).

Ich glaube das liegt daran:
Durch SelectionStart = XXX ....
Lege ich den Cursor unten an die aktuelle Position,
kurze Zeit später, kommt ein neues Telegramm,
er schreibt das neue Telegramm nicht in die neue Zeile,
sondern an die position vom Cursor ...
Wäre das möglich?

Code für die Ausgabe:


delegate void SetTextCallback(string text);

private void SetText(string text)
        {
            if (this.RTB.InvokeRequired)
            {
                SetTextCallback d = new SetTextCallback(SetText);
                this.Invoke(d, new object[] { text });
            }
            else
            {
                this.AusgaberichTextBox.AppendText(text);
                ScrollbarDown();
            }
        }

private void ScrollbarDown()
        {
            this.AusgaberichTextBox.SelectionStart = AusgaberichTextBox.Text.Length;
            this.AusgaberichTextBox.ScrollToCaret();
        }

private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            try
            {
                InputData = port.ReadLine();
            }
            catch (Exception)
            {

                InputData = String.Empty;
            }
            
            if(!String.IsNullOrEmpty(InputData))
                    SetText(InputData);
       }

Das ganze läuft noch nebenbei über ein Socket, also nachdem ich
es von der Schnittstelle empfangen habe, sende ich das über
ein Socket an ein anderes Prog, das Prog verarbeitet es und
schickt es mir wieder zurück.

Am Socket sollte es eigentlich nicht liegen, wie schon oben
erwähnt, taucht das Problem nur beim Scrollen auf ...

Weiß da jemand weiter ??

Gruß
Budi

18.07.2007 - 12:34 Uhr

Hm ... mach ich mal.

Ich habs jetzt einfach mal mit Scrollen und einmal
ohne Scrollen getestet.

Und die Ausgaben sind nur dann fehlerhaft, wenn ich scrolle ...

Gruß
Budi

18.07.2007 - 12:11 Uhr

Moin Leute,

ich habe eine RTB in die ich Daten von der seriellen Schnittstelle einlese.
Die Daten von der Schnittstelle sprudeln permanent ein,
das heißt mehrere Telegramme kommen pro Sekunde rein.
Es findet also ne Menge traffic statt.

Dabei scrolle ich immer an die aktuelle Position:


RTB.SelectionStart = RTB.Text.Length;
ScrollToCaret();

Das scrollen klappt auch soweit ...

Nur wird der neue Input beim scrollen immer wieder falsch ausgegeben,
dieses Problem tritt nicht immer auf, nur ab und zu beim Scrollen.

Ich nehme an das liegt an SelectionStart ...
Wenn ich das Scrollen weg lasse, dann bekomme ich die richtige Ausgabe.

Setzt er beim SelectionStart den Cursor an die Position XX oder wie siehts aus?
Den der neu ankommende Text wird halt ab und zu ohne Zeilenumbruch
eingefügt, und das darf nicht passieren.

Gruß
Budi

17.07.2007 - 07:34 Uhr

Nee die beiden Prozesse laufen unabhängig voneinander und
nicht zur selben Zeit, also immer nur einer ...

Aber es könnten sich natürlich 2 andere Threads irgendwie blockieren...
ich weiß es auch nicht, aber mit der obigen Lösunge klappts immerhin 8)

16.07.2007 - 13:29 Uhr

also ich hab es nun mal so gelöst:


if (port.BytesToRead > 0)
{
           do
           {
                port_DataReceived(this, (SerialDataReceivedEventArgs)e);
           }
           while (port.BytesToRead > 0);

           port.Close();
}

Ich verarbeite die Daten solange, bis der Puffer leer ist.
So stürzt er mir wenigstens net ab ...

16.07.2007 - 13:13 Uhr

ja bei dem 2ten prozess da schließt er es auch wenn Daten
noch fließen.

Beim dem 1ten mache ich es eigentlich genauso ... (nur klappts nicht)

Wenn ich port.Close() ausführe, dann wird das Ereignis port_DataReceived
nicht mehr ausgeführt oder ?

16.07.2007 - 11:48 Uhr

Morgen,

in meiner Anwendung habe ich ein Problem beim beenden bzw.
schließen von einer seriellen Verbindung (btw ich nehme an,
das es daran liegt)

Ich habe zwei verschiedene Prozesse, die daten von der seriellen
Schnittstelle empfangen.
Das außergewöhnliche ist nun, beim Beenden von einem prozess
klappt alles, aber bei dem 2ten Prozess hängt sie die App einfach auf ...

Ich bekomme keine Exception etc.
Beide Prozesse greifen auf die selben Daten bzw. Schnittstelle zu,
natürlich nicht zur selben Zeit, sondern nacheinander (je nachdem
welcher Prozess gestartet wird)

Ich verstehe jetzt nicht, wieso es bei dem einen klappt und
beim 2ten abstürzt ...

Und der 2te Proz (bei dem sich die App aufhängt) funktioniert auch
meistens ... Nur wenn ich die Verbindung schließe, während noch
Daten empfangen werden, dann hängt er sich auf.

Kann ich da vllt den port gleich deaktiveren oder sowas in der Art ?

Kann da jemand weiter helfen?

P.S. ich nehme mal an er bleibt bei


port.Close();

hängen, obwohl dieser befehl in einem try-catch Block definiert ist

Ich habe jetzt mal versucht, einfach vor der Close Funktion und
dahinter eine MessageBox platziert.
D.h. er gibt mir vor dem schließen und nach dem schließen
ne meldung aus.

So funktionierts nun und er stürzt net ab,
beim Beenden der Verbindung, erscheint die erste MessageBox,
und obwohl ich schon beendet habe, postet er mir noch den
Rest der empfangenen Daten, danach schließt er ordnungsgemäß.

D.h. ich muss nur solange warten, bis der Puffer leer ist oder?
Aber woher weiß ich das?

13.07.2007 - 18:04 Uhr

Servus,

also wenn ich etwas zu Hause entwickel (nur so zum Spaß),
dann teste ich nur ganz grob.

Wenn ich aber etwas in der Firma mache, dann teste ich meine
Programme sehr umfangreich!

Wenn die SW an den Kunden bzw. an unsere Leute rausgeht,
will ich auch, dass sie (fast bzw. so gut wie) fehlerfrei ist ...
Gibt immer ziemlich viel Streß, wenn der Kunde sich hinterher
beschwert, das etwas nicht so funktioniert, wie es soll.

Gruß
Budi

09.07.2007 - 10:39 Uhr

Hier mal ein wenig Code:



private void ComboBox_SelectionChangeCommitted(object sender, EventArgs e)
{       
            ComKonfig Params = new ComKonfig();

            //Daten aus Klasse holen
            BaudrateParam = Params.Baudrate;
            DatenBitsParam = Params.DatenBits;
            ParitatParam = Params.Paritat;
            FlussSteuerungParam = Params.FlussSteuerung;
            StopptBitsParam = Params.StoppBits;

            if (!port.IsOpen)
            {
                try
                {
                    port.PortName = ComPortcomboBox.SelectedItem.ToString();
                    //ComConfigbutton.Enabled = true;
                }
                catch
                {
                    MB.Failure("Please select a COM-Port!");

                }
            }

            else
            {
                port.Close();
                port.PortName = ComPortcomboBox.SelectedItem.ToString();
            }
}


09.07.2007 - 10:21 Uhr

Moin Leute,

ich habe ein Programm geschrieben, das relativ viele
Controls etc. enthält (darunter auch mehrere Comboboxen).

Es funktioniert auch alles einwandfrei.
Wenn ich aber mein Prog über VNC bedienen will,
bekomme ich ne Ausnahme, wenn ich in der
ComboBox etwas selektiere.

Es erscheint eine Exception:
"InvalidArgument = value ...... is not valid for SelectedIndex"

Iregndwie kann ich nichts aus der ComboBox auswählen.

Hab es schon mit UltraVNC, TightVNC und RealVNC versucht.
Remotedektopverbindung klappt, ist aber etwas lahm.

Gruß
Budi

06.07.2007 - 07:46 Uhr

Servus,

ich hab mal so gemacht:


sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress host = IPAddress.Parse("127.0.0.1"); //Localhost IP
IPEndPoint hostep = new IPEndPoint(host, Convert.ToInt32(data));//Host und Port
            

try
{
        sock.Connect(hostep);
}
catch
{
        sock = null;
        //MB.Info("Error Socket: Port wird verwendet!");
}

if (sock != null)
{
        if (sock.Connected)
        {  // Port frei
                 .....
        }

Wenn ein Port schon verwendet wird, dann sollte er nach
"sock.Connect(hostep)" in den try Bock springen,
damit würde ich wissen, das das Socket schon belegt ist.

Andernfalls läuft er durch und connected etc.

Nur funktioniert diese Methode bei mir irgendwie nicht ...
Auch wenn das Port schon verwendet wird,
läuft er ganz durch ...

Ich starte diesen Socket in einem eigenen Thread,
könnte das die Ursache sein?

Ich weiß langsam nimma weiter, der zweite Prozess
mit dem ich das Socket aufbaue, merkt sofort das
die Adresse bzw. der Port verwendet wird,
aber bei mir passiert einfach nichts ...

Gruß
Budi

05.07.2007 - 16:00 Uhr

Ich würde die Datei noch verschlüsseln, anders bennen und
vllt verstecken ...

Gruß
Budi

05.07.2007 - 10:34 Uhr

okay, danke.

Habs damit gelöst.

05.07.2007 - 09:57 Uhr

Hm ... ja das habe ich angenommen.
Habe es nun geändert, aber es ist immer noch so wie vorher.

Gruß
Budi

05.07.2007 - 09:48 Uhr

Ja tue ich ...

Was ist der Unterschied ?

05.07.2007 - 09:40 Uhr

Moin,

ich hätte mal ne Frage ... 8)

Ich habe meine Hauptanwendung die startet aus z.B. c:\main
Aus der hauptanwendung heraus starte ich noch eine
Consolenanwendung, die liegt in c:\main\tools ...

Die Ausgaben die von der Consolenanwendung erzeugt werden,
werden nun aber in c:\main geschrieben und nicht
wie gewohnt in c:\main\tool, wo ja die Consolenanwendung
selber liegt und ausgeführt wird.

Kann mir jemand sagen woran das liegt?

Gruß
Budi

03.07.2007 - 12:58 Uhr

okay ...

kennt ihr den Fehlercode den ich vergleichen könnte ?

03.07.2007 - 12:07 Uhr

ja nur ob ...

mit dem try Block hatte ich es auch schon,
ist aber sehr unschön.

Per Code feststellen.

Gibts da nix anderes ?

03.07.2007 - 11:01 Uhr

Moin,

kann man herausfinden, ob ein anderer Prozess
gerade eine Datei verwendet ?

Gruß
Budi