Các giải pháp lập trình Visual Basic .NET- Chương 10 Lập trình Windowns
lượt xem 17
download
Đối với hầu hêt các lập trình viên, việc phát triển tập trung và các tính năng của hệ điều hành Microsoft windowns. Trong chương này chúng ta sẽ xét một số vấn đề thường được hỏi nhất về việc phát triển với microsfot viual bacsic . Net
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Các giải pháp lập trình Visual Basic .NET- Chương 10 Lập trình Windowns
- Nguy n Ng c Bình Ph ng — Lê Tr n Nh t Qu nh t ng h p & biên d ch T PI http://www.dvpub.com.vn/dv/details.aspx?itemid=244 N HÀ X U T B N GI A O T HÔ NG V N T I
- 13 M CL C M CL C L I NÓI U ..................................................................................................................... 5 C U TRÚC C A SÁCH ..................................................................................................... 7 QUY C .......................................................................................................................... 9 YÊU C U V H TH NG................................................................................................ 11 M C L C ......................................................................................................................... 13 Ch ng 1: CHU I VÀ BI U TH C CHÍNH QUY 19 1.1 N i chu i ............................................................................................................. 21 1.2 L y chu i con ...................................................................................................... 22 1.3 T o chu i ch a m t ký t c l p l i nhi u l n ................................................ 23 1.4 Thay i ki u ch hoa-th ng c a t t c các ký t trong chu i .......................... 23 1.5 Th c hi n phép so sánh chu i không phân bi t ch hoa-th ng ....................... 24 1.6 Duy t qua t t c các ký t trong chu i ................................................................ 24 1.7 Phân tích chu i thành t ..................................................................................... 25 1.8 Tìm t t c hi n di n c a m t dãy ký t trong chu i ............................................. 27 1.9 Thay th t t c hi n di n c a m t dãy ký t trong chu i ..................................... 28 1.10 S d ng padding khi hi n th chu i ................................................................... 29 1.11 o chu i .......................................................................................................... 31 1.12 Chèn ký t ng t dòng vào chu i........................................................................ 31 1.13 Chèn ký t c bi t vào chu i ........................................................................... 32 1.14 X lý chu i nhanh chóng b ng StringBuilder .................................................... 33 1.15 Chuy n chu i thành m ng byte......................................................................... 35
- 14 1.16 Chuy n m ng byte thành chu i ......................................................................... 36 1.17 S d ng các bi u th c chính quy thông d ng ................................................... 37 1.18 Xác nh n tính h p l c a u vào v i bi u th c chính quy............................... 41 1.19 Tìm t t c hi n di n c a m u trong chu i .......................................................... 41 1.20 Thay th t t c hi n di n c a m u trong chu i .................................................. 43 1.21 X lý tên file ...................................................................................................... 44 1.22 X lý URI .......................................................................................................... 45 1.23 Xác nh n tính h p l c a th tín d ng b ng gi i thu t Luhn ............................. 46 1.24 Xác nh n tính h p l c a ISBN ......................................................................... 47 1.25 So sánh chu i b ng gi i thu t SoundEx............................................................ 48 Ch ng 2: S , NGÀY, VÀ CÁC KI U D LI U KHÁC 51 2.1 Th c hi n các thao tác toán h c ......................................................................... 53 2.2 Chuy n m t s thành m t chu i c- nh-d ng ............................................... 54 2.3 T o s ng u nhiên .............................................................................................. 56 2.4 Làm vi cv i các h th ng s phi c s 10 ......................................................... 57 2.5 Làm vi cv i s ph c .......................................................................................... 57 2.6 Làm vi cv i vector ............................................................................................. 60 2.7 Làm vi cv i ma tr n ........................................................................................... 62 2.8 Làm vi c v i phân s (không s d ng d ng th p phân)...................................... 63 2.9 Tính m t bi u th c chu i..................................................................................... 66 2.10 L y ngày và gi h th ng.................................................................................. 67 2.11 C ng và tr ngày gi ........................................................................................ 68 2.12 Xác nh các ngày trong tu n, n m nhu n…..................................................... 69 2.13 L y tên ngày và tháng các ngôn ng khác..................................................... 69 2.14 nh d ng m t ngày .......................................................................................... 70 2.15 T o m t chu i ngày v i nh d ng “b t bi n” .................................................... 73 2.16 Xác nh n tính h p l c a ngày do ng i dùng cung c p .................................. 73 2.17 T o GUID.......................................................................................................... 74 2.18 Chuy n các ki u c b n thành d ng nh phân .................................................. 75 2.19 Ki m tra các m ng byte có b ng nhau hay không............................................. 76 2.20 Chuy n tên c a m t giá tr li t kê thành giá tr t ng ng................................. 77 Ch ng 3: M NG VÀ T P H P 79 3.1 T o và nhanh d li u vào m ng..................................................................... 81 3.2 i kích th c m t m ng.................................................................................... 82 3.3 T o m ng không có c n t i 0 .............................................................................. 83 3.4 T o m ng không u .......................................................................................... 84 3.5 S d ng ArrayList ............................................................................................... 85 3.6 d li u t Array vào ArrayList ........................................................................ 86 3.7 Chuy n ArrayList thành Array ............................................................................. 86 3.8 S p các ph n t trong m t Array hay ArrayList................................................... 87 3.9 S p các ph n t không-th -so-sánh trong m t Array hay ArrayList .................... 89 3.10 S d ng Hashtable thay cho t p h p t ng quát ................................................ 91 3.11 Li t kê các ph n t trong m t Hashtable........................................................... 93 3.12 S d ng Queue (t p h p FIFO) ........................................................................ 94 3.13 S d ng Stack (t p h p LIFO) .......................................................................... 94
- 15 3.14 S d ng SortedList ........................................................................................... 95 3.15 T o các b n sao c n và sâu c a m t t p h p hay m ng .................................. 96 3.16 T o m t t p h p c- nh-ki u-m nh............................................................. 97 3.17 T o m t t p h p t in c- nh-ki u-m nh................................................. 99 3.18 Lo i b ph n t trong lúc duy t t p h p.......................................................... 100 3.19 Duy t các ph n t c a t p h p theo th t ng u nhiên .................................. 101 Ch ng 4: IT NG, GIAO DI N, VÀ M U 105 4.1 T o ki u giá tr ................................................................................................... 107 4.2 T o i t ng kh -sao-chép ............................................................................. 110 4.3 T o ph ng th c an-toàn-v -ki u-d -li u Clone .............................................. 112 4.4 T o i t ng kh -so-sánh ............................................................................... 112 4.5 T o i t ng kh -h y ...................................................................................... 114 4.6 T o it ng có th xu t hi n trong khay thành ph n ..................................... 115 4.7 T o it ng kh -chuy n- i .......................................................................... 117 4.8 T o i t ng kh -tu n-t -hóa ......................................................................... 118 4.9 Tu n t hóa i t ng ra a ............................................................................ 120 4.10 Sao m t i t ng kh -tu n-t -hóa ................................................................ 121 4.11 Tu n t hóa các thành viên công khai c a m t i t ng không-kh -tu n- t -hóa ..................................................................................................................... 123 4.12 Th c hi n phép tu n t hóa có-ch n-l a v i m u Memento .......................... 124 4.13 Ném bi t l tùy bi n......................................................................................... 128 4.14 D ng s ki n tùy bi n ..................................................................................... 130 4.15 S d ng m u Singleton................................................................................... 131 4.16 S d ng m u Factory...................................................................................... 132 4.17 S d ng m u Registry .................................................................................... 133 4.18 S d ng m u Lazy Initialization ...................................................................... 134 Ch ng 5: FILE VÀ TH MC 137 5.1 X lý file ............................................................................................................ 139 5.2 X lý th m c.................................................................................................... 142 5.3 Truy xu t thông tin phiên b n c a file................................................................ 143 5.4 S d ng phép toán trên bit v i các thu c tính c a file....................................... 145 5.5 c và ghi file nh phân ..................................................................................... 146 5.6 L c file v i wildcard........................................................................................... 146 5.7 X lý file m t cách quy ................................................................................. 147 5.8 Tìm m t chu i bên trong m t file ....................................................................... 149 5.9 S d ng TreeView hi n th cây th m c trong lúc ch y ............................... 151 5.10 Ki m tra hai file có trùng nhau hay không ....................................................... 152 5.11 Theo dõi h th ng file phát hi n thay i .................................................... 154 5.12 T o file t m ..................................................................................................... 156 5.13 L y ng d n c a file th c thi....................................................................... 156 5.14 Thi t l p ng d n làm vi c hi n hành ......................................................... 156 5.15 S d ng không gian l u tr riêng ................................................................... 157 5.16 c các thi t l p c u hình ng d ng............................................................... 159 5.17 T o section c u hình tùy bi n.......................................................................... 160 5.18 c thông tin header t file MP3..................................................................... 162
- 16 5.19 Thao tác file ZIP .............................................................................................. 163 5.20 Thao tác file PDF ............................................................................................ 164 Ch ng 6: XML 167 6.1 N p tài li u XML vào b nh ............................................................................. 170 6.2 X lý t t c các nút trong m t tài li u ................................................................ 172 6.3 Chèn thêm nút vào tài li u XML ........................................................................ 173 6.4 Tìm các ph n t b ng tên ................................................................................. 175 6.5 Tìm các ph n t v i bi u th c XPath................................................................ 176 6.6 N p tài li u XML vào m t l p ............................................................................ 178 6.7 S d ng XML Serialization v i các i t ng tùy bi n...................................... 181 6.8 Th c hi n XSL Transform ................................................................................. 184 6.9 Xác nh n tính h p l c a tài li u XML d a trên m t XML Schema ................... 186 6.10 L u tr d li u nh phân v i Base64 Transform.............................................. 191 Ch ng 7: L P TRÌNH A TI U TRÌNH 193 7.1 G i b t ng b ph ng th c v i y nhi m ...................................................... 195 7.2 i nhi u l i g i b t ng b hoàn t t .............................................................. 198 7.3 i m t trong nhi u l i g i b t ng b hoàn t t .............................................. 199 7.4 S d ng callback v i m t l i g i b t ng b ................................................... 200 7.5 Th c hi n m t tác v b t ng b v i l p Thread............................................. 203 7.6 S d ng mã l nh ng b hóa v i nhi u ti u trình............................................ 205 7.7 S d ng it ng Thread v i m t tác v có yêu c u d li u........................... 208 7.8 S d ng it ng Thread v i m t tác v có tr v d li u .............................. 209 7.9 D n mã l nh giao di n ng i dùng n úng ti u trình..................................... 212 7.10 D ng ti u trình m t cách l ch s ..................................................................... 215 7.11 T o l p v b c ti u trình ................................................................................. 216 7.12 T o m t b x lý tác v có th tái s d ng ..................................................... 218 7.13 S d ng pool cho các ti u trình....................................................................... 220 Ch ng 8: L P TRÌNH M NG 223 8.1 Ki m tra kh n ng k t n i Internet c a máy tính hi n hành............................... 225 8.2 L y a ch IP c a máy tính hi n hành............................................................... 226 8.3 Xác nh a ch IP t tên mi n.......................................................................... 227 8.4 “Ping” m t a ch IP.......................................................................................... 227 8.5 Download file b ng HTTP ................................................................................. 228 8.6 L y m t m u thông tin t m t trang web ........................................................... 229 8.7 Tìm t t c các liên k t trong m t trang web ....................................................... 230 8.8 Giao ti p b ng TCP........................................................................................... 232 8.9 T o m t TCP-server h -tr - a-ti u-trình........................................................... 235 8.10 Giao ti p b ng UDP ........................................................................................ 237 8.11 G i m t thông i p broadcast ......................................................................... 239 8.12 G i e-mail thông qua SMTP............................................................................ 239 8.13 Nh n e-mail thông qua POP3.......................................................................... 241 8.14 Truy xu t m t FTP-server ............................................................................... 246 Ch ng 9: C CH PH N CHI U 253 9.1 T o h p About ng.......................................................................................... 255
- 17 9.2 Li t kê nh ng ph thu c i v i m t assembly ................................................. 256 9.3 L y thông tin ki u t m t l p hay m t i t ng............................................... 257 9.4 Kh o sát m t ki u tìm ra các thành viên c a nó ........................................... 259 9.5 Kh o sát m t assembly tìm ra các ki u trong ó .......................................... 261 9.6 Th hi n hóa m t ki u d a theo tên.................................................................. 263 9.7 N p assembly t m t n i xa ............................................................................. 265 9.8 G i m t ph ng th c d a theo tên................................................................... 266 9.9 T o, áp d ng, và nh n bi t m t c tính tùy bi n .............................................. 268 9.10 Nh n bi t caller c a m t th t c ...................................................................... 270 9.11 Ph n chi u lên m t l p WMI ........................................................................... 273 9.12 Biên d ch ng mã ngu n................................................................................ 275 Ch ng 10: L P TRÌNH WINDOWS 277 10.1 Truy xu t Windows Registry............................................................................ 279 10.2 L y các bi n môi tr ng ................................................................................. 281 10.3 Th lý các s ki n h i u hành...................................................................... 282 10.4 Truy xu t Desktop và Start menu .................................................................... 284 10.5 T o shortcut trên Desktop hay Start menu ...................................................... 285 10.6 Kh i ch y m t ng d ng Windows v i ph ng th c Main ............................. 287 10.7 L y các i s dòng l nh................................................................................. 289 10.8 Ch y ng d ng ang s h u m t uôi file nào ó .......................................... 290 10.9 Tìm t t c các ti n trình ang ch y ................................................................. 292 10.10 K t thúc m t ti n trình ang ch y .................................................................. 294 10.11 Ch cho phép m t th hi n c a ng d ng...................................................... 295 10.12 G i keystroke n m t ng d ng.................................................................. 296 10.13 Bu c Windows t t hay ng xu t .................................................................. 298 10.14 Ch i file WAV................................................................................................ 299 10.15 Hi n th h p tho i ch n th m c chu n ......................................................... 300 10.16 S d ng Clipboard ........................................................................................ 302 10.17 Hi n th tr giúp c m-ng -c nh..................................................................... 304 10.18 B t các l i ch a- c-th -lý ......................................................................... 306 10.19 T o d án cài t Windows Installer ............................................................. 307 10.20 Cài t .NET Framework trên máy client ....................................................... 310 10.21 K t h p m t ki u file vào ng d ng c a b n ................................................. 310 10.22 Trích icon t file EXE .................................................................................... 312 10.23 L y thông tin v màn hình ............................................................................. 313 Ch ng 11: I U KI M WINDOWS 315 11.1 Thêm i u ki m vào form lúc th c thi.............................................................. 317 11.2 L u tr d li u trong i u ki m ....................................................................... 319 11.3 Thay th m ng i u ki m ................................................................................ 321 11.4 Xóa ph n text c a t t c các i u ki m nh p trên form ................................... 322 11.5 L u tr các i t ng trong m t danh sách .................................................... 323 11.6 Bu c ListBox cu n xu ng................................................................................ 325 11.7 S d ng hyperlink ........................................................................................... 326 11.8 Ch cho phép nh p s vào TextBox................................................................. 328 11.9 S d ng ComboBox có tính n ng auto-complete............................................ 328
- 18 11.10 S p x p ListView theo c t b t k ................................................................... 330 11.11 S d ng tính n ng kéo-và-th ....................................................................... 332 11.12 Liên k t menu ng c nh vào i u ki m ......................................................... 333 11.13 S d ng m t ph n menu chính cho menu ng c nh..................................... 334 11.14 T o form a ngôn ng ................................................................................... 335 11.15 S d ng s th a k form .............................................................................. 337 11.16 T o form không th di chuy n c.............................................................. 339 11.17 Làm cho form không- ng-vi n có th di chuy n c .............................. 341 11.18 L u tr kích th c và v trí c a form ............................................................. 343 11.19 ng b các i u ki m trên form................................................................... 344 11.20 T o ng d ng khay h th ng ........................................................................ 346 11.21 Áp d ng phong cách Windows XP ................................................................ 348 11.22 Thay i c c a form.............................................................................. 350 Ch ng 12: IN VÀ V V I GDI+ 353 12.1 Tìm t t c các máy in ã c cài t ............................................................ 355 12.2 In v n b n n gi n ........................................................................................ 358 12.3 In v n b n có nhi u trang................................................................................ 360 12.4 Canh gi a text khi in ....................................................................................... 363 12.5 Th c hi n “wrapping” khi in............................................................................. 364 12.6 In d li u t m t file ........................................................................................ 366 12.7 Hi n th print-preview....................................................................................... 369 12.8 L y thông tin v hàng i in ............................................................................ 371 12.9 Qu n lý tác v in ............................................................................................. 372 12.10 Tìm t t c các font ã c cài t ............................................................... 374 12.11 Chuy n i nh d ng nh ............................................................................ 375 12.12 V n i dung t nh ............................................................................................ 377 12.13 V n i dung ng .......................................................................................... 379 12.14 S d ng màu h th ng.................................................................................. 381 12.15 C i thi n ch t l ng th hi n ........................................................................ 382 12.16 Th c hi n “hit testing” v i shape................................................................... 383 12.17 V hình d ng thumbnail ............................................................................. 384 12.18 S d ng “double buffering” t ng t c v l i ........................................... 387 12.19 Hi n th c a s có hình dáng b t th ng ...................................................... 389 12.20 T o menu v i c ch “owner-drawn” ............................................................ 391 12.21 T o ListBox v i c ch “owner-drawn”.......................................................... 394 TÀI LI U THAM KH O .................................................................................................. 399
- 277 Ch ng 10: L P TRÌNH WINDOWS 10
- 278
- 279 Ch ng 10: L p trình Windows i v i h u h t các l p trình viên, vi c phát tri n t p trung vào các tính n ng c a h i u hành Microsoft Windows. Trong ch ng này, chúng ta s xét m t s v n c h i nh t v vi c phát tri n v i Microsoft Visual Basic .NET. B n s bi t th ng cách s d ng các tài nguyên c-thù-Windows nh bi n môi tr ng, Registry, Start menu, Clipboard, và Windows help. B n c ng s bi t cách t ng tác v i các ti n trình Windows hi n ang ch y, th lý các s ki n h i u hành, và tri n khai ng d ng c a b n v i ti n ích cài t Windows Installer. B n c n hi u r ng Microsoft .NET Framework không sao toàn b Win32 API, mà ch sao các c-qu n-lý cho m i hàm API s là m t tính n ng c t lõi c a nó. Vi c t o các giao di n nhi m v n ng n (và ph n tác d ng). H u h t các nhà phát tri n nh n nh r ng .NET cung c p 99% các ch c n ng Windows th ng c c n n nh t và khi n nó d s d ng h n bao gi h t. Tuy nhiên, s d ng m t vài tính n ng, b n s c n ào sâu vào th gi i không- c-qu n-lý. t o các m c cho ch ng này, chúng ta s c n nhi u ki u gi i pháp khác nhau, bao g m: Không gian tên Microsoft.Win32 Trong n l c làm cho .NET tr nên t ng quát h n (và d mang n các n n khác), m t l ng áng k các ch c n ng c-thù-Windows truy xu t Registry (m c c gi trong không gian tên này, bao g m các l p dùng 10.1) và th lý các s ki n h i u hành (m c 10.3). Không gian tên System.Diagnostics Không gian tên này ch a m t s ch c n ng m c-th p dùng m (m c 10.8), kh o sát (m c 10.9), và k t thúc (m c 10.10) các ti n trình Windows. Win32 API B n s c n s d ng các l i g i API cho m t vài tác v , ch ng h n ch i file WAV (m c 10.14), và t t Windows (m c 10.13). Windows Script Host S d ng COM Interop, b n có th truy xu t thành ph n Windows Script Host; thành ph n này cho phép b n t o shortcut (m c 10.5), g i keystroke n các ng d ng khác (m c 10.12), v.v... 10.1 Truy xu t Windows Registry B n mu n l u tr và l y các giá tr trong Windows Registry. S d ng các l p Registry và RegistryKey trong không gian tên Microsoft.Win32. Khác v i các phiên b n tr c c a Visual Basic, Visual Basic .NET cung c p quy n truy xu t n Windows Registry thông qua các l p Registry và RegistryKey. Registry không h n ch là i m kh i u cho vi c truy xu t Windows Registry: nó cung c p các tr ng chia s , tr v các i t ng RegistryKey cho các ng d n m c- u-tiên (hay các khóa c s ). Hai tr ng quan tr ng nh t là: ch a các s thích (preference) c-thù-ng i-dùng. ây là v trí th ng CurrentUser l u tr thông tin Registry trong m t ng d ng, và nó t ng ng v i c s d ng khóa c s HKEY_CURRENT_USER. LocalMachine ch a d li u c u hình áp d ng cho t t c các ng i dùng trên máy tính hi n hành. B n có th s d ng ng d n này l u tr các thông tin c-thù- ng- t. Tr ng này t ng ng v i khóa c s HKEY_ d ng nh ng d n cài LOCAL_MACHINE.
- 280 Ch ng 10: L p trình Windows M t khi ã có i t ng RegistryKey, b n có th chuy n xu ng các m c d i b ng m t cú pháp gi ng ng d n, k ó thi t l p và l y các giá tr riêng r . Thông th ng, m t ng d ng ng d n con \Software\CompanyName\ProductName ho c s l u tr các thi t l p trong \Software\CompanyName\ProductName\Category d i m t khóa c s . l y m t i t ng RegistryKey cho m t khóa n m trong, b n hãy s d ng ph ng th c RegistryKey.OpenSubKey. N u mu n m m t khóa ch ghi, b n ph i s d ng thông s tùy ch n True trong ph ng th c OpenSubKey. Dim Key As RegistryKey Key = Registry.LocalMachine.OpenSubKey("Software\MyCompany\MyApp", True) ghi m t giá tr , b n hãy s d ng SetValue; và l y m t giá tr , b n hãy s d ng GetValue. Các giá tr th ng c l y d ng chu i. Dim Value As String ' L y giá tr MyValueName. Value = CType(Key.GetValue("MyValueName"), String) ' L u giá tr MyValueName. Key.SetValue("MyValueName", Value) n có th hi n th c vi c truy xu t Registry trong ng d ng c a b n theo nhi u cách. B n có B th l y t t c các giá tr khi ng d ng b t u và l u chúng khi ng d ng óng, ho c b n có th l y và l u chúng m t l t. L p RegistryData trình bày d i ây s d ng cách ti p c n th hai. M t tham chi u n RegistryKey thích h p c l y khi l p c kh i t o (và khóa c t o n u c n). T ó, th t c Get s l y giá tr t Registry, và th t c Set s ghi giá tr vào Registry. Imports Microsoft.Win32 Public Class RegistryData Private Key As RegistryKey Private Const RegistryPath As String = _ "Software\TestCompany\TestApp\" Public Property DefaultDocumentPath() As String Get ' N u khóa không c tìm th y, ng d n ' startup c a ng d ng c s d ng m c nh. Return CType(Key.GetValue("DefaultDocumentPath", _ Application.StartupPath), String) End Get Set(ByVal Value As String) Key.SetValue("DefaultDocumentPath", Value) End Set End Property Public Sub New() Key = Registry.CurrentUser.OpenSubKey(RegistryPath, True) If Key Is Nothing Then ' Khóa không t n t i. T o nó. Key = Registry.CurrentUser.CreateSubKey(RegistryPath) End If End Sub End Class
- 281 Ch ng 10: L p trình Windows o n mã d i ây trình bày cách s d ng l p RegistryData l y thông tin cho h p tho i Open trong m t ng d ng Windows: Public Class RegistryTestForm Inherits System.Windows.Forms.Form Public RegistryData As New RegistryData() Private Sub cmdTest_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles cmdTest.Click Dim dlgOpen As New OpenFileDialog() ' L y giá tr t Registry. dlgOpen.InitialDirectory = RegistryData.DefaultDocumentPath ' Hi n th h p tho i Open. dlgOpen.ShowDialog() ' Ki m tra xem filename có c ch n hay không. If dlgOpen.FileName = "" Then ' Ng i dùng nh p Cancel. Không làm gì c . Else ' L u tr th m c ch a file ã c ch n . RegistryData.DefaultDocumentPath = _ System.IO.Path.GetDirectoryName(dlgOpen.FileName) End If End Sub End Class 10.2 L y cŸc bi n m“i tr ng ng Windows (ch ng h n, B n mu n l y thông tin t m t bi n môi tr tìm tên máy tính, tên ng i dùng, logon server...). S d ng ph ng th c GetEnvironmentVariable hay GetEnvironmentVariables c a l p System.Environment. H i u hành Windows l u tr các thông tin th ng c s d ng trong các bi n môi tr ng. B n có th truy xu t thông tin này b ng ph ng th c Environment. GetEnvironmentVariable. o n mã d i ây s d ng k thu t này l y tên c a máy tính hi n hành: Dim ComputerName As String ComputerName = Environment.GetEnvironmentVariable("COMPUTERNAME") Các ng d ng có th nh ngh a và thi t l p các bi n môi tr ng c a chúng (b c này th ng c th c hi n b i ch ng trình cài t). B n có th l y b t k bi n môi tr ng nào trong mã .NET, n u b n bi t tên c a nó và s d ng ph ng th c GetEnvironmentVariable. Tuy nhiên, l p Environment không cung c p ph ng th c nào thi t l p bi n môi tr ng. N u c n th c hi n công vi c này, b n nên s d ng Windows Script Host (s c mô t trong m c 10.5). Ngoài ra, b n có th l y t t c các bi n môi tr ng trên máy tính hi n hành b ng ph ng th c GetEnvironmentVariables. K thu t này c s d ng trong o n mã d i ây:
- 282 Ch ng 10: L p trình Windows Dim Variables As IDictionary Variables = Environment.GetEnvironmentVariables() Dim Variable As System.Collections.DictionaryEntry For Each Variable In Variables Dim listItem As New ListViewItem(Variable.Key.ToString()) listItem.SubItems.Add(Variable.Value.ToString()) listSettings.Items.Add(listItem) Next Hình 10-1 Danh sách các bi n môi tr ng 10.3 Th l› cŸc s ki n h i u hšnh B n mu n mã l nh c a b n ph n ng v i các s ki n h th ng Windows, ch ng h n m t thay i c a h th ng hay các thi t l p Desktop. Thêm m t hàm th lý s ki n vào m t trong các s ki n chia s do l p Microsoft.Win32.SystemEvents cung c p. L p SystemEvents cung c p các tham chi u n nhi u s ki n h th ng, bao g m: x y ra khi các thi t l p hi n th (ch ng h n, phân gi i DisplaySettingsChanged màn hình) b thay i. x y ra khi ng i dùng thêm font vào hay g b font kh i h InstalledFontsChanged th ng.
- 283 Ch ng 10: L p trình Windows t quá RAM hi n có. x y ra n u h th ng ang ch y v LowMemory x y ra khi ng i dùng chuy n sang m t ng d ng s d ng b ng màu PaletteChanged khác 256 màu. S ki n này ch x y ra ch 256 màu. x y ra khi ng i dùng t m ng ng (suspend) hay ph c h i (resume) PowerModeChanged h th ng. x y ra khi ng i dùng ng xu t (log-off) hay t t (shut-down) h SessionEnding th ng. Lúc này, các ng d ng khác (bao g m ng d ng .NET c a b n ang th lý s ki n) có th h y b vi c t t máy. B n c ng có th l y m t giá tr cho bi t ng i dùng hi n t i có ang ng xu t hay toàn b h i u hành ang t t hay không. x y ra khi ng i dùng ng xu t hay t t h th ng. Lúc này, b n không SessionEnded th cho d ng vi c t t máy c n a. Tuy nhiên, b n có th l y m t giá tr cho bi t ng i dùng hi n t i có ang ng xu t hay toàn b h i u hành ang t t hay không. x y ra n u ng i dùng thay i th i gian trên ng h h th ng. TimeChanged x y ra khi m t s thích ng i dùng g n thay i (nói cách UserPreferenceChanging khác, m t thay iã c ngh ). x y ra khi m t s thích ng i dùng ã thay i. UserPreferenceChanged ây là các s ki n chia s , ngh a là b n có th thêm m t hàm th lý s ki n mà không c n t o i t ng SystemEvents. Ví d d i ây g n hàm th lý s ki n cho s ki n SessionEnding: AddHandler SystemEvents.SessionEnding, AddressOf SessionEnding B n c n chú ý r ng các callback s ki n di n ra trên m t ti u trình h th ng, không ph i trên ti u trình ng d ng. Do ó, n u mu n c p nh t giao di n ng i dùng ho c thay i m t bi n chia s trong hàm th lý s ki n cho m t s ki n h th ng, b n s c n s d ng các b c ng b hóa ã c trình bày trong ch ng 7 (m c 7.6 và 7.9). Ngoài ra, b n không nên th c hi n b t k công vi c nào t n nhi u th i gian trong hàm th lý s ki n không làm ch m các ng d ng khác ang i s ki n. Ví d d i ây th lý s ki n SessionEnding và h y b vi c t t máy n u nó ng v i m t thao tác ng xu t ng i dùng. th nghi m ví d này, b n ph i biên d ch ch ng trình và ch y nó bên ngoài môi tr ng Microsoft Visual Studio .NET. Public Class ShutdownTestForm Inherits System.Windows.Forms.Form Private Sub ShutdownTestForm_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load AddHandler Microsoft.Win32.SystemEvents.SessionEnding, _ AddressOf SessionEnding End Sub Private Sub SessionEnding(ByVal sender As Object, _ ByVal e As Microsoft.Win32.SessionEndingEventArgs) If e.Reason = Microsoft.Win32.SessionEndReasons.Logoff Then e.Cancel = True MessageBox.Show("Attempting to cancel the logoff operation.") Else
- 284 Ch ng 10: L p trình Windows MessageBox.Show("System is shutting down.") End If End Sub End Class Chú ý r ng n u h th ng ang t t, ng d ng c a b n có m t kho ng th i gian h n ch kt thúc. N u b n nh p OK trên h p thông báo không nhanh, ng d ng c a b n s b t t m t cách ép bu c. 10.4 Truy xu t Desktop vš Start menu B n mu n truy xu t các shortcut hay các file khác trên Desktop hay Start menu. B n có th truy xu t tr c ti p các th m c Start menu và Desktop b ng cách l y các bi n môi tr ng t ng ng. .NET không cung c p l p nào t ng tác v i Desktop hay Start menu. Tuy nhiên, b n có th tìm th y các th m c t ng ng b ng các bi n môi tr ng. Ví d , b n có th l y th m c profile c a ng i dùng hi n t i t bi n môi tr ng USERPROFILE. Th m c này có hai th m c con quan tr ng: \Desktop (l u gi các file c hi n th trên Desktop c a ng i dùng hi n t i) và \Start Menu (l u gi các shortcut c-thù- ng i-dùng trên Start menu). B n c ng có th s d ng bi n môi tr ng ALLUSERSPROFILE l y th m c profile \All Users (có các thi t l p áp d ng cho t t c các ng i dùng). Th m c \All Users ch a th m c \Start Menu v i các shortcut toàn c c ( a s ng d ng u c cài t ó). hi n th các file trên Desktop và m t vài ch Ví d d i ây s d ng c hai cách trên ng trình ã c cài t trên máy tính: Public Module DesktopShortcutTest Public Sub Main() ' L y th m c Desktop c a ng i dùng hi n t i và ' l y th m c Start menu c a t t c ng i dùng. Dim DesktopDir, StartMenuDir As String DesktopDir = _ Environment.GetEnvironmentVariable("USERPROFILE") & _ "\Desktop" StartMenuDir = _ Environment.GetEnvironmentVariable("ALLUSERSPROFILE") & _ "\Start Menu" ' Hi n th tên các file trên Desktop c a ng i dùng hi n t i. Console.WriteLine("These are the files on your desktop:") Dim Dir As New System.IO.DirectoryInfo(DesktopDir) Dim File As System.IO.FileInfo For Each File In Dir.GetFiles() Console.WriteLine(File.Name) Next ' Hi n th các nhóm shortcut mc u tiên trong ' Start menu c a t t c ng i dùng (d i nhóm Programs). Console.WriteLine("These are shortcut groups " & _ "in your Programs menu:")
- 285 Ch ng 10: L p trình Windows Dir = New System.IO.DirectoryInfo(StartMenuDir & "\Programs") Dim ShortcutGroup As System.IO.DirectoryInfo For Each ShortcutGroup In Dir.GetDirectories() Console.WriteLine(ShortcutGroup.Name) Next Console.ReadLine() End Sub End Module K thu t dùng bi n môi tr ng h u ích cho vi c l y thông tin t các ng d n c bi t này, nh ng nó không giúp b n t o shortcut vì shortcut là m t ki u file c bi t (s d ng nh d ng riêng). Tuy nhiên, b n có th t o shortcut b ng Windows Script Host (WSH), s c mô t trong m c 10.5. ng d n là C:\Documents and Th m c profile c a m t ng i dùng th ng có Settings\[username], trong khi th m c profile c a t t c các ng i dùng th ng ng d n là C:\Documents and Settings\All Users. có 10.5 T o shortcut tr˚n Desktop hay Start menu B n mu n thêm m t shortcut m i vào Desktop hay Start menu. S d ng COM Interop truy xu t thành ph n Windows Script Host, thành ph n này cung c p ph ng th c WshShell.CreateShortcut. t o m t file shortcut. B n có th s d ng m t l i g i hàm API (nh Visual Có nhi u cách Basic 6 Setup Toolkit DLL), t o shortcut b ng tay (trong tr ng h p b n mu n hi u rõ nh d ng c a nó), ho c t o m t ch ng trình cài t Windows Installer chuyên bi t. Cách ti p c n d nh t là s d ng thành ph n Windows Script Host, có trong h i u hành Windows. B n có th t ng tác v i thành ph n COM này thông qua COM Interop. B n ch c n thêm m t tham chi u nh trong hình 10-2. Windows Script Host c g n vào Microsoft Windows 98, Windows Me, Windows 2000, Windows XP, và Windows Server 2003 thông qua file wshom.ocx (trong th m c Windows\System32). B n c ng có th download phiên b n m i nh t c a Windows Script Host t i [http://msdn.microsoft.com/scripting]. Windows Script Host c ng có th c s d ng ánh x các a m ng, k t n i n máy in, l y và ch nh s a các bi n môi tr ng, và ch nh s a Registry. B n hãy tham kh o thêm t i [http://msdn.microsoft.com/library/en-us/script56/htm/wsconwhatiswsh.asp]. D dàng t o m t shortcut m i v i Windows Script Host. Tr c h t, b n c n t o i t ng WshShell. K ó, s d ng t p h p WshShell.SpecialFolders ly ng d n c a b t k t h m c nào sau ây: AllUsersDesktop, AllUsersStartMenu, AllUsersPrograms, AllUsersStartup, Desktop, Favorites, Fonts, MyDocuments, NetHood, PrintHood, Programs, Recent, SendTo, StartMenu, Startup, Templates. Mt khi ã có ng d n thích h p, b n có th s d ng ph ng th c t o i t ng IWshShortcut. K ó, c u hình shortcut b ng cách WshShell.CreateShortcut thay i các thu c tính c a i t ng IWshShortcut và g i ph ng th c Save l u k t qu cu i cùng.
- 286 Ch ng 10: L p trình Windows Hình 10-2 Thêm m t tham chi u n Windows Script Host n ng d ng Notepad c a Windows: Ví d d i ây t o m t shortcut Public Module CreateShortcutTest Public Sub Main() 'To i t ng Windows Script Host shell. Dim WshShell As New IWshRuntimeLibrary.WshShell() Dim DesktopDir As String = _ CType(WshShell.SpecialFolders.Item("Desktop"), String) Dim Shortcut As IWshRuntimeLibrary.IWshShortcut ' File shortcut có ph n m r ng ( n) là .lnk Shortcut = CType( _ WshShell.CreateShortcut(DesktopDir & "\NotepadShortcut.lnk"), _ IWshRuntimeLibrary.IWshShortcut) ' Ch nh các thu c tính c b n c a shortcut. Shortcut.TargetPath = "C:\Windows\notepad.exe" Shortcut.WindowStyle = 1 Shortcut.Hotkey = "CTRL+SHIFT+N" Shortcut.Description = "Run Notepad" Shortcut.WorkingDirectory = DesktopDir ' Ch nh icon u tiên trong file notepad.exe. Shortcut.IconLocation = "notepad.exe, 0" ' L u file shortcut. Shortcut.Save() Console.WriteLine("Shortcut created.") Console.ReadLine() End Sub End Module
- 287 Ch ng 10: L p trình Windows B n c ng có th t o shortcut tham chi u n m t website (và chèn nó vào menu Favorites, n u mu n). B n ch c n thay i thu c tính TargetPath nh sau: Shortcut = _ CType(WshShell.CreateShortcut(DesktopDir & "\dvpub.lnk"), _ IWshRuntimeLibrary.IWshShortcut) Shortcut.TargetPath = "http://www.dvpub.com.vn" ' (B qua các c u hình khác.) Shortcut.Save() 10.6 Kh i ch y m t ng d ng Windows v i ph ng th c Main B n mu n kh i ch y m t ng d ng Windows mà không c n startup form. T o m t module v i ph ng th c công khai Main. Hi n th t t c các form m t cách h p th c, ho c s d ng ph ng th c Application.Run. Có nhi u lý do khi n b n mu n kh i ch y m t ng d ng Windows mà không s d ng startup form, bao g m: B n mu n hi n th nhi u form cùng m t lúc. B n c n x lý các i s dòng l nh (s c mô t trong m c 10.7). B n c n quy t nh (b ng mã l nh) form nào s c hi n th vào lúc u. B n mu n ch y ch ng trình phía n n và cung c p m t icon trong khay h th ng cho phép ng i dùng truy xu t giao di n y c a ch ng trình. Trong các tr ng h p này, b n có th kh i ch y ng d ng b ng ph ng th c startup. ây là m t ph ng th c công khai v i tên là Main, b n hãy t nó vào b t k module nào trong d án. Ví d : Public Module StartModule Public Sub Main() ' (B qua mã l nh.) End Sub End Module K ó, b n có th c u hình d án s d ng o n mã này kh i ch y. Nh p ph i vào d án, ch n Properties, và r i chuy n n Common Properties | General. Bên d i Startup Object, ch n Sub Main (xem hình 10-3). Có m t i u quan tr ng c n l u ý v các ph ng th c startup: ngay khi ph ng th c Main hoàn t t vi c th c thi, ng d ng s k t thúc và b t k c a s ang m nào s t ng b óng. Cách x trí này khác v i Visual Basic 6 (gi cho ng d ng v n ch y cho n khi t t c các c as u b óng). Do v y, trong ph ng th c startup, b n nên hi n th các c a s m t cách h p th c, nh trong ví d d i ây: Public Module StartModule Public Sub Main() Dim frm As New Form1()
- 288 Ch ng 10: L p trình Windows ' ShowDialog hi n th m t c a s h p th c, làm gián o n mã l nh. ' Ph ng th c Main không ti p t c cho n khi c a s b óng. frm.ShowDialog() ' Show hi n th m t c a s không h p th c, không làm gián o n ' mã l nh. Ph ng th c Main ti p t c, ng d ng k t thúc s m, ' và c a s t ng b óng. frm.Show() End Sub End Module Hình 10-3 C u hình ph ng th c startup M t tùy ch n khác là s d ng ph ng th c Application.Run t o m t vòng l p thông i p (message loop). Ví d , n u mu n hi n th nhi u c a s cùng m t lúc, b n có th hi n th t t c chúng theo cách không h p th c và r i s d ng Application.Run cài t m t vòng l p thông i p trên c a s chính. Khi c a s này b óng, ng d ng s k t thúc. Public Module StartModule Public Sub Main() Dim frmMain As New MainForm() Dim frmSecondary As New Form1() ' Hi n th c hai c a s theo cách không h p th c. frmMain.Show() frmSecondary.Show() ' Gi cho ng d ng v n ch y cho n khi frmMain b óng. Application.Run(frmMain) End Sub End Module
- 289 Ch ng 10: L p trình Windows B n c ng có th s d ng Application.Run mà không ph i cung c p tên c a s ch y m t vòng l p thông i p cho n khi b n k t thúc nó. Application.Run() Cách ti p c n này h u ích n u b n mu n quy t nh khi nào k t thúc ng d ng. Nó c ng cho phép b n hi n th nhi u c a s và k t thúc ng d ng khi m t trong các c a s này b óng. B n c n s d ng ph ng th c Application.Exit b t c âu trong ch ng trình. o n mã d i ây k t thúc vòng l p thông i p khi m t c a s b óng: Private Sub Form1_Closed(ByVal sender As Object, ByVal e As EventArgs) _ Handles MyBase.Closed Application.Exit() End Sub 10.7 L y c Ÿc i s d’ng l nh B n c n l y các i s dòng l nh dùng th c thi ng d ng. T o th t c Main nh n m t m ng các chu i. M ng này s t ng nh n các is dòng l nh. c s d ng nh t trong các ng d ng Console. Th c t , nhi u ti n i s dòng l nh th ng ích Console yêu c u các i s dòng l nh c p m t l ng thông tin t i thi u nào ó. is c s d ng trong các ng d ng Windows d a-trên-tài-li u dòng l nh còn m nhanh các ch y Microsoft Word file nào ó. Ví d , l nh winword.exe mydoc.doc có th c s d ng và m file mydoc.doc ch trong m t thao tác. l y các i s dòng l nh trong m t ng d ng Windows hay Console, ch ng trình c a b n ph i kh i ch y v i th t c Main. B n c n thay i th t c Main nó nh n m t m ng các chu i: Public Module StartModule Public Sub Main(args() As String) ' (B qua mã l nh.) End Sub End Module M ng args s nh n t t c các i s dòng l nh (theo th t ). Ví d , n u b n th c thi l nh myapp.exe /a /b /c, s có ba chu i trong m ng. Tùy thu c vào ng d ng, th t c a các i s có th quan tr ng ho c không. Ví d d i ây in ra t t c các i s ã c cung c p: Public Module CommandLineArgumentTest Public Sub Main(ByVal args() As String) Console.WriteLine("You supplied " & args.Length().ToString() & _ " parameters.") Dim Argument As String For Each Argument In args Console.WriteLine(Argument) Next End Sub End Module
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Hướng dẫn lập trình giao diện bằng Win CC
24 p | 606 | 221
-
Mô phỏng hiển thị mục tiêu Radar trên màn hình máy tính PC
57 p | 548 | 101
-
QUẢN LÝ SOURCE CODE VỚI TEAM FOUNDATION SEVER VÀ CODEPLEX
29 p | 463 | 70
-
Practical Database Programming With Visual C#.NET- P1
50 p | 153 | 43
-
C# and .NET Framework Lassion 5
9 p | 145 | 30
-
Programming Microsoft SQL Server 2000 with Microsoft Visual Basic .Net - P1
50 p | 136 | 30
-
Bài giảng Cơ sở dữ liệu Foxpro và Visual Foxpro - Bùi Ngọc Huy
46 p | 154 | 25
-
Bài giảng Lập trình ứng dụng kinh tế: Phần 2 - ĐH CNTT&TT
74 p | 65 | 8
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn