Анализ экранных данных приложение Windows в c#

Вы не показываете нам, как вы объявляете ds1, sc1 и da1, и как вы связываетесь с ними ... Вероятно, между строками sc1.commandtext = ... и da1.Fill ... вам нужно добавить что-то вроде da1.SelectCommand = sc1

sc1.CommandText = "select SUM (Q1+Q2+Q3+Q4+Q5+Q6+Q7+Q8+Q9+Q10+Q11+Q12+Q13+Q14+Q15+Q16+Q17+Q18+Q19+Q20) as TotalScore from  tblModule1 where EmpID = ' " & Session("EmpID") & " '"
da1.SelectCommand = sc1
da1.Fill(ds1)

Очевидно, что команде Select необходимо правильно установить объект подключения.

Возможно, если вы покажете нам весь связанный код, мы сможем вам лучше помочь.

12
задан Tony Boarman 17 December 2008 в 16:22
поделиться

4 ответа

Проверьте ManagedSpy, исходный код обеспечивается. (ссылка)

8
ответ дан 2 December 2019 в 06:27
поделиться

Можно хотеть изучить сообщение WM_GETTEXT. Это может использоваться для чтения текста из других окон - это - архаичная часть Windows API, и если Вы будете в C#, то Вам будет нужно к p/invoke для него.

Проверьте эту страницу для примера выполнения этого в C#.

В основном, Вы сначала FindControlEx () для получения дескриптора окна, которое Вы хотите (подписью).

Во-вторых, Вы рекурсивно перечисляете средства управления на том окне с EnumChildWindows () для нахождения всех дочерних элементов управления окна и всех тех детских детей, пока у Вас нет полной карты целевой формы.

Вот является выбранная часть Теты-ga's превосходным объяснением от Google Answers:

Для получения содержания любого текстового поля или управления полем списка все, в чем мы нуждаемся, это - дескриптор окна. Если Вы уже получили дескриптор окна, затем перемещаются в часть 2 explaination.

ЧАСТЬ 1: Получение дескриптора управления

  • Для получения дескриптора управления мы сначала получаем дескриптор его? s порождают окно. Мы можем сделать это при помощи Win32 FindControlEx () метод. Этот метод берет в подписи окна (такой как 'Калькулятор') и/или его имя класса, и возвратите его дескриптор.
  • После того как у нас есть родительский дескриптор окна, мы можем назвать метод Win32 EnumChildWindows. Этот метод берет в методе обратного вызова, который он называет с дескриптором каждого дочернего элемента управления, который он находит для указанного родителя. Для, например, если мы называем этот метод с дескриптором окна Calculator, это назовет метод обратного вызова с дескриптором управления текстовым полем, и с другой стороны с дескрипторами каждой из кнопок на окне Calculator, и так далее.
  • Так как мы только интересуемся дескриптором управления текстовым полем, мы можем проверить класс окна в методе обратного вызова. Метод Win32 GetClassName () может использоваться для этого. Этот метод берет в дескрипторе окна и предоставляет нам строку, содержащую имя класса. Таким образом, текстовое поле принадлежит?Править? класс, поле списка к классу 'Поля списка' и так далее. После того как Вы решили, что у Вас есть дескриптор для правильного управления, можно считать его содержание.

ЧАСТЬ 2: Чтение контента управления

  • Можно считать в контенте управления при помощи Win32 SendMessage () функцию и использование его для передачи сообщения WM_GETTEXT целевому управлению. Это даст Вам текстовый контент управления. Этот метод будет работать на текстовое поле, кнопку или статический элемент управления.
  • Однако вышеупомянутый подход перестанет работать, при попытке считать содержание поля списка. Для получения содержания поля списка мы должны сначала использовать SendMessage () с сообщением LB_GETCOUNT для получения количества элементов списка. Затем мы должны назвать SendMessage () с сообщением LB_GETTEXT для каждого объекта в списке.
16
ответ дан 2 December 2019 в 06:27
поделиться

"Вы смогли использовать Систему. Диагностика. Процесс. GetProcessesByName ("ProcName") и получение дескриптора главных окон, оттуда Вы могли использовать win32 API для получения дескриптора текстового поля, используемого для отображения текста, который Вы хотите. С дескриптором текстового поля можно получить или установить содержание. Я не свист с win32 API, но с небольшим исследованием, я смог выполнить подобные задачи. Надежда это помогает"

Взятый отсюда: http://www.devnewsgroups.net/group/microsoft.public.dotnet.framework/topic1657.aspx

0
ответ дан 2 December 2019 в 06:27
поделиться

Кодирование Колеса как некоторая статья о том, как он смог получить информацию из Приложения Покера.

Проверка: deconstructing-the-poker-client-1. Это может быть полезно.

0
ответ дан 2 December 2019 в 06:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: