Chào buổi tối. Tôi đang tìm phương pháp chia sẻ dữ liệu từ toàn bộ ứng dụng của mình, để các ứng dụng khác có thể đọc dữ liệu đó và sau đó thực hiện bất kỳ thứ gì họ muốn với nó (ví dụ: định dạng để hiển thị, sử dụng nó để ghi nhật ký, v.v.). Dữ liệu cần được cập nhật động trong chính phương thức đó.Chia sẻ hệ thống dữ liệu rộng
WMI đã lưu ý đầu tiên, nhưng sau đó bạn đã gặp phải sự cố ứng dụng tạm dừng trong khi đọc từ WMI. Ngoài ra, tôi đã không có ý tưởng thực sự làm thế nào để thiết lập không gian tên riêng của tôi hoặc các lớp học nếu đó là thậm chí có thể trong Delphi.
Sử dụng tệp là ý tưởng khác, nhưng điều đó có thể khiến đĩa nặng và đó là phương pháp thực sự khủng khiếp để sử dụng cho dữ liệu thời gian thực.
Sử dụng trình điều khiển có thể là lựa chọn tốt nhất, nhưng đó là một chút quá xâm nhập vào người dùng cuối theo ý thích của tôi và tôi không biết nên bắt đầu từ đâu.
WM_COPYDATA sẽ tuyệt vời, nhưng tôi không chắc liệu điều đó có đủ năng động hay không và liệu nó có nặng về tài nguyên hay không.
Sử dụng TCP/IP sẽ là lựa chọn tốt nhất cho mạng, nhưng rõ ràng là ít sử dụng khi chạy trên một hệ thống không có yêu cầu mạng.
Như bạn có thể thấy, tôi đang đấu tranh để tìm ra nơi để đi với điều này. Tôi không muốn đi vào một phương pháp chỉ để thấy rằng nó sẽ không làm việc ra cuối cùng. Về cơ bản, một cái gì đó giống như một dịch vụ, hoặc quá trình nền, để ghi lại dữ liệu và sau đó cho phép các ứng dụng khác đọc dữ liệu đó. Tôi chỉ không chắc chắn về phương pháp. Tôi không muốn độ cao/UAC để làm điều này, nhưng nếu cần thiết, tôi sẽ giải quyết cho nó.
Tôi đang chạy ở Delphi 2010 cho bài tập này.
Bất kỳ ý tưởng nào?
Bạn có thể sử dụng cơ sở dữ liệu không? –
Tôi nghĩ cần làm rõ thêm về "hệ thống rộng". Bạn có cần tương tác với các phiên khác (người dùng đăng nhập vào cùng một hệ thống thông qua "người dùng chuyển đổi", máy tính từ xa, Citrix, v.v.) hay chỉ là thông tin đăng nhập hiện tại? Hoặc hệ thống con VM? Tôi không nghĩ rằng WM_CopyData sẽ làm việc trên các ranh giới như vậy, vì vậy bạn nên làm rõ phạm vi. –
Xin chào Chris. Tôi không cần phải tương tác với hoặc truyền đến các phiên khác hoặc máy ảo theo bất kỳ cách nào. Đó là truyền trong phiên mà tôi đang xem. –