Nhận biết các thông số máy tính bằng VBA?

  • Thread starter Bình_OverAC
  • Ngày gửi
B

Bình_OverAC

Over Abnormal / Crazy
14/5/04
846
10
18
42
Nha Trang
Em đang định làm một chương trình dùng chung cho nhiều người dùng thông qua mạng nội bộ. Nhưng hầu hết người dùng đều không muốn nhập username và password, bản thân em cũng không muốn cho họ (nhừng người dùng) biết là mình bị hạn chế quyền sử dụng đối với file này bằng một số thủ tục che dấu bớt các sheet không cho họ biết.
Một ý tưởng em nghĩ tới là đọc tên của họ (account log in vào windows) rồi phân quyền lúc khởi động file. Như vậy sẽ không ai biết là họ bị hạn chế gì!
Ngoài ra em cũng muốn đọc những thông số khác của máy thì mình làm thế nào nhỉ? Mong các bác chỉ giúp.
Chân thành cảm tạ :biggrin:
NguyênBình
 
Khóa học Quản trị dòng tiền
hai2hai

hai2hai

VNUNI Makes a difference
29/4/04
2,032
125
63
50
Hà nội
vnuni.net
1. Cần dịch yêu cầu đó ra tiếng Anh (Ví dụ: "không muốn nhập username và password" --> Dùng account của HĐH Windows ==> "Domain Account"; "đọc những thông số khác của máy" --> "Hardisk Seri*l Number, Network Controller MAC Address, BIOS Info, Mainboard info", v.v...)

2. Google (Chú ý chữ "Sourcode" & "Visual Basic")

Thử đi Bình nhé. Đó là cách tìm hiểu 1 vấn đề nhanh nhất.

Quan trọng nhất là hiểu yêu cầu để dịch ra tiếng anh, thứ 2 thì đơn giản hơn: biết vài chiêu trên internet để kiếm sourcecode

Hope this helps!
 
B

Bình_OverAC

Over Abnormal / Crazy
14/5/04
846
10
18
42
Nha Trang
Hic! em lười nên mới hỏi ở đây xem có bác nào biết rồi thì chỉ giúp ấy mà. Thế này thì không lười được rồi!

Cám ơn anh Hai2hai!
Khi nào tìm được gì đó em sẽ post lên đây để mọi người tham khảo
 
Đào Việt Cường

Đào Việt Cường

Moderator
22/11/05
400
4
18
Khánh Hòa
Dear Nguyên Bình,
-----------------
Mình có cái này không biết, bạn biết chưa: SaveSetting & GetSetting. Toàn bộ thông số bạn có thể lưu trên một sheet, bạn có thế SaveSetting các thông số này vào registry, và có thể đọc các thông số đã save bằng GetSetting,
 
hai2hai

hai2hai

VNUNI Makes a difference
29/4/04
2,032
125
63
50
Hà nội
vnuni.net
Nhưng hầu hết người dùng đều không muốn nhập username và password,

Đào Việt Cường nói:
Dear Nguyên Bình,
-----------------
Mình có cái này không biết, bạn biết chưa: SaveSetting & GetSetting. Toàn bộ thông số bạn có thể lưu trên một sheet, bạn có thế SaveSetting các thông số này vào registry, và có thể đọc các thông số đã save bằng GetSetting,

À, có 2 cách hiểu về yêu cầu này:

1. Không cần form login --> người nào login vào domain thì dùng ngay account đó để phân quyền. Cách này khá phức tạp với newbie và chắc ý của Bình trong requirement đưa ra không phải ý này.

2. Có form login, với Username + Pws + Lựa chọn Save Password --> Lần sau vào chương trình thì không cần đăng nhập nữa :).

Để thực hiện được trường hợp 2 thì thiết nghĩ quá dễ rồi. SaveSetting & GetSetting là 2 lệnh chuẩn của VB cũng như VBA để làm việc với Registry nhưng nếu làm việc với Registry mà chỉ dùng 2 lệnh trên thôi thì vẫn còn hạn chế. Nếu làm việc với Registry 1 cách pro hơn, hãy dùng vài lệnh APIs. Google "Registry.Cls" or "Registry.bas" for more detail.

Tuy nhiên, không nên cái gì cũng nhét vào registry vì nếu chúng ta cứ add vô đó thì càng ngày registry càng phình to ra. Mà mọi người biết rồi đấy, khi khởi động windows, nó có đọc registry không? Tại sao khi các ứng dụng cài ngày càng nhiều thì máy chạy ngày càng chậm??? Vì thế đừng lạm dụng Registry nhiều quá nhé. Nhất là cứ ghi bừa vào registry rồi xóa file, ứng dụng đi thì nghiễm nhiên những phần ghi vào Registry đó trở thành rác của hệ thống (Và lại mất công chạy các công cụ kiểu như Registry Clearing tools.)

Vì thế, flat files là giải pháp thay thế hợp lý (INI, DAT, TXT,...) và hiện nay XML đang là sự lựa chọn số 1 (Chuẩn Internet, Support Unicode, Có cấu trúc, v.v...).
 
Sửa lần cuối:
Đào Việt Cường

Đào Việt Cường

Moderator
22/11/05
400
4
18
Khánh Hòa
Dear hai2hai,
-------------
Hì em biết rồi mà, em cũng chỉ đút vào đấy những cái gì thực sự cần thiết thôi. Nếu em nói câu 1, bác nói câu 2, Nguyên Bình nói câu 3, mem WKT nói câu 4... và cứ thế... mọi người nói câu của mọi người thì vấn để càng được mở rộng ra.
Cũng giống Nguyên Bình, em cũng (hì!!! hì!!!!) lười đọc sách lắm! Chỉ thích "chỉ tận tay ray tận trán" thôi! Tiện đây em hỏi bác cái này:
Làm việc với VBA, lần đầu tiên ta phải thiết lập Level Security là Low để không phải xuất hiện "Cảnh báo Macro" (nôm na là vậy). Em muốn thay đổi thông số này trong Registry thì dùng hàm nào. Có mấy dòng thôi mà, bác viết cho em và mọi người đi!
 
hai2hai

hai2hai

VNUNI Makes a difference
29/4/04
2,032
125
63
50
Hà nội
vnuni.net
Tham khảo TuanKTCDCN nhé :), Bộ cài A-Excel ở đường Link chữ ký dưới đây đã tự động đặt Security Level = Low luôn rồi đấy.

Có rất nhiều cách để khám phá việc này.

1. Search registry (Tốt nhất là biết đoạn Registry của MS Excel nó nằm ở đâu để tìm cho nhanh)

2. Dùng RegMon.exe (Registry Monitor Tool --> Công cụ theo dõi được mọi actions truy cập vào registry - có thể theo dõi từng ứng dụng).

Sorry, anh đang bận chút lên không thể làm hộ em việc này được. Em có thể call Tuân để copy đoạn reg đó nhé. Với lại style của anh là ... chỉ cách làm hơn là cung cấp cái cụ thể :)
 
Sửa lần cuối:
B

Bình_OverAC

Over Abnormal / Crazy
14/5/04
846
10
18
42
Nha Trang
hai2hai nói:
1. Không cần form login --> người nào login vào domain thì dùng ngay account đó để phân quyền. Cách này khá phức tạp với newbie và chắc ý của Bình trong requirement đưa ra không phải ý này.
anh Hai2hai khổ một nổi đây chính là ý của em. Vậy mình có cách nào xử vụ này cho hiệu quả không anh
 
hai2hai

hai2hai

VNUNI Makes a difference
29/4/04
2,032
125
63
50
Hà nội
vnuni.net
I. UserManagement module
1. Get list of groups/accounts exist in domain.
2. Setup system permissions
3. Assign permissions

II. System startup procedures
1. Get current account info (username, pws)
2. Lookup permissions for this account
3. Process loging on using account info w/ his/her permissions

That's it.

Còn làm như thế nào, đó lại là vấn đề lập trình mất rồi. Search "Active Directory", "NT Domain Account", v.v...
 
B

Bình_OverAC

Over Abnormal / Crazy
14/5/04
846
10
18
42
Nha Trang
Ơ re ka, Ơ re ka

Báo cáo bác hai2hai em đã tìm ra cái đó là gì rồi.

Đơn giản chỉ là Application.Username --> chán thế đơn giản thể này mà em lại tìm lung tung
 
V

Van_VKT

Guest
21/6/06
8
0
0
Sai Gon
Excel lấy được tất cả thông số của máy tính, kể cả username, domain login, số của mainboard, số hiệu CPU.v.v... Nói chung là lấy được tuốt tuồn tuột. Nếu để đảm bảo an toàn, bạn phải kiểm tra username và domain logon. Nếu kẻ gian biết được bạn không kiểm tra domain logon, hắn sẽ tạo một username trên máy cá nhân có tên trùng với username của bạn để tha hồ mà xem file đó có gì.

Mình có code để lấy các thông số đó nhưng chưa biết post lên đây như thế nào. Nếu bạn còn muốn dùng thì email cho mình, mình sẽ gởi cho.
 
V

Van_VKT

Guest
21/6/06
8
0
0
Sai Gon
Bình_OverAC nói:
Cảm ơn bác nhiều. Bác có thể gởi cho em, em sẽ giúp bác đưa lên đây cho mọi người cùng tham khảo.
email: donguyenbinh@gmail.com


Mình đã gởi code cho Bình rồi, Bình có nhận được chưa hay có vấn đề gì trục trặc trong code đó ko mà sao ko thấy Bình Upload?
 

Xem nhiều

Webketoan Zalo OA