Вопрос : Потребность найти кнопку на применении и monotor будет текстом

Я имею using VB6sp6, котор могут обнаружить местонахождение кнопку и контролировать ее будет изменение текста/титра Using звоноки API. Теперь я задан работу с уточнением моей программы к VB.NET (я использую VS2008). Я преобразовывал мой app к VB.NET using чудодей в VS2008 но по мере того как вы можете изображение как раз учя VB.NET я немного запутанный. Я люблю понять он делать по-разному и учит по мере того как я буду собственной личностью taught.

Let я помин кнопка находится на применении, котор мне нужно контролировать, и посылается флаг раз который застегивает после того как он был в том положении на 90 секунд. Я мог сделать это в VB6 но могу; кажется, что получает t его работая в

I am VB.NET способным найти окно но неспособно для того чтобы получить прошлый указывает и находит кнопку на Application.

Here я имею до тех пор;

Here будет функции API, котор я использую.
Public объявляет псевдоним «FindWindowA» свободы «user32.dll» FindWindow функции (lpClassName ByVal как lpWindowName шнура, ByVal как шнур) по мере того как Integer

Public объявляет свободу «user32.dll» EnumWindows функции (lpEnumFunc ByVal как lParam интежера, ByVal как интежер) по мере того как Integer

Public объявляет свободу «user32.dll» EnumChildWindows функции (ByVal hWndParent как lpEnumFunc интежера, ByVal как lParam интежера, ByVal как интежер) по мере того как Integer


This я использую для находить окно….
'Set что окну для того чтобы искать
vHwnd =

I FindWindow («ClassName», vbNullString) могут поставить больше если потребность но…, то Я думаю как только я получаю прошлый, котор вышеуказанные получают после этого звоноку на EnumChildWindows с следующий code
During преобразование они дали мне это предупреждение во время подъема и быть честна я имейте тревогу получить мой разум вокруг
принципиальной схемы… " добавьте уполномоченного представителя для функция FIND_RELEASE

Public AddressOf EnumChildProc " () как Boolean
Dim FoundRelease как Object
Dim OKButtonHwnd как Object
Dim iий по мере того как Object
HwndCount = 0 'выступает counter
FoundReleaseButton = ложные 'комплекты застегивает к не found
RetVal = EnumChildWindows (VoipHwnd, AddressOf EnumChildProc, CInt (0))
'Looks
для
For iего = 0 кнопки заново соединять (кнопки владением) к HwndCount - английская язык 1
'Search для того чтобы искать button
If заново соединять среднее (AppClass (I), 1, 6) = «кнопка» и среднее (AppText (I), 1, 9) = «заново соединяет» и FoundRelease = ложно после этого 'ищет для одобренного button
OKButtonHwnd = AppHwnd (I) 'магазин handle
FoundRelease = поистине 'сальто i
Dim FlashForm found
End If
Next кнопки переключателя как frmFlash
If FoundRelease = поистине Then
FoundReleaseButton = True
timHold.Enabled = True
ChangeTrayIcon (я, (Me.Image3.Image))exHoldTime
'Seeing
If = CDbl («90») Then
ChangeTrayIcon (я, (Me.Image4.Image))
FlashForm = новое
FlashForm.ShowDialog ()/>FlashForm = Nothing
End If
Exit Function
End If
End Function


любые помогает или указатели к мне нужно прочитать были бы большими… ища теперь для несколько days.


class=

Ответ : Потребность найти кнопку на применении и monotor будет текстом

Первая вещь, котор я порекомендовал бы двигает ваше обслуживание выполнителя вне петли.  Вам реально только нужно создавать то раз.  В зависимости от вашей вставкы, вы можете мочь сделать им перемеююый типа, то static который поделен всеми примерами этого типа или приватного члена если каждому типу нужен свой собственный бассеин резьбы.  Любая дорога, покуда вы не закроете обслуживание вниз, вы будете повторно использовать те резьбы вместо производить накладные расходы начинать их каждое время.  Если множественным звонокам к этому методу будет нужно побежать одновременно, то двиньте творение обслуживания выполнителя назад в метод, но вне петли.

Она также смотрит как вы создает 10 бассеинов резьбы, с 10 резьбами каждым для того чтобы обрабатывать каждый заказ.  Кодий, котор я прикреплялся переработано для того чтобы обрабатывать все обеспечило заказы с 10 резьбами.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
общественный тип ClearDownService {
    приватные резьбы int;
    приватное executorService ExecutorService;

    общественное ClearDownService (резьбы int) {
        если (резьбы < 1="">= 1. «);
        }
        this.threads = резьбы;
        this.executorService = Executors.newFixedThreadPool (this.threads);
    }

    // iий доработало ваше Кодего итерирования для того чтобы принять вы имеет некоторое собрание предметов OrderModel
    // что вы используете для того чтобы получить iterator.  В виду того что вы используете JDK 1.5+, свой очень больше
    // четкое и ремонтопригодное использовать Generics вместо бросать возвращение iterator.next ().
    // iий также доработало ваше Кодего итерирования для использования встроенной стройки foreach.
    checkOrders публики пустые (заказы собрания) {
        // выступает защелка с иничиативой для общего количества заказов, вместо резьб.
        //, котор это обеспечивает все заказы обработаны прежде чем этот метод завершает
        окончательное startLatch CountDownLatch = новое CountDownLatch (orders.size ());

        // в виду того что вы используете JDK 1.5+, более легкий для того чтобы прочитать и поддержать если вы используете generics
        // и встроенное foreach вместо iterator
        для (окончательная модель OrderModel: заказы) {
            executorService.submit (новое Runnable () {
                побежали свободное пространство публики, котор () {
                    попытка {
                        Календар теперь = Calendar.getInstance (TimeZone.getTimeZone («Европ/Лондон»));
                        если (isEligibleForClearDown, то (модель, master.getCleardownFields () .getClearDownReqFrom (), теперь)) {
                            если (model.getOrderFields () .hasParentOrderId, то ()) {
                                // добавляет все заказы ребенка к окончательному результату
                                results.add (модель);
                            } еще {
                                // добавляет заказы родителя к списку родителя
                                parentOrders.add (модель);
                            }
                        }
                    } окончательно {
                        // кладя это в окончательно блок обеспечивает он получает вызванным независимо
                        // всех исключений происходят в теле метода
                        startLatch.countDown ();
                    }
                }
            });
        }
        попытка {
            startLatch.await (); ожидание // для всех предметов к вполне обрабатывать
        } задвижка (InterruptedException e) {
            LOGGER.error («прерванное исключение пока ждущ защелку комплекса предпусковых операций до end.");
        }
    }
}
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us