2017-06-09 27 views
5

Tôi đang tìm cách tiếp cận để đăng ký các bộ đếm hiệu suất dựa trên XML mà không cần sử dụng lodctr thực thi.Đăng ký bộ đếm hiệu năng mà không cần lodctr

Trong khi this questionthis question đã cung cấp một số thông tin chi tiết cho vấn đề, không có giải pháp nào phù hợp.

Chức năng LoadPerfCounterTextStrings dường như làm các trick, nhưng dường như không để mất XML như là đầu vào (ví dụ: /M luận cho lodctr lệnh). Hàm này sẽ gọi lệnh lodctr nhưng sẽ lưu lập trình viên gọi số lodctr.exe theo chương trình.

Có một cách tiếp cận để gọi chức năng này (hoặc bất kỳ khác) mà sẽ hành xử như thể:

lodctr.exe /M:xmlfile.xml 

?

Chỉ một thông tin bổ sung mà LoadPerfCounterTextStrings có sẵn trong Windows XP, tuy nhiên, API mới (perflib) chỉ khả dụng sau Vista. Tôi đang sử dụng V2.

+0

Tôi không nghĩ có API cho điều đó. Tôi nghĩ rằng nó được thực hiện trực tiếp trong lodctr.exe thật không may (nếu bạn nhìn trực tiếp trong exe, bạn sẽ thấy tất cả các chuỗi đăng ký cần thiết cho công việc: "_V2Providers", v.v.) –

Trả lời

1

Tôi không nghĩ rằng điều đó là có thể, ít nhất là với cách được tài liệu hóa. Nếu bạn muốn tìm và sử dụng một số cách không có giấy tờ, nó có thể bị hỏng với một số gói hệ điều hành/dịch vụ hoặc với các phiên bản tương lai của Windows.

Đặt cược tốt nhất là bạn gọi LODCTRUNLODCTR để cài đặt/đăng ký bộ đếm hiệu suất trong quá trình của bạn. Vì đây là những công cụ dòng lệnh, chúng có thể sẽ hiển thị với cửa sổ giao diện lệnh (màu đen). Bạn có thể ẩn với chuyển hướng đầu vào/đầu ra với đường ống, do đó cửa sổ giao diện điều khiển không xuất hiện. Lưu ý rằng những công cụ này không mất nhiều thời gian hoặc nguồn lực, vì vậy hãy gọi những EXE này từ quá trình của bạn sẽ không mất nhiều thời gian (người dùng sẽ không nhận thấy, và thậm chí sẽ không thể dễ dàng tìm ra với một số công cụ giám sát quy trình).

Lưu ý rằng đăng ký/hủy đăng ký PC là một hoạt động hiếm - do đó Microsoft sẽ không bận tâm để cung cấp cho bạn một API Windows dễ gọi.

Các vấn đề liên quan