2012-08-09 34 views
6

Tôi đã viết một ứng dụng nhỏ làm bài kiểm tra để xem Excel VSTO có khả năng làm gì. Tuy nhiên, tôi đã gặp phải vấn đề.Bảo quản khay nhớ tạm trên tải VSTO

Khi tôi khởi động Excel, khay nhớ tạm của tôi bị xóa. Tôi đã truy tìm điều này qua Google là một vấn đề với Add-Ins (đặc biệt là COM add-in) mà khi không được khởi tạo chính xác sẽ xóa clipboard tự động. Thật không may cho tôi Tôi không biết làm thế nào để bảo vệ clipboard trong một VSTO và Google không phải là nhiều giúp đỡ. Tôi không gọi bất kỳ chức năng rõ ràng là sẽ xóa clipboard. Điều duy nhất trong hàm ThisAddin là một khối if/else đọc từ một số thuộc tính và thiết lập một số cờ.

Tôi đã nghiền ngẫm ý tưởng sao chép dữ liệu trên khay nhớ tạm vào một số đối tượng và sau đó chỉ thay thế điều này nhưng điều đó có vẻ rất khó khăn và có thể sẽ không hoạt động.

Có ai có thể làm sáng tỏ cách thức/tại sao VSTO của tôi xóa khay nhớ tạm thời khi Excel khởi động và cách tôi có thể khắc phục nó?

CHỈNH SỬA:

Sau khi tìm hiểu sâu hơn một chút Tôi đã sai về việc bổ trợ thử nghiệm người của tôi. Tôi đã tìm ra rằng đó là một trong hai Team Add-In hoặc Adobe Contribute. Với hồ sơ theo dõi của Adobe với những điều này tôi sẽ đi trước và nói nó có lẽ là phần bổ trợ đóng góp. Cảm ơn mọi người vì đã đáp trả bạn. Điều này sẽ dạy tôi cách sử dụng cài đặt Excel không vani để thực hành VSTO.

Tôi sẽ để chủ đề này mở để nhiều người hơn có thể đóng góp vào những lý do có thể khiến VSTO Excel Add-In (hoặc bất kỳ Add-In cho bộ ứng dụng văn phòng) sẽ xóa clipboard khi bắt đầu.

+2

VSTO/Excel sẽ không xóa clipboard chỉ với khối mã IF/ENDIF. Bạn có thể chia sẻ mã nào bạn có ở giữa không? –

+0

@SiddharthRout Bạn chính xác. Không đời nào nó có thể là VSTO thử nghiệm của tôi. Bản cập nhật cung cấp thêm chi tiết. – Thenin

Trả lời

0

Đó là sự điên rồ để cố gắng sao lưu/khôi phục khay nhớ tạm, khi có các loại dữ liệu phức tạp. Và bạn sẽ tạo ra các sự kiện clipboard không mong muốn. Xem câu trả lời trước của tôi ở đây: https://stackoverflow.com/a/2579846/289135

1

Tốt nhất nên xác định trình bổ sung đang truy cập vào khay nhớ tạm và xóa nó.

Nếu đó không phải là tùy chọn, hãy kiểm tra một số câu trả lời trong liên kết của Chris '. Tôi đã thực hiện điều này bằng cách sử dụng API Win32 trước đây. Tôi nghĩ rằng những gì thiếu trong các câu trả lời được liệt kê là các cuộc gọi đến OpenClipboard (http://msdn.microsoft.com/en-us/library/windows/desktop/ms649048%28v=vs.85%29.aspx) và CloseClipboard.

+0

Đọc bản cập nhật. – Thenin

0

Trình bổ sung COM Adobe PDF Maker, mô-đun Bluetooth xóa khay nhớ tạm khi Excel khởi động. Vô hiệu hóa nó để ngăn chặn hành vi này.

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