VB.net findwindow / findwindowex - PullRequest
       9

VB.net findwindow / findwindowex

3 голосов
/ 11 октября 2010

Привет всем, я пытаюсь выяснить, как найти метку этого окна, когда имя элемента управления совпадает со всеми другими метками в программе.

WindowsForms10.STATIC.app.0.378734a
WindowsForms10.STATIC.app.0.378734a
WindowsForms10.STATIC.app.0.378734a

Названы все 3 меткитот же самый.Больше всего меня интересует счетчик% выполнения (1%, 2%, 3% и т. Д.)

Как я могу получить значение (используя таймер, конечно) из этого ярлыка, не знаязаголовок этого в любой момент времени?

Любая помощь будет отличной!: о)

Дэвид

Ответы [ 2 ]

0 голосов
/ 21 октября 2010

Не уверен, если вы просто ищете более полный пример кода, но вот, пожалуйста.

Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    'This block of code creates a list of all the labels on my form.
    'Replace this with code to get a list of labels on the form you are scraping
    Dim LblList As New List(Of Label)

    For Each ctrl As Control In Me.Controls
        If TypeOf ctrl Is Label Then
            LblList.Add(CType(ctrl, Label))
        End If
    Next
    'End

    Dim ProgressLblTxt As String = String.Empty
    For Each lbl As Label In LblList
        If lbl.Text.Contains("%") Then 'You could use several different criteria here as mentioned in the previous answer
            ProgressLblTxt = lbl.Text
        End If

        If ProgressLblTxt <> String.Empty Then Exit For
    Next

    'Do something with ProgressLblTxt
    MsgBox(ProgressLblTxt)
End Sub
0 голосов
/ 15 октября 2010

Очевидным ответом будет получить текст от всех трех меток и проверить, какой из них выглядит как «1%», «55%» и т. Д.API слишком громоздок для ваших требований) будет использовать Microsoft UI Automation API .

...