Я работаю с Windows 10 Enterprise, Ranorex 8.1.1 и Microsoft Word 2010. Моя цель - найти все слова в документе (Microsoft Word), которые соответствуют определенному формату: красный и подчеркнутый или красныйи зачеркнутый.Посмотрите некоторые примеры на картинке, которую я прикрепил.Прежде всего, я попытался выполнить это с помощью Ranorex Spy, добавив имя класса в список захвата GPI.Тем не менее, Spy не может обнаружить каждое слово, похоже, он обнаруживает какие-то текстовые блоки, шаблон которых мне неизвестен.Помимо того, что я не определяю слово за словом, я не вижу свойства, включающие подчеркнутый и зачеркнутый, я просто вижу свойство цвета.У Ranorex есть что-то для этого?
Моя альтернатива - использовать некоторый код на C #, адаптированный для Microsoft, как объяснено в msdn.microsoft.com/en-us/library/kw65a0we.aspx и docs.microsoft..com / en-us / dotnet / csharp / guide-guide / interop / how-to-access-office-onterop-objects Мне удалось провести исследования по словам, но не по цвету, подчеркнутым или зачеркнутым свойствам.Для исследования цвета:
[language=csharp]Word.Range auxrng = myDocument.Content;
auxrng.Find.ClearFormatting();
auxrng.Find.Forward = true;
auxrng.Find.Font.ColorIndex=Word.WdColorIndex.wdRed; //red color search.
auxrng.Select(); // It is selecting the whole previous range, no distinction for the first red word
auxrng.Find.Execute("");
auxrng.Find.Font.Underline=Word.WdUnderline.wdUnderlineSingle;
auxrng.Select(); /it is selecting the whole previous range again
auxrng.Find.Execute("");[/language]
До этого кода я написал предыдущий код для связи с Ranorex и Microsoft Word, никаких проблем с этим не было.
[language=csharp]Word.Application wordApp = new Word.ApplicationClass();
Word.Document myDocument = wordApp.Documents.Open(wordComparedFilePath);
wordApp.Visible = true;[/language]
Даже, как я уже сказал, яудалось определить диапазоны, начиная с определенного искомого слова и заканчивая другим словом.Что касается зачеркнутых слов, я не нашел код для их поиска, только это: auxrng.Find.Font.Underline.StrikeThrough Я боюсь, что этот метод возвращает логическое значение, но не изменяет диапазон.Я был бы очень признателен, если бы кто-то мог мне помочь в этом.Если вам нужно больше файлов или информации, спросите меня;)
Спасибо заранее