Встроенный буфер обмена COM-объектов Excel Excel - PullRequest
0 голосов
/ 23 февраля 2012

Я пишу программы на C \ C ++, встраиваю Excel и обрабатываю его COM-объект.Этот процесс автоматизации работает безупречно для манипулирования листами и получения преимуществ от возможностей Excel.

M проблема заключается в том, что при обработке данных я использую операции копирования / вставки, поэтому, если обработка занимает некоторое время, возможно, что помехи возникают побуфер обмена является общим для запущенных процессов

Я не знаю, есть ли способ приватизировать буфер обмена или любую другую идею, чтобы избежать такой проблемы

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 24 февраля 2012

Вы не можете создать личный буфер обмена и ожидать, что он будет работать с обычными операциями вырезания / копирования / вставки. Вы можете использовать задержки, чтобы избежать столкновения буфера обмена. т. е. после принудительного выполнения операции копирования подождите несколько сотен мсек, прежде чем вставлять.

Кроме того, программное использование буфера обмена считается плохой практикой. Буфер обмена предназначен для удобства пользователя, а не программиста. Смотрите мою любимую цитату на эту тему:

«Программы не должны передавать данные в наш буфер обмена без явного указания от пользователя. ”- Чарльз Петцольд, Программирование Windows 3.1, Microsoft Press, 1992

0 голосов
/ 03 сентября 2014

Я нашел способ сделать это для сценариев PowerShell:

  • Создать запланированное задание, которое вызывает ваш скрипт / программу
  • Установите для него значение «Запускать независимо от того, вошел ли пользователь в систему илиnot "

Когда вы запускаете запланированную задачу, Windows запускает скрипт / программу в фоновом сеансе, который использует свой собственный буфер обмена, не мешая активному сеансу, который у вас есть.

...