Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.04.04;
Скачать: CL | DM;

Вниз

Уникальность окна   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.01 c
15-1263587729
itsme
2010-01-15 23:35
2010.04.04
Получение данных из Poker-клиента


2-1265180253
oleg1963lora
2010-02-03 09:57
2010.04.04
Убрать свойство из класса


2-1264974740
Student :)
2010-02-01 00:52
2010.04.04
GSM модем TCommPortDriver


15-1263301147
tmtlib
2010-01-12 15:59
2010.04.04
Самодельный ассемблер 0.3beta


3-1220246663
Finjy
2008-09-01 09:24
2010.04.04
Закрасить строку в ListView