Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
15-1262156476
прохожий
2009-12-30 10:01
2010.04.04
домен продлить


15-1263421885
Германн
2010-01-14 01:31
2010.04.04
ShowModal - remix


2-1262859120
chiskin
2010-01-07 13:12
2010.04.04
Excel в Ini-файл


4-1232106768
Evgengold
2009-01-16 14:52
2010.04.04
Таймер


3-1222293772
ЮЮ
2008-09-25 02:02
2010.04.04
MS SQL. inserted и deleted таблицы в InstedOfUpdate триггере





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский