• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Lấy đường dẫn của những thư mục đặc biệt

Các thủ thuật về hệ thống, thư mục, tập tin và mạng
User avatar
truongphu
VIP
VIP
Posts: 4766
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 519 times

Lấy đường dẫn của những thư mục đặc biệt

Postby truongphu » Thu 27/03/2008 9:07 am

Thủ thuật: Lấy đường dẫn của những thư mục đặc biệt
Tác giả: truongphu
Mô tả: Lấy đường dẫn của những thư mục đặc biệt


Nhóm Hệ thống. Mong muốn thay thế bài cũ cùng tên trong Visual Basic Library

Tính đơn giản của VB Script là không thể phủ nhận, code vừa đơn giản lại khỏi khai các hàm API. Tuy nhiên sau khi dùng, nên giải phóng các biến. Các thư mục đặc biệt có hằng của VBS như sau:

Code: Select all

  1. Hằng  Thư mục đặc biệt
  2.    
  3. &H1&    Internet Explorer
  4. &H2&    Programs
  5. &H3&    Control Panel
  6. &H4&    Printers and Faxes
  7. &H5&    My Documents
  8. &H6&    Favorites
  9. &H7&    Startup
  10. &H8&    My Recent Documents
  11. &H9&    SendTo
  12. &Ha&    Recycle Bin
  13. &Hb&    Start Menu
  14. &Hd&    My Music
  15. &He&    My Videos
  16. &H10&   Desktop
  17. &H11&   My Computer
  18. &H12&   My Network Places
  19. &H13&   NetHood
  20. &H14&   Fonts
  21. &H15&   Templates
  22. &H16&   All Users Start Menu
  23. &H17&   All Users Programs
  24. &H18&   All Users Startup
  25. &H19&   All Users Desktop
  26. &H1a&   Application Data
  27. &H1b&   PrintHood
  28. &H1c&   Local Settings\Application Data
  29. &H19&   All Users Favorites
  30. &H20&   Local Settings\ Temporary Internet Files
  31. &H21&   Cookies
  32. &H22&   Local Settings\History
  33. &H23&   All Users Application Data
  34. &H24&   Windows
  35. &H25&   System32
  36. &H26&   Program Files
  37. &H27&   My Pictures
  38. &H28&   User Profile
  39. &H2b&   Common Files
  40. &H2e&   All Users Templates
  41. &H2f&   Administrative Tools
  42. &H31&   Network Connections


Code: Select all

  1. Dim KhoiTao, ThuMuc, ÐôiTuong
  2. 'Code: Truong Phu
  3. 'Thu muc cân tìm: Startup
  4. Private Sub Form_Load()
  5. Set KhoiTao = CreateObject("Shell.Application")
  6. Set ThuMuc = KhoiTao.Namespace(&H7&)
  7. Set ÐôiTuong = ThuMuc.Self
  8. MsgBox ÐôiTuong.Path
  9. End Sub


- Đoạn code trên, bạn khỏi phát biểu Option Explicit vì không có biến thay đổi
- Trước khi End Sub, bạn có thể giải phóng 1 biến quan trọng:
Set KhoiTao = Nothing
hoặc thêm cả: Set ThuMuc = Nothing
Set ÐôiTuong = Nothing


o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

luungoc2005
Thành viên năng nổ
Thành viên năng nổ
Posts: 62
Joined: Tue 17/01/2006 9:43 am
Location: Where Bill Gates beats the penguin just like the Batman
Contact:

Re: Lấy đường dẫn của những thư mục đặc biệt

Postby luungoc2005 » Thu 27/03/2008 4:58 pm

Bạn cũng có thể sử dụng hàm Environ để làm việc này (tuy nhiên không lấy được đường dẫn của nhiều thư mục đến vậy :D
Ví dụ: Common Files:

Code: Select all

  1. Environ(3)


Thử nghiệm hàm Environ: thêm 1 listbox vào form

Code: Select all

  1. Private Sub Form_Load()
  2. For i = 1 To 34
  3. List1.AddItem Environ(i)
  4. Next i
  5. End Sub
  6.  


Dùng hàm Environ còn có thể lấy được một số thông tin về hệ thống ;)
A forum post should be like a skirt. Long enough to cover the subject material, but short enough to keep things interesting.

User avatar
truongphu
VIP
VIP
Posts: 4766
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 519 times

Re: Lấy đường dẫn của những thư mục đặc biệt

Postby truongphu » Thu 27/03/2008 7:28 pm

thank you: luungoc2005
Thật sự tôi rất thích code ngắn gọn nhưng hiệu quả cao.
chỉ 3 dòng code của bạn cũng bổ sung nhiều điều (vì tôi chưa biết)
có điều, vd "HOMEDRIVE =C:" thì i trong Environ(i) là bao nhiêu?
(không lẽ giờ phải dò tìm?, thay từng trị i?)
mong bạn cung cấp thêm các giá trị của Environ(i) thì tốt quá
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

User avatar
truongphu
VIP
VIP
Posts: 4766
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 519 times

Re: Lấy đường dẫn của những thư mục đặc biệt

Postby truongphu » Fri 28/03/2008 5:25 am

đểnh đoảng quá, chỉ viết là xong:
List1.AddItem Environ(i) & " Sô " & i
:D
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

User avatar
anhtuyenbk
Guru
Guru
Posts: 1311
Joined: Thu 22/09/2005 4:12 pm
Location: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 times

Re: Lấy đường dẫn của những thư mục đặc biệt

Postby anhtuyenbk » Fri 28/03/2008 8:46 am

Mấy cái Environ để vậy khó nhớ quá.
Nếu mà tạo nó thành một Enum thì dễ xài hơn nhiều.
Kiếm cơm cho qua ngày tháng
https://www.facebook.com/pinduphongpisenchinhhang

User avatar
truongphu
VIP
VIP
Posts: 4766
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 519 times

Lấy UserName, ComputerName, WinDir, TempDir,... chỉ 1 dòng c

Postby truongphu » Fri 28/03/2008 7:55 pm

Thủ thuật: Lấy UserName, ComputerName, WinDir, TempDir
Tác giả: thuongall">thuongall
Mô tả: hàm Environ
---------------------------------------------------

Code: Select all

  1. Private Sub Form_Load()
  2. MsgBox Environ("USERNAME")
  3. MsgBox Environ("COMPUTERNAME")
  4. MsgBox Environ("WINDIR")
  5. MsgBox Environ("TEMP")
  6. ' Tương tự, còn nhiều thứ khác với hàm Environ, các bạn tự khám phá nhé!
  7. End Sub


PS: Để khám phá các bạn mở Command Prompt lên và gõ vào chữ: SET. Tha hồ khám phá đi, hehe...
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

User avatar
truongphu
VIP
VIP
Posts: 4766
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 519 times

Re: Lấy đường dẫn của những thư mục đặc biệt

Postby truongphu » Tue 10/06/2008 4:31 pm

Một số lý do không tìm thấy thư mục, máy báo lỗi. tôi bổ sung hàm sau:

Code: Select all

  1. Private Function SpecialPath() As String
  2. On Error GoTo Lôi
  3. Set KhoiTao = CreateObject("Shell.Application")
  4. For i = 0 To 60
  5. Set ThuMuc = KhoiTao.Namespace(i).Self
  6. a = a & i & " " & ThuMuc.Path & vbCrLf
  7. Next
  8. SpecialPath = a
  9. Exit Function
  10. Lôi:
  11. a = a & i & " " & "Không tìm thây Path" & vbCrLf
  12. Resume Next
  13. End Function
  14.  
  15. Private Sub Form_Load()
  16. Text1 = SpecialPath  'MultiLine = True, ScrollBar = 2 - Vertical
  17. End Sub
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

ngaydautiendihoc
Thành viên danh dự
Thành viên danh dự
Posts: 261
Joined: Mon 12/03/2007 10:55 pm
Location: Hà Giang
Has thanked: 2 times
Been thanked: 1 time
Contact:

Re: Lấy đường dẫn của những thư mục đặc biệt

Postby ngaydautiendihoc » Mon 07/07/2008 2:36 pm

Hôm nay mới thấy bài này, hay quá nhưng không biết áp dụng bên .Net thế nào.
Ai rành vụ này chỉ bảo thêm đi.

MrB
Thành viên tích cực
Thành viên tích cực
Posts: 158
Joined: Wed 26/03/2008 7:03 pm
Been thanked: 1 time

Re: Lấy đường dẫn của những thư mục đặc biệt

Postby MrB » Mon 07/07/2008 2:38 pm

Code: Select all

  1. Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

ngaydautiendihoc
Thành viên danh dự
Thành viên danh dự
Posts: 261
Joined: Mon 12/03/2007 10:55 pm
Location: Hà Giang
Has thanked: 2 times
Been thanked: 1 time
Contact:

Re: Lấy đường dẫn của những thư mục đặc biệt

Postby ngaydautiendihoc » Mon 07/07/2008 2:52 pm

Wow, .Net tởm thật.


Return to “[VB] Hệ thống - Tập tin - Thư mục và Mạng”

Who is online

Users browsing this forum: No registered users and 0 guests