• 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

VSCommandHandler - Handle Visual Studio Commands

Các công cụ hổ trợ chung

Điều hành viên: vietluyen

Nội qui chuyên mục
- Chỉ nên đưa link download tại website của nhà sản xuất phần mềm nếu như giới thiệu các công cụ mà sử dụng phải trả phí, mang tính chất thương mại.
- Tuyệt đối không được giới thiệu, đưa link cũng như upload lên diễn đàn những file, thông tin liên quan đến crack, keygen, serial...
Hình đại diện của người dùng
tuyen_dt18
Guru
Guru
Bài viết: 256
Ngày tham gia: T.Bảy 19/04/2008 8:46 pm
Đến từ: Hưng Yên
Been thanked: 43 time
Liên hệ:

VSCommandHandler - Handle Visual Studio Commands

Gửi bàigửi bởi tuyen_dt18 » T.Sáu 13/09/2013 5:14 pm

Tên chương trình: VSCommandHandler
Phiên bản: 1.0.0.0
Tác giả: tuyen_dt18
Chức năng: Quản lý các Command của Visual Studio



I. VÀO ĐỀ

Trong số các bạn, không biết đã có ai đã từng làm việc với một Solution có hàng trăng Projects hay chưa ? Và rồi khi các Projects đã được Build ngon lành rồi. Rồi sau đó lỡ nhấn chuột vào menu ReBuild (Solution) một lần nữa, để rồi phải ngồi chờ hàng phút thậm chí là hàng giờ để công việc Build hoàn tất. Có một cách đơn giản là Cancel quá trình Build lại. Nhưng nếu VS đã lỡ clear mất một số projects mà rất nhiều Projects khác tham chiếu đến thì tất nhiên các projects tham chiếu tới cũng phải bị Build lại.
Tôi là người đã từng gặp phải trường hợp này, và ngay sau đó tôi đã đặt ra câu hỏi là tại sao VS không có chức năng hỏi trước khi làm một công việc quan trọng nào đó để chắc chắn người dùng không phải thực hiện nhầm.
Vì thế mà tôi đã quyết định viết một Addin cho VS IDE của tôi (Phiên bản 2008) và hôm nay đăng lên đây để chia sẻ cùng mọi người.

II. VSCommandHandler

1. Chức năng :

VsCommandHandler, như tôi đã nói ở trên, có chức năng quản lý các hành vi của các Command trên môi trường VS IDE. Vì sao lại giám sát dựa trên các commands ? Câu trả lời là : theo tôi được biết thì VS có một tập hợp các Command(s) để thực hiện một công việc gì đó, mỗi hành động sẽ được thực hiện thông qua Command tương ứng (Ví dụ : Thoát khỏi VS = Command :"File.Exit"). Các cách khác như dùng tổ hợp phím tắt hay click chọn một mục trên một Menu thì cuối cùng cũng gọi đến một Command mà thôi.

VsCommandHandler gồm có 2 thành phần chính là "Cấu hình" và "Quản lý các Command dựa trên cấu hình đã thiết lập".
- Phần cấu hình thuộc về giao diện, cho phép người dùng (lập trình viên) thiết lập cách thức mà VsCommandHandler ứng xử đối với một Command. Giao diện như sau :
UI.jpg


Giao diện gồm có 4 phần chính (chi tiết về chức năng và sử dụng tôi sẽ nói sau) :
- Phần 1 : Liệt kê danh sách các commands hiện có của VS để thiết lập cấu hình
- Phần 2 : (Preprocess) để thiết lập một hành động sẽ được thực hiện trước khi Command được thực hiện
- Phần 3 : (Handle command) : Có Vô hiệu hóa Command hay không, hay dựa vào một điều kiện nào đó.
- Phần 4 : (Postprocess) : THiết lập một hành động sẽ được thực hiện ngay sau khi command được thực hiện

- Phần quản lý Commands : Có nhiệm vụ đọc các thiết lập đã được đặt, và thực hiện như đã cấu hình cho các Commands cũng như lưu lại các thiết lập xuống tệp tin để sử dụng lần sau.

2. Cách sử dụng :

a. Cài đặt :
Tôi xin hướng dẫn các bạn cách cài đặt Addin này một cách đơn giản nhất:
Khi VS bắt đầu chạy, nó sẽ duyệt một thư mục ưu tiên để quét các Addins và tải lên (hiển thị lên danh sách Addins trong cửa sổ Addin-Manager ).
Thư mục này thường có tên là Addins và nằm trong một thư mục các nhân của người dùng hiện tại \ [My ] Documents \ Visual Studio 2008. Ví dụ : C:\User\Admin\Documents\Visual Studio 2008\Addins.

Vậy, đơn giản các bạn chỉ cần copy những tệp tin mà tôi đính kèm vào thư mục Addins này thôi. Sau đó các bạn chạy lại VS rồi vào menu Tools\Addin-Manager sẽ thấy Addin này xuất hiện. Đánh dấu (Check) vào mục đó để sử dụng Addin này, sau đó trên menu Tools của VS sẽ xuất hiện mục mới như sau :
ToolsMenu.jpg


b. Cách sử dụng :

Để sử dụng, đơn giản là chúng ta chỉ cấu hình cho các Commands, sau đó chương trình sẽ thực hiện công việc của nó. Để bắt đầu cấu hình, chọn menu Tools \ VsCommandHandler Settings ==> cửa sổ cấu hình của chương trình sẽ xuất hiện như hình bên trên.

Ví dụ, ở đây tôi sẽ cấu hình để mỗi khi tôi thoát khỏi VS thì nó hỏi tôi để xác nhận và nếu tôi chọn No - tức là tôi nhấn nhầm, thì nó sẽ không cho Command này thực thi (Disable).

Đầu tiên, tôi chọn đúng Command tôi cần là "File.Exit" bằng cách chọn Node chính có tên là "File" trên điều khiển TreeView, sau đó mở rộng (Expand) node đó ra và chọn tiếp node con của nó có tên là "Exit".

Sau đó, tôi chuyể sang phần bên phải của cửa sổ để cấu hình.
Vì tôi cần VS hỏi tôi trước khi Command "File.Exit" được thực thi nên tôi phải cấu hình cho mục "Preprocess".
Trong Combobox chứa các hành động, tôi chọn hành động tôi đang cần, đó là "Display Message Box" và điền đầy đủ thông tin cho hành động vào các ô bên dưới cũng như chọn Nút và Biểu tượng sẽ hiển thị trong hộp thoại MessageBox.
Vì tôi muốn VS chỉ thoát khi tôi chọn Yes trên hộp thoại MessageBox nên tôi phải cấu hình tiếp mục "Handle the command".
Trong mục "Handle the command", tại Combobox condition (điều kiện) tôi chọn mục "If Preprocess's return value NOT equal" để chỉ ra rằng chương trình sẽ chỉ vô hiệu hóa Command "File.Exit" khi tôi chọn giá trị khác với giá trị bên dưới. Sau đó tôi phải chọn một giá trị để chương trình so sánh với Giá trị trả về của hành động Preprocess. Vì hành động Preprocess trả về giá trị là MsgBoxResult nên tôi chọn mục MsgBoxResult thay vì Numeric. Và tôi chọn tiếp giá trị cần so sánh là Yes.

Vì tôi không cần thực hiện hành động nào sau khi Command "File.Exit" nên tôi dừng ở đây và nhấn Nút Save.

Kết quả như hình dưới đây :
Config.jpg


Các bạn để ý thấy trong mục Caption cho MessageBox tôi điền là $(APPLICATION.NAME).
Đây là một chuỗi biến môi trường mà khi hành động "Display Message Box" thực thi, nó sẽ thay thế bằng một giá trị thực tương ứng với chuỗi biến đó.
Hiện tại chương trình mới hỗ trợ một số chuỗi biến môi trường. Danh sách các ban có thể xem ở phần "Environment Vars" (Mục màu xanh trong hình trên). Các bạn cũng có thể chọn một biến rồi nhấn nút Copy bên cạnh thay vì phải gõ và các trường văn bản.

Chú ý : Tất cả các trường cấu hình dạng văn bản đều có thể sử dụng biến môi trường.

Ý nghĩa các biến môi trường :
$(APPLICATION.FULLNAME) : Tên đầy đủ của Visual Studio (thường là đường dẫn đầy đủ của tệp tin EXE).
$(APPLICATION.NAME) : Tên của IDE (thường là Microsoft Visual Studio).
$(APPLICATION.SOLUTION.FULLNAME) : Tên của Solution hiện tại (Nếu có solution đang mở).
$(APPLICATION.STATUSBAR.TEXT) : Chuỗi trên thanh trạng thái của IDE.
$(APPLICATION.VERSION) : Phiên bản của IDE (8.0, 9.0, ...)
$(COMMAND.NAME) : Tên của Command hiện tại
$(COMPUTERNAME) : Tên máy tính
$(DATE.DAY), $(DATE.HOUR), ... : Ngày giờ hệ thống
$(USERNAME) : Tên người dùng máy tính hiện tại

c. Chạy thử
Các bạn làm như tôi và chạy thử nhé !
Kết quả sau khi tôi cấu hình và nhấn vào nút Close của cửa sổ VS 2008 là VS đã hỏi tôi để xác nhận việc thoát chương trình :
Handler.jpg


3. Tải về :
Dành cho VS 2008 :
VSCommandHandler.zip
VSCommandHandler for VS 2008
(32.85 KiB) Đã tải 180 lần

Dành cho VS 2012 :
VSCommandHandler.zip
VSCommandHandler for VS 2012
(90.76 KiB) Đã tải 180 lần


Hỏi ý kiến tác giả trước khi sử dụng hoặc trích dẫn rõ nguồn bài viết khi sử dụng.

Quay về “Công cụ”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách