UAC?
ich hatte letztens schon jemanden erklärt - es kann durch aus auch effektiver sein wenn man alles von Grund auf neu Programmiert
Moin,
// C++
Car mycar = new Car(); // Variante 1
Car mycar(); // Variante 2
erste Variante erzeugt das Objekt auf dem Heap - letzte auf Stack ... der Stack wird beim verlassen der Methode aufgeräumt, somit auch das Objekt (Destruktor) ... soviel zu C++
Da Pointer in C# aber nicht mehr vorhanden sind,
Pointer gibt es (mehr oder weniger) immer noch in C# ... nennt sich jetzt Referenzen und der GC darf sie nach Bedarf im Speicher umherschieben ... über die Referenzen merken sich nur die Adresse im Speicher der vom GC veraltet wird ... es ist also ein Adresse wie beim Pointer ... Du kannst nur kein Schindluder wie bei C++ (oder andere Sprachen mit Pointern) treiben
frage ich mich, wofür wir das in C# überhaupt noch brauchen!?
aus dem gleichen Grund wie bei C++ ... damit die Objekte auf dem Heap landen und nicht im Stack ... der Stack ist meistens begrenzt (vgl. StackOverflowException) ... Arbeitsspeicher zwar auch (physikalisch), aber davon hast Du um einiges mehr
hand, mogel
btw. bitte ggf. um Korrekturen
wieviel Spieler erartest Du? ... ggf. solltest Du von TCP auf UDP wechseln -> TCP Verbindung max Anzahl
bin im moment beim umsteigen von Java auf c# und hab mich dort schon öfters mit netzwerkprogrammierung beschäftigt, allerdings ist das in c# ein tick komplizierter ^^.
wenn du java.nio verwendest hast, dann kann ich es theoretisch nachvollziehen ... ansonsten ist es kein Unterschied zu C#
byte[] bname = new byte[4096];
work.meldung(false, "Warte auf name");
//int bytesRead1 = clientStream.Read(bname, 0, 4096);
clients.Receive(bname);
work.meldung(false, "name empfangen");
byte[] bpasswort = new byte[4096];
work.meldung(false, "warte auf pw");
//int bytesRead2 = clientStream.Read(bpasswort, 0, 4096);
clients.Receive(bpasswort);
work.meldung(false, "pw empfangen");
das ist Grundsätzlich nicht falsch - ist aber auch nicht richtig
Nun zur sache, das was auskommentiert habe bei dem server ist eine andere methode die ich mal in nen tutorial gesehen hab, dort bin ich aber bis zum gleichen punkt gekommen.
Verbindung baut es erfolgreich auf und der nick name wird übertragen.
da ist bestimmt alles auf einmal angekommen und das hast Du beim Einlesen des namens geschluckt ... anschließend wartest Du auf das Passwort - welches aber schon beim Namen mit gelesen wurde ... daher bleibt er hängen
daher ist folgender Vorschlag korrekt
ich würde vorschlagen, dass du am Anfang die Länge der zu sendenden Daten schickst.
nicht vorschlagen sondern machen ... es heißt nicht umsonst NetworkStream ... das ist ein Strom aus dem kontinuierlich Daten "fließen" ... gleiche wie beim Wasserhahn - um da einen Liter ab zumessen nimmt man auch einen Messbecher ... was eben die Längenangabe ist
Moin,
wieso MainMenu wenn Du es zu bestehen Menus hinzufügen willst? ... afaik bringt Dir ein MainMenu nichts ... Du kannst aber ein normales MenuItem (?) beerben ... im Konstruktor erstellst Du dann entsprechend die anderen Menupunkte
hand, mogel
überprüfe mal die Datenrate zwischen WLAN und CNC-Maschine ... wenn die passt auch noch Start/Stop-Bits, Parität und Anzahl der Bits die übertragen werden sollen ... die Flußkontrolle ist auch noch eine Stolperfalle ... kryptische Zeichen entstehen auf der RS232 verbindung wenn da was nicht stimmt ... wenn die Maschine an einen anderen Port sendet, dann empfangt ihr nur was wenn ihr einen Socket aufmacht
ggf. mal den WLAN Adapter mit einem anderem tauschen ... .wennd er Fehler mitwandert, dann ist der WLAN Adapter defekt
Es wird alle 50ms ein Datagram gesendet, ich gehe davon aus, dass dies auch per TCP zu lösen gewesen wäre.
wie groß ist ein Datagram? Wird die Länge des Datagram mitgesendet?
Im Endeffekt haben die Kollegen in dieser Anwendung ja auch TCP im UDP nachgebaut.
wozu dieser Umweg 🤔
Aber was ist mir der Reihenfolge der Pakete?
darum kümmert sich das Netzwerk
Wenn TCP verwendet worden wäre, könnte es sein, das ein Paket viel später ankommt? Also nicht in der richtigen Reihenfolge?
nein - das Netzwerk sortiert die Pakete wieder in die richtige Reihenfolge ... das kann Dir eher bei UDP passieren ... das aber auch nur beim Transport durch das Internet (bzw. sehr komplexe Netzwerke)
hand, mogel
btw. werden Pakete fragmentiert, dann "baut" das Netzwerk die wieder aus den einzelnen Fragmenten zusammen ... wenn die ursprünglichen Pakete aus den Fragmenten nicht wieder hergestellt werden können, dann wird das Paket verworfen ... dann greifen die TCP bzw. UDP Verhaltensweisen
Ich habe das Problem bei einer Anwendung, dass jenes aber zu oft vorkommt. Obwohl die Anwendungen über UDP nur lokal Daten austauschen. Wenn es nur 5 Pakete am Tag wären ok. Aber ich habe ca. 100 Pakete am Tag die verloren gehen.
Auf einem anderen System wo die Software auf einem PC läuft und mit einem anderen PC über Ethernet kommuniziert habe ich Tagelang keinen Paketverlust!
könnte ja sein das die Qualität der Chips auf dem anderem System generell besser ist und dadurch die Pakete nicht verloren gehen .......
Bzw. habe ich keinen Paketverlust laut Wireshark, es kommt nur nicht in der .NET Anwendung mit UDPClient Receive an...
......... vieleicht sind aber auch die Treiber einfach Mist ... da spielen soviele verschiedene faktoren eine Rolle das es schwer zu sagen ist ... im übrigen ist der Paketverlust von TCP und UDP gleich (imo) ... nur bei TCP kümmert sich das Protokoll darum das die Paket erneut angefordert werden - deshalb fällt das verschwundene Paket nicht auf
Oder wie sind Deine Erfahrungen?
vorwiegend TCP verwenden
und das gesamte Verhalten von meinem Fenster veränder ich, indem ich es als Child vom Desktop setze?!
jain ... das Verhalten ist gleich - es fügt sich seiner Z-Order Sortierung ... wenn Du mehrere Fenster auf TopMost setzt, verhalten Die sich untereinander auch wie immer - bleiben aber immer vor allen anderen die nicht TopMost gesetzt sind ... Du hast quasi 3 Ebenen wo sich die Fenster mit der Z-Order anordnen ... TopMost / Normal oder "immer hinten" ... letzteres nur wenn Du das Fenster als Kind vom Desktop-Fenster festnagelst
In welche Funktion muss ich das machen...im Standardkonstruktor, oder in der Load-Funktion - oder ist das egal?
wenn das Handle des Fensters erstellt wurde
hand, mogel
Moin,
bei UDP? ... ja - indem Du TCP nachbaust ... sonst nein - ist ja "Sinn" des Protokolls
hand, mogel
Moin,
mit folgender Funktion
private void Form1_Activated(object sender, EventArgs e)
{
SetWindowPos(this.Handle, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_SHOWWINDOW);
}
schiebst Du Dein Fenster immer nach hinten ... es kann aber passieren das das Fenster kurz vorne ist ... Du manipulierst nur die Z-Order ... nicht das eigentliche Verhalten (also immer hinten bleiben)
hand, mogel
Moin,
Desktop holen
GetDesktopWindow Function
eigenes Fenster als Kind des Desktops setzen
SetParent Function
hand, mogel
es gibt einen Ordner der für alle Benutzer schreibbar ist ... der ist genau für Dein Problem ... dort kannst Du auch eine Config speichern
Moin,
Sockets?
etwas Quellcode könnte zur Lösung beitragen
Moin,
der gepostete Code ist unwichtig ... Dein Flash-Client hat die Verbindung geschlossen
hand, mogel
subdomain.domain.com
einfach mal anpingen ... wenn der Rechner antwortet, dann liegt der Fehler im IIS ... ansonsten kann die Subdomain nicht aufgelöst werden und muss ins Zonenfile entsprechend eingetragen werden ... bei Strato werden per Default Wildcards verwendet - Hetzner macht das nicht ... hat damals das gleiche Problem als ich von Strato auf Hetzner gewechselt bin
hand, mogel
evt. http://www.activevb.de/tipps/vb6tipps/tipp0489.html ... ist aber VB5/6 - müsste also noch nach C# übersetzt werden ... zeigt aber zumindest den Weg
hand, mogel
Ziehen .............
das Jabber Protokoll schwirrt auch im Internet rum ... mach den Client aus, dann kannst Du auf dem entsprechenden Port einen Listener öffnen und mit dem Server diskutieren
hand, mogel
Moin,
Einen zweiten Listener kann ich ja nicht installieren.
das wird Dir in keiner Spraache gelingen ... ein Listener pro Port
Außerdem ist dann eine Funktion in Wireshark: Follow TCP-Straem. in der sind die Daten, die ich bräuchte
Follow TCP-Stream bringt für die Fragestellung erstmal nichts ... wenn Du Port 80 - also HTTP - verfolgen willst ... wozu dieser Aufwand ... das Protokoll ist im Internet öffentlich
was also willst Du machen?
HKann ich dies im selben Projekt machen?
nein - ist ja ein C#-Projekt ... damit wird auch der C# Compiler aufgerufen ... Du kannst aber in der Projektmappe eine DLL erstellen - auf Basis von VB.Net ... im C# Projekt verweist Du dann auf die VB.Net DLL
ich weis allerdings nicht ob mal mittels NMake im selben Projekt ein *.obj Datei aus der VB.Net-Klasse erstellen kann und diese dann mit den C# *.obj-Datei zu einer Assembly zu knebeln
hand, mogel
Nachdem ich die jeweilige Form in den Vordergrund bringe kommt erstmal Application.DoEvents() und danach wird die jeweils andere auf Visible=false gesetzt.
Application.DoEvents ist nur eine Bitte an das Betriebssystem den Message-Loop abzuarbeiten ... was es aber nicht machen muss
In etwa 9 von 10 Formwechseln klappt das auch. Ärgerlich ist das jedoch trotzdem.
dann mach es richtig ... starte einen Thread und Bring erst das Fenster nach vorne, mach eine Pause von einer Sekunde (oder so) und verstecke anschließend das andere
alternativ kannst Du auch mit einer Form arbeiten und UserControls
hand, mogel
Mir fehlt da noch die Berücksichtigung der Tatsache dass die Daten in mehreren Paketen hintereinander eintrudeln und die dann erst zusammengesetzt werden müssen.
darum kümmert sich das Netzwerk selber - d.h. im NetworkStream kommen alle Pakete in der richtigen Reihenfolge an ... außer UDP
Außerdem hast du bei UDP keine Garantie der richtigen Reihenfolge.
die Pakete werden beim Fragmentieren durchnummeriert und in der entsprechenden Sortierung wieder zusammengesetzt - das macht das Netzwerk ... allerdings dürfen bei UDP Fragmente fehlen - was dann das ganze Paket verwirft
Könnts daran liegen? Das würde auch erklären dass es im lokalen Netzt funktioniert, weil das schneller ist als das Interet und da werden die Daten vielleicht auch nicht ganz so zerrissen.
nein, die MTU ist im Internet wie im LAN gleich - 1500 Bytes ... http://de.wikipedia.org/wiki/Maximum_Transmission_Unit ... somit ist auch die Fragmentierung gleich
wenn es selbst mit TCP Probleme gibt, dann stimmt was beim Übertragen bzw. Empfangen nicht ... ich vermute da werden Exceptions geschluckt
hand, mogel
Was mich jetzt daran stört ist, das ich quasi die komplette google Siet anzeige. Ich brauch nur die reine karte.
Gibt es dafür einen anderen Link oder eine andere Vorgehensweise, damit ich das besser nutzen kann ?
Google stell für so etwas eine API bereit - musst mal da schauen
hand, mogel
ja - TCP Protkoll in UDP nachbauen ... macht aber keinen Sinn
Nur so nebenbei,
List<ListNode> LinkedList = new List<ListNode>();
das ist nicht ganz korrekt und ergibt auch keinen Sinn - da die Verkettung für ListNode in List erfolgt und somit der Member Next sinnlos ist
ListNode First;
// dazu noch
public AddListNode(ListNode ln)
{
}
public DelListNode(ListNode ln)
{
}
// ... blabla
hand, mogel
Ja ich meine die SSID vom WLAN.
das LAN ließe sich evt. über die MAC-Adresse vom Gateway herausbekommen
Moin,
reader.ReadLine()
böses Foul ... ReadLine ist zum Lesen für Text-Dateien ... Du schickst aber komprimierte Daten - die musst Du auch als Byte-Array behandeln
hand, mogel
Moin,
schau mal bitte in den Einstellungen auf dem Router nach ... die ganzen Netzwerkdinge werden dem Client vom Server zugewiesen ... ansonsten hat Dein Problem erstmal weniger mit .NET am Hut
hand, mogel
habe mit dem Hersteller gesprochen, jedoch haben die keine Infos darüber und bieten nur deren Software als Lösung an.
ich übersetze das mal ... gib uns Dein Geld ... die Antwort hatte ich letztens auch (anderer Hersteller) ... wollten die 1.300€ für eine Lizenz haben damit ich ein eigens Programm schreiben kann was besser auf den Kunden zugeschnitten ist
hand, mogel
PS: früher wurde gearbeitet ... heute wird alles lizensiert und Hand aufgehalten
Moin,
[Obsolete("blablub")]
public void foo()
{
throw new ApplicationException("blafasel");
}
public void bar()
{
foo();
}
und den Rest macht NUnit (fallst Du es verwendest) ... ansonsten kommt die entsprechende Exception erst zur Laufzeit
hand, mogel
WCF Discovery Services
das ist nur die Verlagerung von reinem UDP auf Vorhandenes
UDP & Broadcast dürfte was für Dich sein
Ich gebs auf! Scheint keine Lösung dafür zu geben ...
doch - Windows API ... das Ganze wird einfacher wenn Du Dir dann eine entsprechende DLL mittels C++/CLI erstellst
Könnt ihr mir einen Hinweis geben, wie ich jetzt in c# die Verbindung zum Oszi herstelle?
Wie bereits erwähnt muss ich dazu "VISA calls" machen. Könnt ihr mir sagen, wie ich calls mache?
fragt doch bitte endlich mal den Hersteller nach einer API und lies die ... die Wahrscheinlichkeit das hier jemand schon mal mit Deinem Oszi gearbeitet hat und Dir helfen kann ist eher (bis sehr) gering
Falls ich einen falschen Ansatz habe, bitte ich um Tipps.
wirf mal bitte einen Blick in die API des Gerätes ... ich vermute sehr stark das das Gerät kein RPC kann
Ich würde mal sagen, klassische Endlosschleife (StackOverflowException) wegen "this.Controls" -)
Du meinst wohl "base.Controls".
funktioniert leider mit beiden nicht ... aber mit this hätte ich auch selber drauf kommen können 8)
Moin,
ich habe eine Panel beerbt und um einige kleine Dinge (Grafiken + weitere Panel) erweitert ... nun möchte ich das Panel somit als Ausgang für weitere GUI-Elemente verwenden ... sprich ich will Buttons etc. auf das Panel (bzw. dafür vorgesehen Bereich) ziehen ... dummerweise landet alles auf dem falschen Panel - dem Beerbten
also dachte ich mir ... überschreibe ich mal Controls
public new ControlCollection Controls
{
get { if (init) return pnlBackground.Controls; else return this.Controls; }
}
bringt allerdings SharpDevelop zum Abstürzen ... wie mache ich das Ganze richtig?
hand, mogel
PS: mir fehlen im Moment die Suchworte - gebe mich quasi damit auch zufrieden
die sich aus der Metrik der Schnittstellen errechnet und dann eine Wertigkeit für 255.255.255.255 besitzt.
hä?? ... kannst Du mir das mal bitte etwas genauer erläutern
danke, mogel
Du kannst irgendwo die Maximal Höhe und Maximale breite festlegen - da müssen einfach nur die Werte bei Breite übereinstimmen ... rest mach .NET
Sofern [...] das Laufwerk nicht benannt ist, ist das VolumeLabel einfach leer.
könnte Sinn machen
nein, es liegt nicht am HTTP/1.1. Wie gesagt kann ich bei dem erten oder zweiten Request auch eine beliebige andere URL eintragen.
gut - ich gebe mich geschlagen ... ich hatte bisher immer nur eine URL aufgerufen und das gleiche "Phänomen" beobachtet ... würde jetzt allerdings auf das Betriebssystem tippen - das das solange braucht den Socket einzurichten
Host: www.google.de - KeepAlive: true
258 - 'http://www.google.de/search?q=foo
79 - 'http://www.google.de/search?q=bar
82 - 'http://www.google.de/search?q=something
Host: www.google.de - KeepAlive: false
94 - 'http://www.google.de/search?q=foo
80 - 'http://www.google.de/search?q=bar
80 - 'http://www.google.de/search?q=something
Host: www.bing.de - KeepAlive: true
86 - 'http://www.bing.de/search?q=foo
94 - 'http://www.bing.de/search?q=bar
106 - 'http://www.bing.de/search?q=something
Host: www.bing.de - KeepAlive: false
78 - 'http://www.bing.de/search?q=foo
81 - 'http://www.bing.de/search?q=bar
68 - 'http://www.bing.de/search?q=something
Host: de.wikipedia.org - KeepAlive: true
78 - 'http://de.wikipedia.org/wiki/Wikipedia:Hauptseite
79 - 'http://de.wikipedia.org/wiki/Iso-Polyphonie
84 - 'http://de.wikipedia.org/wiki/We_Insist!_Freedom_Now_Suite
Host: de.wikipedia.org - KeepAlive: false
78 - 'http://de.wikipedia.org/wiki/Wikipedia:Hauptseite
79 - 'http://de.wikipedia.org/wiki/Iso-Polyphonie
80 - 'http://de.wikipedia.org/wiki/We_Insist!_Freedom_Now_Suite
static class Program
{
/// <summary>
/// Der Haupteinstiegspunkt für die Anwendung.
/// </summary>
[STAThread]
static void Main()
{
List<MyHost> hosts = new List<MyHost>();
hosts.Add(new MyHost("www.google.de", new String[] { "search?q=foo", "search?q=bar", "search?q=something" }));
hosts.Add(new MyHost("www.bing.de", new String[] { "search?q=foo", "search?q=bar", "search?q=something" }));
hosts.Add(new MyHost("de.wikipedia.org", new String[] { "wiki/Wikipedia:Hauptseite", "wiki/Iso-Polyphonie", "wiki/We_Insist!_Freedom_Now_Suite" }));
foreach (MyHost host in hosts)
{
getHost(host, true);
getHost(host, false);
Console.WriteLine();
}
}
static void getHost(MyHost host, Boolean keepalive)
{
Console.WriteLine("Host: {0} - KeepAlive: {1}", host.Host, (keepalive?"true":"false"));
foreach (String path in host.Path)
{
String url = "http://" + host.Host + "/" + path;
int zeit = getData(url, true);
Console.WriteLine("\t{0} - 'http://{1}/{2}", zeit, host.Host, path);
}
}
static int getData(String url, Boolean keepalive)
{
String temp = Path.GetTempFileName();
Stopwatch sw = new Stopwatch();
sw.Start();
HttpWebRequest webRequest = (HttpWebRequest) WebRequest.Create("http://www.google.de");
webRequest.KeepAlive = keepalive;
WebResponse webResponse = webRequest.GetResponse();
sw.Stop();
webResponse.Close();
return (int) sw.ElapsedMilliseconds;
}
private class MyHost
{
public String Host;
public String[] Path;
public MyHost(String host, String[] path)
{
Host = host;
Path = path;
}
}
}
Moin,
bevor ihr weitere Tests macht die nichts bringen
beim ersten Aufruf wird die TCP-Verbindung hergestellt -> Stichwort Handshake ... der kann schon mal dauern ... bei weiteren Verbindungsanfragen ist es durchaus möglich das noch der Header "Keep Alive" Gültigkeit hat -> Stichwort HTTP/1.1 ... damit wird die alte Verbindung weiter genutzt - der Handshake fällt also weg, es geht schneller
quasi - das Verhalten ist normal
hand, mogel
PS: ich hatte natürlich auch schon Webserver (Embedded Device) welches angeblich HTTP/1.1 auslieferte - aber die Verbindung sofort geschlossen hatte
So,
es liegt wirklich nur an UAC ... das Problem ist via cmd.exe nachzuvollziehen ... wenn man es als Administrator ausführt sind auch da die Netzlaufwerke weg ... UAC kopiert die Netzlaufwerke nicht mit in die neue Session
leider funktioniert das nicht bei mir unter Win7
hand, mogel
Nachtrag: funktioniert doch - nur einfach Rechner neu starten
*hass*, mein Unmut über UAC wächst mit jedem Tag den ich den Blödsinn nutzen muss,
ich habe mir jetzt nochmal ein kleines Programm geschrieben - nur ausgabe der Laufwerke
wenn ich kein Manifest drinnen habe, super ... sowie ich Manifest einbaue (benötige diverse Rechte) funktioniert es nicht mehr ... keine Zugriffsrechte auf Netzlaufwerke
kann ich das Problem entsprechend via UAC lösen??
das scheint aber dann speziell bei dir nur so zu sein, denn es gibt etliche Beispiele im Netz, bei denen auch die gemappten Netzwerklaufwerke angezeigt werden, s.
anscheinend bin ich der einzige ... unter 1.1 uwsste ich das es nicht ging - hatte auch irgendwie im Kopf das die regel mit 2.0 wieder gestrichen wurde ... jedenfalls knallts
folgendes liefert mir eine DirdctoryNotFoundException - das Laufwerk ist aber da
Try
IO.Directory.CreateDirectory(IO.Path.Combine(drive, verzeichnis))
Catch ex As Exception
mylogger.err(ex)
End Try
Und selbst die einfache DriveInfo-Schleife liefert bei mir (WinXP) auch die Netzwerk-Laufwerke.
genau wegen XP versuche ich das Problem ja zu lösen ... selber habe ich Win7 64 ... das Programm "läuft" produktiv auf WinXP 32 - mit einem Netzlaufwerk ... beide Rechner finden die Netzlaufwerke nicht X(
super ...
Sub TestDriveSpace()
'http://msdn.microsoft.com/en-us/library/aa394592(VS.85).aspx
Dim objWMI As Object
Dim colDisks As Object
Dim objDisk As Object
Dim strDriveType As String = "unsued"
objWMI = GetWMIService
' determine free space
colDisks = objWMI.ExecQuery _
("Select * from Win32_LogicalDisk")
For Each objDisk In colDisks
With objDisk
Try
Debug.WriteLine("DeviceID: " & .DeviceID)
' assume GB
Debug.WriteLine("Size: " & Format(.Size / 1000000000, "# GB"))
' assume GB
Debug.WriteLine("Free Disk Space: " _
& Format(.FreeSpace / 1000000000, "# GB"))
Debug.WriteLine("% Free: " & Format(.FreeSpace / .Size, "Percent"))
' http://msdn.microsoft.com/en-us/library/aa394173(VS.85).aspx
Select Case .DriveType
Case 0
strDriveType = "Unknown"
Case 1
strDriveType = "No Root Directory"
Case 2
strDriveType = "Removable Disk"
Case 3
strDriveType = "Local Disk"
Case 4
strDriveType = "Network Drive"
Case 5
strDriveType = "Compact Disc"
Case 6
strDriveType = "RAM Disk"
End Select
Debug.Print("Drive Type: " & strDriveType)
If (strDriveType = "Local Disk") Or (strDriveType = "Network Drive") Then
Debug.WriteLine("File System: " & .FileSystem)
End If
If strDriveType = "Network Drive" Then
Debug.WriteLine("Provider Name: " & .ProviderName)
End If
Debug.WriteLine("---")
Catch ex As Exception
Debug.WriteLine(ex.Message)
End Try
End With
Next objDisk
End Sub
liefert mir
DeviceID: C:
Size: 268 GB
Free Disk Space: 195 GB
% Free: 72,60%
Drive Type: Local Disk
File System: NTFS
---
DeviceID: D:
Size: 215 GB
Free Disk Space: 150 GB
% Free: 69,74%
Drive Type: Local Disk
File System: NTFS
---
DeviceID: E:
Size: 94 GB
Free Disk Space: 20 GB
% Free: 21,89%
Drive Type: Local Disk
File System: NTFS
---
DeviceID: F:
Eine Ausnahme (erste Chance) des Typs "System.InvalidCastException" ist in Microsoft.VisualBasic.dll aufgetreten.
Der Operator / ist für Typ DBNull und Typ Integer nicht definiert.
DeviceID: G:
Eine Ausnahme (erste Chance) des Typs "System.InvalidCastException" ist in Microsoft.VisualBasic.dll aufgetreten.
Der Operator / ist für Typ DBNull und Typ Integer nicht definiert.
DeviceID: H:
Eine Ausnahme (erste Chance) des Typs "System.InvalidCastException" ist in Microsoft.VisualBasic.dll aufgetreten.
Der Operator / ist für Typ DBNull und Typ Integer nicht definiert.
DeviceID: P:
Size: 42 GB
Free Disk Space: 6 GB
% Free: 15,06%
Drive Type: Local Disk
File System: NTFS
---
also quasi nichts - es fehlen noch immer die Netzlaufwerk K, L und S
hand, mogel