Я разрабатываю приложение, которое будет получать данные через COM-порт и должно вставить их в программу Microsoft Office (пока что я работаю с Word, но он будет поддерживать Excel, PowerPoint, ...).
Я подумал, что хорошей идеей было бы скопировать эти данные в буфер обмена, а затем вставить их в любое открытое окно приложения (так, например, приложения LibreOffice и Блокнот работают отлично). Для этого я закодировал:
if (booleanIncomingData)
{
booleanCopy = true;
}
else if (booleanOutcomingData)
{
copy = false;
}
if (copy)
{
Clipboard.SetText(myString);
}
else
{
SendKeys.Send("^V");
SendKeys.Send("{ENTER}");
}
Как я уже сказал, программы LibreOffice и Блокнот работают отлично, но Word и Excel не делают того, что, как я думал, они должны делать (в основном отображают какие-либо данные, а затем переходят к следующей строке).
Кроме того, простой
Clipboard.GetText()ç
не работает (и я чувствую, что он пытается вставить содержимое в активное окно.
Поиск решений Interop.Word через Интернет пока не увенчался успехом. У кого-нибудь есть идея, что я могу сделать или где я должен искать? Должен ли я внедрить надстройку Office вместо обычного приложения Win32?
В случае, если необходима какая-либо другая информация, пожалуйста, не стесняйтесь запрашивать ее.
Сезар.