Форум: "Прочее";
Текущий архив: 2010.04.04;
Скачать: [xml.tar.bz2];
ВнизУникальность окна Найти похожие ветки
← →
brother © (2010-01-14 05:17) [0]Эта информация к размышлению, не более.
По какому признаку лучше искать окно?...
hwndPrev: HWND;
...
hwndPrev:= FindWindow(Pchar("TAutoCopy"), nil);
или
hwndPrev:= FindWindow(nil, Pchar("Авто Копировщик"));
if hwndPrev <> 0 then
...
мне просто интересно...
← →
cwl © (2010-01-14 05:23) [1]
(Pchar("TAutoCopy"), Pchar("Авто Копировщик"));
?
сам понимаешь - хреновые методы
← →
brother © (2010-01-14 05:31) [2]не понял, о чем речь?
← →
cwl © (2010-01-14 05:37) [3]я имею ввиду
hwndPrev:= FindWindow(Pchar("TAutoCopy"), Pchar("Авто Копировщик"));
// или я не понял, о чем речь? %>
зачем?
← →
brother © (2010-01-14 06:11) [4]или - или я имел ввиду...
← →
Anatoly Podgoretsky © (2010-01-14 09:12) [5]> brother (14.01.2010 05:31:02) [2]
О том, что это не уникально
← →
brother © (2010-01-14 09:14) [6]> О том, что это не уникально
а, так и я об этом! но, что более приемлемо?)
← →
Anatoly Podgoretsky © (2010-01-14 09:55) [7]> brother (14.01.2010 09:14:06) [6]
Уникален hwnd но именно его ты и хочешь получить.
Значит надо ввести уникально в заголовок, как обычно это делается X - Y
← →
brother © (2010-01-14 10:00) [8]> Значит надо ввести уникально в заголовок
я имел ввиду из тех, что предложено...
← →
Anatoly Podgoretsky © (2010-01-14 10:11) [9]> brother (14.01.2010 10:00:08) [8]
Ты не понимаешь написаного? Если написано, что нет, значит нет
← →
brother © (2010-01-14 10:18) [10]> Ты не понимаешь написаного?
Я понимаю
> Если написано, что нет, значит нет
где? О_о
← →
Anatoly Podgoretsky © (2010-01-14 11:35) [11]> brother (14.01.2010 10:18:10) [10]
Ну хотя бы в [5]
Также можешь перебрать все окна, только как ты отличишь одно "TAutoCopy", "Авто Копировщик" от другого "TAutoCopy", "Авто Копировщик"
← →
brother © (2010-01-14 11:37) [12]данный код использую для проверки на 2й запуск приложения...
← →
Демо © (2010-01-14 11:45) [13]
> brother © (14.01.10 11:37) [12]
> данный код использую для проверки на 2й запуск приложения.
> ..
Таких решений как собак нерезаных в интернете.
В пивной разве о тривиальном разговаривают?
← →
Демо © (2010-01-14 11:45) [14]Это в песочницу вопрос - там запросто ответят.
← →
brother © (2010-01-14 11:47) [15]> Это в песочницу вопрос - там запросто ответят.
это вопрос для теории, что, где, как? ну, и дело вкуса...
← →
brother © (2010-01-14 11:48) [16]добавим вероятности:
что вероятнее "TAutoCopy" или "Авто Копировщик" ?
← →
clickmaker © (2010-01-14 11:50) [17]> что вероятнее "TAutoCopy" или "Авто Копировщик" ?
TMainForm )
← →
brother © (2010-01-14 11:51) [18]тогда уж TForm1)
← →
Anatoly Podgoretsky © (2010-01-14 11:55) [19]
> добавим вероятности:
Уменьшим, ищи сразу по обеим показателям, надеюсь что поиск по точному совпадению обеих параметров.
← →
Anatoly Podgoretsky © (2010-01-14 12:00) [20]> brother (14.01.2010 11:37:12) [12]
Для проверки на запуск используй Mutex
← →
brother © (2010-01-14 12:03) [21]> Для проверки на запуск используй Mutex
[12] это я например)
← →
Anatoly Podgoretsky © (2010-01-14 14:14) [22]Зачем например, делай точно.
← →
cwl © (2010-01-14 14:43) [23]Братец, используй для этого Mutex
← →
Dimka Maslov © (2010-01-14 14:59) [24]В качестве информации к размышлению советую прочитать про GetWindowLong и SetWindowLong, которые таки позволят отличить одно окно от другого в случае одинаковости классов и/или заголовков.
← →
Игорь Шевченко © (2010-01-14 15:00) [25]
> В качестве информации к размышлению советую прочитать про
> GetWindowLong и SetWindowLong, которые таки позволят отличить
> одно окно от другого в случае одинаковости классов и/или
> заголовков.
В общем случае не позволят, а вот Getprop/Setprop - позволят
← →
Anatoly Podgoretsky © (2010-01-14 15:18) [26]> Игорь Шевченко (14.01.2010 15:00:25) [25]
Вроде тоже нет, если не предпринимать особых мер и не надо про атом только
← →
Dimka Maslov © (2010-01-14 15:21) [27][В частном случае, ]когда лицо насоздававшее окон самостоятельно занимается их последующим поиском, использование GWL_USERDATA позволяет а) по завершении создания окна (путём переопределения метода CreateWnd) задать окну некий уникальный идентификатор б) при поиске проанализировав это значение отличать одно окно от другого.
← →
Игорь Шевченко © (2010-01-14 15:37) [28]Anatoly Podgoretsky © (14.01.10 15:18) [26]
Delphi как-то работает
← →
Anatoly Podgoretsky © (2010-01-14 15:52) [29]С принятием особых мер, например
> hData
> Identifies data to be copied to the property list. The data
> handle can identify any value useful to the application.
Но речь то о том, что без принятия особых мер, как в вопросе. Но тут еще одно но, что бы восспользоваться этим надо иметь hwnd, что он хочет получить через FindWindow
← →
Игорь Шевченко © (2010-01-14 19:26) [30]
> он хочет получить через FindWindow
Слона-то я и не приметил
← →
Anatoly Podgoretsky © (2010-01-14 19:55) [31]> Игорь Шевченко (14.01.2010 19:26:30) [30]
а другое заметил, что это он хочет использовать как факт повторного запуска, самый паршивый и ненадежный метод, можно сказать, что не рабочий.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2010.04.04;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.006 c