Suchen und Finden
Service
Infos und Kontakt
Das C# 2008 Codebook
1
Inhaltsverzeichnis
5
Vorwort
5
Teil I Einführung
5
Zum Buch
5
Recherche-Möglichkeiten
5
Teil II Rezepte
5
Basics
5
Datum und Zeit
6
Anwendungen, Anwendungs-Konfiguration, Prozesse und Dienste
7
Dateisystem
8
Text-, binäre und Zip-Dateien
9
XML
9
System
10
Internet
10
Windows.Forms
11
WPF
12
LINQ und LINQ to SQL
12
Benutzer und Gruppen
12
Sicherheit
13
Multimedia
13
Bildbearbeitung
13
Zeichnen
14
COM-Interop mit Office
14
Reflection und Serialisierung
14
Threading und asynchroner Methodenaufruf
14
Datenbank-Programmierung
14
Teil III Anhang
15
Änderungen gegenüber der zweiten Auflage
15
Die ersten 255 Zeichen des Unicode-Zeichensatzes
15
Stichwortverzeichnis
15
Teil I Einführung
19
Vorwort
17
Zum Buch
21
Der Inhalt
21
Einführende Artikel
21
Die Rezepte
21
Die Buch-CD
23
Das Codebook-Klassenbibliotheks-Projekt
23
Das Repository, die Beispiele und Komponenten
24
Unit-Testing
24
Das Buch-Blog
24
Der Index
24
Voraussetzungen
25
Typografische Konventionen und Icons
25
Recherche-Möglichkeiten
27
Wichtige .NET-Websites
27
WindowsClient.net
27
ASP.net
27
Codezone
27
dotnetjunkies
28
The Code Project
28
.NET 247
28
C# Corner
28
C# Help
28
.NETheute
29
dotnet-snippets.de
29
devX
29
ONDotnet.com
29
Lutz Roeder’s PROGRAMMING.NET
29
George Shepherd’s Windows Forms FAQ
29
Newsgroup-Recherche bei Google
30
Suche bei Microsoft
33
Debugging des .NET-Framework-Quellcodes
35
Der .NET Reflector von Lutz Roeder
39
Teil II Rezepte
41
Basics
43
1 Zahlen formatieren
43
2 Negative und positive Zahlen unterschiedlich formatieren
45
3 (Ganz-)Zahlen hexadezimal darstellen
45
4 Hexadezimale Zahlen in dezimale Zahlen konvertieren
46
5 Ganzzahlen dual darstellen
46
6 Dualzahlen in Ganzzahlen konvertieren
51
7 Zahlen in verschiedenen Notationen darstellen
52
8 Zahlen kaufmännisch runden
54
9 Den kleinsten und den größten Wert eines numerischen Datentyps ermitteln
55
10 Gradmaß in das Bogenmaß umrechnen
55
11 Bogenmaß in das Gradmaß umrechnen
55
12 Umstellen der aktuellen Kultur
56
13 Die verfügbaren Kulturen auslesen
57
14 Zahlen in verschiedenen Länderformaten darstellen
60
15 Einen Bytewert in ein besser lesbares Format umwandeln
60
16 Überprüfen, ob ein String eine gültige Zahl speichert
61
17 Überprüfen, ob ein String ein gültiges Datum speichert
65
18 Zufallszahlen erzeugen
66
19 High- und Low-Word lesen
69
20 High- und Low-Word setzen
70
21 Beep ausgeben
71
22 Strings ohne Berücksichtigung der Groß- bzw. Kleinschreibung vergleichen
72
23 Teilstrings flexibel ersetzen
72
Die eigene Replace-Methode
73
String.Replace
76
StringBuilder.Replace
77
Regex.Replace
77
Visual Basic Replace
78
Performance-Vergleich
78
24 Strings an vorgegebenen Trennzeichen auftrennen
79
25 Mehrere (Leer-)Zeichen in ein (Leer-)Zeichen konvertieren
80
26 Erstes Zeichen aller Wörter im String groß- und die restlichen Zeichen kleinschreiben
81
27 Anzahl der Wörter in einem String ermitteln
82
28 Alle Wörter eines Strings extrahieren
85
29 Einen String an einem rechten Rand wortgerecht umbrechen
86
30 String auf die ersten Wörter bis zu einer Maximallänge kürzen
89
31 Teilstring nur dann ersetzen, wenn dieser am Anfang eines Strings gespeichert ist
91
32 Linken und rechten Teilstring extrahieren
93
33 Zahlen aus einem String extrahieren
94
34 Überprüfen, ob ein String mit einer Zahl beginnt
95
35 Zufalls-String berechnen
97
36 Konstantennamen einer Aufzählung als String auslesen
99
37 Strings in Aufzählungswerte konvertieren
100
38 String in Byte-Array umwandeln
101
39 Byte-Array in String lesen
104
40 Auflistungen und Arrays sortieren
105
41 Auflistungen und Arrays performant durchsuchen
109
sequenzielle Suche
109
Suche mit IndexOf
110
Die Performance
111
Suchen mit BinarySearch
112
42 Typisierte Auflistungen erzeugen
115
43 Schnelle Auflistung mit Schlüssel- und Indexzugriff
120
44 Das Programm für eine definierte Zeit anhalten
121
45 Die Nachrichten einer Exception und ihrer inneren Exceptions ermitteln
122
46 Exceptions in Anwendungen korrekt auswerten
126
Datum und Zeit
131
47 Aktuelles Datum und aktuelle Uhrzeit ermitteln
131
48 Datumswerte formatieren
131
49 Datumswerte in verschiedenen Länderformaten ausgeben
133
50 Datum in das ISO-Format konvertieren
136
51 Datumswerte vergleichen
137
52 Die Differenz zwischen zwei Datumswerten berechnen
138
53 Alter in ganzen Jahren berechnen
145
54 Datumswerte addieren und subtrahieren
145
55 Eine Zeitangabe in einem String in ein Datum mit der Basis DateTime.Min umwandeln
147
56 Die Anzahl der Tage eines Monats berechnen
148
57 Die Anzahl der Tage eines Jahres berechnen
148
58 Den Wochentag eines Datums ermitteln
149
59 Den Namen eines Wochentags ermitteln
150
60 Den Namen eines Monats ermitteln
152
61 Den ersten und letzten Tag der Woche eines Datums berechnen
153
62 Den ersten und den letzten Tag eines Monats berechnen
154
63 Das Quartal eines gegebenen Datums berechnen
157
64 Den ersten und den letzten Tag eines Quartals berechnen
157
65 Ermitteln, ob ein Jahr ein Schaltjahr ist
160
66 Ermitteln der ISO-Kalenderwoche
161
67 Ermitteln, mit welchem Datum eine Kalenderwoche beginnt
165
Startdatum einer deutschen Kalenderwoche ermitteln
165
Startdatum einer internationalen Kalenderwoche ermitteln
166
68 Anzahl der Kalenderwochen eines Jahres bestimmen
168
69 Systemdatum und -zeit setzen
169
70 Atomuhr-Datum inklusive Uhrzeit von einem NIST-Server abfragen
172
71 Datum normalisieren
177
72 Deutsche Feiertage und andere besondere Tage berechnen
181
73 Ermitteln, ob ein bestimmter Tag ein Feiertag ist
192
74 Zeit genau messen
194
75 Eine Eingabe daraufhin überprüfen, ob diese ein Datum ergeben kann
197
76 Eine Eingabe daraufhin überprüfen, ob diese eine Zeit ergeben kann
201
77 Datumswerte fehlerfrei zwischen Systemen mit verschiedenen Zeitzonen austauschen
202
78 Mit Zeitzonen arbeiten
204
79 Mit Kalendersystemen arbeiten
207
Zuordnung von Kalendersystemen zu den Kulturen
210
Ermitteln von Informationen zu einem Kalender
211
Konvertieren vom aktuellen in ein anderes Kalendersystem
212
Konvertieren von anderen in das aktuelle Kalendersystem
213
Die Klasse CalendarInfo
214
Anwendungen, Anwendungs- Konfiguration, Prozesse und Dienste
215
80 Den Dateinamen der Anwendung ermitteln
215
81 Das Verzeichnis der Anwendung ermitteln
216
82 Befehlszeilenargumente auswerten
216
83 User Account Control (UAC) berücksichtigen
219
Einschränkungen
220
Anhebung des Sicherheits-Levels
220
Entwickeln von Anwendungen unter Rücksichtnahme auf UAC
222
84 Ausnahmen global behandeln
223
85 Den Speicherverbrauch von .NET-Anwendungen verstehen und gegebenenfalls reduzieren
226
86 Konfigurationsdaten in der .config-Datei verwalten
230
87 Konfigurationsdaten aus dem appSettings-Element der .config-Datei lesen
234
88 Externe Konfigurationsdateien lesen und schreiben
235
89 Konfigurationsdaten in eigenen Abschnitten speichern
240
90 Anwendungskonfiguration über eine eigene XML-Datei
245
91 Daten aus der Registry lesen und in die Registry schreiben
252
92 Verhindern, dass eine Anwendung mehrfach gestartet werden kann
260
93 Aktivieren einer laufenden Anwendung
262
Aktivieren über den genauen Fenstertitel
263
Aktivieren über einen teilweise angegebenen Fenstertitel
265
Aktivieren über ein Process-Objekt
268
94 Auflisten aller laufenden Prozesse eines Computers
269
95 Auflisten aller laufenden Anwendungen eines Computers
271
96 Informationen über die Dienste eines Computers auslesen
272
97 Dienste starten, anhalten, fortfahren und stoppen
276
98 Ermitteln, ob eine Anwendung ausgeführt wird
282
99 Anwendungen starten
283
100 Dateien mit der assoziierten Anwendung öffnen
284
101 Starten einer anderen Anwendung und warten, bis diese beendet ist
285
102 Konsolenanwendungen starten und die Ausgabe auswerten
287
103 Andere Anwendungen beenden
289
104 Java-Anwendungen starten
291
105 Die Betätigung der Tastatur simulieren
296
Dateisystem
299
106 Dateiname einer Windowsanwendung ermitteln
299
107 Dateiname einer Klassenbibliothek ermitteln
300
108 Ordner einer Windowsanwendung ermitteln
301
109 Ordner einer Klassenbibliothek ermitteln
302
110 Dateiname für eine temporäre Datei erzeugen
302
111 Ordner für temporäre Dateien ermitteln
303
112 Windows-(Spezial-)Ordner auslesen
303
113 Das .NET-Framework-Verzeichnis ermitteln
306
114 Dateiname mit anderer Endung ermitteln
307
115 Relativen Pfad aus einem absoluten Pfad ermitteln
307
116 Absoluten Pfad aus einem relativen Pfad ermitteln
309
117 Überprüfen, ob eine Pfadangabe gültig ist
310
118 Die logischen Laufwerke des Systems ermitteln
311
119 Den Typ der Laufwerke eines Systems ermitteln
313
120 Alle Laufwerke eines bestimmten Typs ermitteln
314
121 Größe und freien Speicherplatz eines Laufwerks ermitteln
316
122 Überprüfen, ob ein Ordner existiert
317
123 Ordner erzeugen
318
124 Ordner mit .NET-Features kopieren
318
125 Ordner mit Fortschrittsdialog, Abbruchmöglichkeit und Überschreib-Nachfrage über SHFileOperation kopieren
321
126 Ordner mit .NET-Features ohne Abbruch bei einer Ausnahme kopieren
328
127 Ordner umbenennen
336
128 Ordner verschieben
337
129 Ordner löschen
337
130 Ordnergröße ermitteln
338
131 Ordnergröße aller direkten Unterordner ermitteln
340
132 Überprüfen, ob eine Datei existiert
344
133 Dateien in einem Ordner und seinen Unterordnern suchen
344
134 Programmdateien in den Systempfaden suchen
346
135 Dateien kopieren
349
136 Dateien umbenennen
351
137 Dateien verschieben
351
138 Dateien löschen
352
139 Dateien vergleichen
353
140 Ordner vergleichen
355
141 Die Größe einer Datei ermitteln
358
142 Dateiattribute auslesen
359
143 Dateiattribute (z. B. den Schreibschutz) setzen oder aufheben
361
144 Die Erstell- und Zugriffsdaten einer Datei lesen und setzen
362
145 Die Version einer Datei auslesen
363
146 Den kurzen (8.3-)Dateinamen einer Datei auslesen
364
147 Alle Dateien eines Ordners auflisten
366
148 Dateien und Ordner mit Fortschrittsdialog, Abbruchmöglichkeit und Überschreib-Nachfrage umbenennen oder verschieben
367
149 Dateien und Ordner in den Papierkorb verschieben
371
150 Größe des Papierkorbs und Anzahl der Dateien im Papierkorb ermitteln
374
151 Verknüpfungen anlegen
377
152 Das Dateisystem überwachen
380
Text-, binäre und Zip-Dateien
383
153 Textdateien lesen
383
154 Textdateien schreiben
385
155 Texte an Textdateien anfügen
387
156 Textdateien ändern
389
157 Binäre Dateien lesen
390
158 Binäre Dateien schreiben
392
159 Binäre Dateien Base64-codieren
393
160 Base64-codierte Strings in Dateien umwandeln
394
161 Komprimieren von Daten mit .NET-Klassen
395
162 Dekomprimieren von Daten mit .NET-Klassen
399
163 (ZIP-)Komprimieren von Daten mit #ziplib
401
164 (ZIP-)Dekomprimieren von Daten mit #ziplib
407
165 Dateien in ZIP-Archive komprimieren
409
166 (ZIP-)Archive aus einem Ordner erzeugen
412
167 Dateiinformationen aus (ZIP-)Archiven auslesen
415
168 (ZIP-)Archive entpacken
417
XML
423
169 XML-Dokumente über LINQ to XML lesen
423
Das X-DOM
423
XML-Dokumente ohne Namensraum lesen
424
170 XML-Dokumente mit Namensraum über LINQ to XML lesen
426
171 XML-Dokumente über ein XmlReader-Objekt lesen
429
172 XML-Dokumente über das X-DOM lesen
433
173 XML-Dokumente beim Einlesen gegen ein Schema (oder DTD) prüfen
436
174 XML-Dokumente auf Gültigkeit überprüfen
441
175 XML-Dokumente validierend über das X-DOM lesen
451
176 Gezielt über XPath auf Elemente in einem XML- Dokument ohne Namensraum zugreifen
453
177 Gezielt über XPath auf Elemente in einem XML- Dokument mit Namensraum zugreifen
455
178 XML-Dokumente mit einem XmlWriter erzeugen
457
179 XML-Dokumente über das X-DOM erzeugen und ändern
460
Die DOM-ähnliche Methode
460
Funktionale Konstruktion
462
Ändern
462
Löschen
463
180 XML-Dokumente über LINQ to XML erzeugen
463
181 XML-Dokumente über ein DataTable- oder DataSet- Objekt erzeugen
465
182 XML-Dokumente über ein DataTable- oder ein DataSet-Objekt ändern
467
183 Binäre Daten in einem XML-Dokument speichern
469
184 Base64-codierte Bilder (binäre Daten) aus XML- Dokumenten auslesen
470
185 XML-Dokumente über LINQ to XML transformieren
471
186 XML-Dokumente über XSL-Dokumente transformieren
473
System
477
187 Den Namen des Computers ermitteln
477
188 Systempfade herausfinden
477
189 Windows-Version auslesen
480
190 Windows-Hauptversion ermitteln
480
191 Die Prozessorgeschwindigkeit ermitteln
482
192 Informationen über den Arbeitsspeicher auslesen
483
193 Die Version des aktuellen Service-Packs ermitteln
486
194 Installierte Programme auflisten
488
195 Informationen zu den parallelen Schnittstellen des Systems auslesen
491
196 Informationen zu den seriellen Schnittstellen des Systems auslesen
496
197 Ermitteln der Soundkarten des Systems
502
198 Windows herunterfahren und neu starten
503
199 Die verfügbaren Leistungsindikatoren auslesen
505
200 Den Arbeitsspeicher überwachen
511
201 Speicherauslastung und CPU-Belastung des aktuellen Prozesses überwachen
514
202 Speicherauslastung und CPU-Belastung des aktuellen Prozesses in ein Trace-Protokoll schreiben
516
203 Eigene Leistungsindikatoren implementieren
522
204 Monitor abschalten, in den Energiesparmodus schalten und wieder einschalten
527
205 System-Hotkeys registrieren und auswerten
529
Windows-Formulare mit einem System-Hotkey verknüpfen
530
Eine Komponente für die freie Verwendung von Hotkeys
532
Internet
541
206 Status der Internetverbindung abfragen
541
207 Pingen - Ermitteln, ob eine Internetverbindung besteht
544
208 TCP- und ICMP-Prüfsumme berechnen
546
209 Internetverbindung öffnen und schließen
548
210 Die IP-Adressen des Computers herausfinden
552
211 E-Mails über einen SMTP-Server versenden
554
212 E-Mails über MAPI bzw. Outlook versenden
560
213 Browser starten
562
214 Webseiten (HTML-Dokumente) in der Anwendung darstellen
563
215 Dateien von einem Web- oder FTP-Server über eine WebClient-Instanz downloaden
569
216 Dateien von einem Webserver über eine HttpWebRequest-Instanz downloaden
578
217 Intelligenter Up- und Download mit BITS
601
218 Die Größe einer Datei von einem FTP-Server abfragen
612
219 Dateien zu einem Web- oder FTP-Server hochladen
614
220 FTP-Verzeichnisse auslesen
621
221 Dateien und Ordner auf einem FTP-Server löschen
631
222 Ordner auf einem FTP-Server erstellen
632
Windows.Forms
635
223 Formulare ohne Titelleiste
635
224 (Rahmenlose) Formulare über den Clientbereich verschiebbar machen
635
225 Unbewegbare Formulare mit Titelleiste
637
226 Andockende Formulare
638
227 Ändern des Systemmenüs - Entfernen des Schließen- Eintrags und -Schalters
639
228 Formulare verlaufend füllen
640
229 Formulare mit speziellen Formen
641
Transparenter Hintergrund
642
Regionen
643
230 Formulare mit dem Vista-Glas-Effekt ausstatten
647
231 Splash-Formulare
652
232 Ermitteln, auf welchen Monitoren ein Formular angezeigt wird
654
233 Ein Formular auf einem sekundären Bildschirm öffnen
658
234 Die Bildschirm-Position eines Steuerelements ermitteln
659
235 Die optimale Position eines Formulars oder eines Steuerelements bezogen auf ein Steuerelement ermitteln
660
236 Das Hauptformular einer Anwendung ermitteln
664
237 Menüs in der Laufzeit erstellen oder erweitern
665
238 Steuerelemente mit transparentem Hintergrund
667
239 TextBox automatisch beim Eintritt selektieren
668
240 TextBox auf Zahleingaben beschränken
670
241 Auf Return in einer TextBox reagieren
675
242 Bei der Betätigung der Return-Taste die Tab-Taste simulieren
676
243 Die Position des Eingabecursors in einer TextBox, RichTextBox oder MaskedTextBox ermitteln
678
244 Die angezeigten Zeilen einer MultiLine-TextBox auslesen
682
245 ComboBox mit Autovervollständigung
685
Verwenden der Autovervollständigung der Windows.Forms-ComboBox
686
Eine eigene ComboBox mit (korrekt funktionierender) einfacher Autovervollständigung
688
246 Daten neben den Einträgen einer ListBox oder ComboBox verwalten
692
247 ListBox mit ToolTip für längere Einträge
693
248 ListView sortieren
695
249 Knoten einer Ebene in einem TreeView-Steuerelement vertauschen
698
250 Einzelne Knoten eines TreeView-Steuerelements sortieren
700
251 Die Werte einzelner Zellen in einem DataGridView setzen und lesen
702
252 Ein DataGridView anpassen
703
Bedingungsabhängiges Anpassen der Zellenfarbe
705
253 Ein DataGridView mit eigenen Spalten am Beispiel einer DateTimePicker-Spalte
707
254 Feiertage im MonthCalendar-Steuerelement darstellen
717
255 Drag&Drop von Dateien und Ordnern
720
256 Ein Ordner-Dialog
722
257 In einem Nicht-Tastatur-Ereignis herausfinden, ob eine bestimmte Taste betätigt ist
723
258 In einem eigenen Steuerelement verhindern, dass die Cursor-Tasten einen Fokuswechsel bewirken
725
259 Hooking - Eine MessageBox mit definierten Schalterbeschriftungen versehen
727
Ein einfaches Beispiel
728
Eine Klasse für eine MessageBox mit benutzerdefinierten Schalterbeschriftungen
731
WPF
739
260 Fenster ohne Titelleiste
740
261 Den Handle eines WPF-Fensters ermitteln
740
262 Fenster über den Clientbereich verschiebbar machen
741
263 Windows-Nachrichten verarbeiten
741
264 Beim Maximieren eines Fensters ohne Titelleiste die Taskbar berücksichtigen
743
265 Fenster verlaufend füllen
747
266 Hintergrund mit Textur
748
267 Fenster mit speziellen Formen
751
268 Fenster mit dem Vista-Glas-Effekt ausstatten
753
269 Fenster in einer Schleife aktualisieren
757
DoEvents
757
Die Thread-Lösung
759
270 Splash-Fenster
761
271 Die aktuelle DPI-Einstellung der Bildschirme des Systems ermitteln
765
272 Ein Fenster auf einem sekundären Bildschirm öffnen
766
273 Das Hauptfenster einer Anwendung ermitteln
768
274 Die absolute und die Bildschirm-Position eines Steuerelements ermitteln
768
275 Die optimale Position eines Fensters bezogen auf ein Steuerelement ermitteln
770
276 Beim Öffnen eines Fensters den Fokus setzen
774
277 Das Einfügen über die Zwischenablage abfangen
774
278 TextBox-Inhalt beim Eintritt komplett selektieren
775
279 TextBox auf Zahleingaben beschränken
776
280 Das TextChanged-Ereignis bei der ComboBox abfangen
781
281 Bei der Betätigung der Return-Taste die Tab-Taste simulieren
783
282 Drag&Drop von Dateien und Ordnern
785
283 In einem Nicht-Tastatur-Ereignis herausfinden, ob eine bestimmte Taste betätigt ist
786
LINQ und LINQ to SQL
789
284 Dynamische Abfragen
789
Progressive Abfragen
790
Dynamische Abfragen
791
285 Ungleichheits-Verknüpfungen
793
286 Kreuzprodukt-Verknüpfungen
794
287 Kommaseparierte Dateien (CSV-Dateien) verarbeiten
794
288 Probleme mit der Benennung in LINQ-to-SQL-Modellen lösen
796
289 LINQ-to-SQL-Abfragen mit LIKE
798
290 SQL direkt ausführen
799
291 Die SQL-Anweisung einer LINQ-Abfrage evaluieren
800
Benutzer und Gruppen
805
292 Informationen zu den Benutzern eines Computers oder einer Domäne auflisten
805
293 Überprüfen, ob ein Benutzerkonto existiert
811
294 Benutzergruppen eines Computers oder einer Domäne auflisten
813
295 Benutzer ermitteln, die einer Gruppe angehören
817
296 Gruppen eines Benutzers abfragen
820
297 Eigenschaften eines Benutzers auslesen
823
298 Überprüfen, ob der aktuelle Benutzer einer in Windows vordefinierten Gruppe (z. B. Administratoren) angehört
830
299 Gruppen anlegen
833
300 Benutzer anlegen
835
301 Eigenschaften eines Benutzers ändern
837
302 Benutzer einer Gruppe zuweisen
839
303 Benutzer aus einer Gruppe entfernen
841
304 Benutzer löschen
842
305 Gruppe löschen
843
306 Den Namen des aktuellen Benutzers auslesen
844
307 Ein Programm unter einem spezifischen Benutzerkonto ausführen
845
Sicherheit
851
308 Strings sicher im Programm verwalten
851
309 Daten symmetrisch ver- und entschlüsseln
855
Das Ver- und Entschlüsseln
868
Die Anwendung der Klasse SymmetricEncryptor
871
310 Asymmetrisches Verschlüsseln mit RSA
873
Mit RSA verschlüsseln
875
Entschlüsseln mit RSA
877
311 Sicherer Schlüsselaustausch mit ECDH
878
312 Daten mit Hashing-Verfahren verschlüsseln
879
Direktes Erzeugen eines Hashcodes
882
Eine Hilfsklasse
883
Multimedia
891
313 Wave-Dateien abspielen
891
314 Multimedia-Dateien in einer Windows.Forms- Anwendung über MCI abspielen
892
315 Multimediadateien in einer WPF-Anwendung abspielen
908
Bildbearbeitung
911
316 Speicherschonend in einer Windows.Forms- Anwendung mit Bildern umgehen
911
317 Bitmap-Objekte aus BitmapSource-Objekten erzeugen
913
318 BitmapSource-Objekte aus Bitmap-Objekten erzeugen
914
319 Das Format eines Bilds auslesen
915
WPF
915
Windows.Forms
917
320 Bild-Metadaten auslesen
920
Grundlagen
920
WPF
921
Windows.Forms
923
321 Das Aufnahmedatum eines Bilds auslesen
927
322 Eingelesene Bilder im Originalformat speichern
930
WPF
930
Windows.Forms
931
323 Bild in Byte-Array umwandeln
932
WPF
932
Windows.Forms
934
324 Byte-Array in Bild umwandeln
934
WPF
934
Windows.Forms
935
325 Bilder aus der Zwischenablage auslesen
936
WPF
936
Windows.Forms
937
326 Screenshot erstellen
938
327 Bilder skalieren
943
WPF
943
Windows.Forms
944
328 Thumbnails aus Bildern erzeugen
947
WPF
948
Windows.Forms
948
329 Bilder konvertieren
949
WPF
950
Windows.Forms
950
330 (JPEG-)Bilder mit definierter Qualität speichern
951
WPF
951
Windows.Forms
952
331 Bilder drehen, neigen und spiegeln
955
WPF
955
Windows.Forms
956
332 Bildausschnitte auslesen
960
WPF
960
Windows.Forms
962
333 Farben von Bildern auf andere Farben mappen
962
WPF
963
Windows.Forms
964
334 Farbinformationen von Bildern gezielt verändern
966
WPF
966
Windows.Forms
967
335 Ein Negativ eines Bilds erzeugen
971
WPF
971
Windows.Forms
972
336 Die einzelnen Pixel eines Bilds bearbeiten
973
WPF
973
Windows.Forms
976
337 Farb-Bilder in Graustufen-Bilder umwandeln
979
WPF
980
Windows.Forms
981
Zeichnen
983
338 GDI-Probleme vermeiden
983
339 Einstellen der Grafik-Qualität unter GDI
984
340 Rechtecke mit abgerundeten Ecken zeichnen
987
WPF
987
GDI
989
341 Pfeile zeichnen
991
342 Transparente Bilder und Grafiken erzeugen
996
WPF
996
Windows.Forms
999
343 Bilder mit Schatten zeichnen
1001
WPF
1001
Windows.Forms
1004
344 Schräg zeichnen und Zeichenobjekte rotieren
1004
WPF
1005
Windows.Forms
1008
345 Den Drehpunkt eines Rechtecks so ermitteln, dass die Ecke links oben an derselben Position bleibt
1011
346 Text an einer definierten Position in 90-Grad-Schritten gedreht ausgeben
1013
347 Die Breite und Höhe eines auszugebenden Textes bestimmen
1015
WPF
1015
Windows.Forms
1016
348 Texte zentriert oder rechtsbündig zeichnen
1018
WPF
1018
Windows.Forms
1020
349 Strings beim Zeichnen wortgerecht umbrechen
1022
WPF
1022
Windows.Forms
1023
COM-Interop mit Office
1031
350 Laufende COM-Komponenten-Instanzen referenzieren
1031
351 Word-Dokumente öffnen
1033
352 Word-Dokumente basierend auf einer Dokumentenvorlage erzeugen, füllen, ausdrucken und speichern
1037
353 Excel-Arbeitsmappen erzeugen
1041
354 Daten in Excel-Arbeitsmappen erweitern
1047
355 Performantes Lesen und Schreiben in Excel-Arbeitsmappen
1051
356 Kontakte aus Outlook auslesen
1053
Reflection und Serialisierung
1057
357 Informationen über den Aufrufer in einer Methode oder einem Konstruktor ermitteln
1057
358 Programmcode dynamisch ausführen
1058
359 Assemblys dynamisch erzeugen
1061
360 Assemblys dynamisch laden
1062
361 Objekte über eine Datenvertrag-Serialisierung serialisieren
1066
Die Serialisierung
1068
Die Deserialisierung
1069
Objekte binär serialisieren
1070
362 Objekte binär serialisieren und deserialisieren
1071
363 Objekte nach XML serialisieren und von XML deserialisieren
1073
364 Font- und andere (serialisierbare) Objekte in einen String serialisieren
1076
Threading und asynchroner Methodenaufruf
1079
365 In einem Thread sicher auf Steuerelemente zugreifen
1079
Umleitung eines Methodenaufrufs in WPF
1080
Umleitung eines Methodenaufrufs in Windows.Forms
1081
366 Easy-Threading mit der BackgroundWorker- Komponente
1082
367 Parameter an Threads übergeben und Ergebnisse auslesen
1086
368 Das ereignisbasierte asynchrone Entwurfsmuster implementieren
1092
Datenbank-Programmierung
1109
369 Die Anzahl der Datensätze ermitteln, die eine Abfrage in einer Datenbank ergibt
1109
370 Datenbanken erzeugen
1110
LINQ to SQL
1110
ADO.NET
1110
371 Abfragen der automatisch vergebenen Id eines neuen Datensatzes
1113
LINQ to SQL
1114
ADO.NET
1114
372 Bilder und andere binäre Daten in einer Datenbank verwalten
1115
LINQ to SQL
1116
ADO.NET
1118
373 Backup und Restore einer SQL-Server-Datenbank über SMO
1120
374 Die verfügbaren SQL Server ermitteln
1124
375 Die Datenbanken einer SQL-Server-Instanz abfragen
1125
Teil III Anhang
1127
Änderungen gegenüber der zweiten Auflage
1129
Geänderte Rezepte
1129
Basics
1129
Anwendungen, Anwendungs-Konfiguration, Prozesse und Dienste
1129
Dateisystem
1129
Text-, binäre und ZIP-Dateien
1129
XML
1130
Internet
1130
Windows.Forms
1130
Sicherheit
1131
Bildbearbeitung
1131
Zeichnen
1132
Reflection und Serialisierung
1132
Threading
1132
Datenbank-Programmierung
1133
Neue Rezepte
1133
Basics
1133
Datum und Zeit
1133
Anwendungen, Anwendungs-Konfiguration, Prozesse und Dienste
1133
Dateisystem
1133
XML
1133
System
1134
Windows.Forms
1134
WPF
1134
LINQ und LINQ to SQL
1135
Sicherheit
1135
Bildbearbeitung
1135
COM-Interop mit Office
1135
Serialisierung
1135
Die ersten 255 Zeichen des Unicode- Zeichensatzes
1137
Stichwortverzeichnis
1139
!
1139
Numerics
1139
A
1139
B
1141
C
1142
D
1143
E
1145
F
1147
G
1147
H
1149
I
1149
J
1150
K
1150
L
1151
M
1152
N
1153
O
1153
P
1154
Q
1155
R
1155
S
1156
T
1159
U
1160
V
1161
W
1162
X
1163
Z
1163
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.; Ersparnis im Vergleich zur Printversion




















