Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 53 • Страница 3 из 3<  1  2  3
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 31.12.2003
Откуда: Жукова
Ray Adams
Цитата:
Ведь есть переменнач Handle - несет HWND твоего окна

Я в душе не чаю, что handle - переменная - я ее в var не объявлял. Просто нашел такую строчку в хелпе. Главное работает!!!
Цитата:
Тут у меня мысль пришла! А может ты просто не знаеш как работать с реестром? Ты скажи , поможем

Как создать запись в реестре я знаю (даже писал как-то в autorun), НО я не знаю как проверить существует ли запись где-то в реестре или нет. У меня в файле хранятся wnd и ti, если это делать в реестре, то 2 записи? и куда можно писать, чтобы не мусорить и есть ли шанс запороть реестр?
stargaz0r Что такое мьютекс?
Таймер только усложнит прогу.
Короче приведенная прога компилится и работает именно ТАК как НАДО. Прошу писать предложения только по упрощению/усовершенствованию



Партнер
 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Цитата:
НО я не знаю как проверить существует ли запись где-то в реестре или нет

Проще простого.
Переменная типа TRegistry имеет такие штуки как ValueExists, а хранить можно скажем всегда в одной и той же ветке.
SOFTWARE\My Company\My Application - соответственно заменив компанию и имя программы на свои. Никакх проблем не будет, а вот с файлом, мало ли что может быть :), реест грубо говоря в памяти висит, файл же всегда на диске.
Хочеш я сделаю простейший пример в исходниках, чтобы понятно было.


 

Member
Статус: Не в сети
Регистрация: 31.12.2003
Откуда: Жукова
Ray Adams
Цитата:
Хочеш я сделаю простейший пример в исходниках, чтобы понятно было

хочу


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
через минуту выложу


 

Member
Статус: Не в сети
Регистрация: 23.09.2003
Откуда: South Ural
Starr
мьютекс проще пареной репы - вот мой код для проверки запуска второй копии программы
function CheckPrevInstance: boolean;
var hMutex: THandle;
begin
result := false;
hMutex := OpenMutex(MUTEX_ALL_ACCESS, false, MutexName);
if hMutex = 0 then
begin
hMutex := CreateMutex(nil, true, MutexName);
if hMutex <> 0 then result := true;
end;
end;

а обработать таймер тоже ничего сложного....

Ray Adams
что ты предлагаешь работать будет, но не есть высокий штиль в программировании :)
прошу писать в реестр только с флагом volatile - не надо мусорить! ;)

_________________
http://stargaz0r.nm.ru
http://people.overclockers.ru/StarGaz0r/files


Последний раз редактировалось stargaz0r 24.05.2004 21:12, всего редактировалось 1 раз.

 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Starr
Забирай
http://cp.people.overclockers.ru/cgi-bi ... =testm.zip
там в сорцах также лежит unit
checkprv.pas он отвечает за создание мутекса и проверки его и также создает глобальную переменную hPrevInst , которая если true то значить есть уже одна такая копия. Все остальное там с коментариями, думаю поймеш как пашет.

Цитата:
что ты предлагаешь работать будет, но не есть высокий штиль в программировании Smile
прошу писать в реестр только с флагом volatile - не надо мусорить!

Если бы ты видел как насилуют реестр другие программы! Мать пере мать, мне пару раз так было дурно! А тут, к примеру если надо сохранять свои настройки в своей ветке реестра, то что плохого если будет там одна переменная лежать? :)


 

Member
Статус: Не в сети
Регистрация: 23.09.2003
Откуда: South Ural
Ray Adams
Цитата:
Если бы ты видел как насилуют реестр другие программы

да видел!
Цитата:
то что плохого если будет там одна переменная лежать

вот так каждый и думает, а в результате в реестре - содом с гоморрой!
ну что стоит создать ключ в реестре с флагом volatile - он просто не сохранится после перезагрузки?

_________________
http://stargaz0r.nm.ru
http://people.overclockers.ru/StarGaz0r/files


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Цитата:
ну что стоит создать ключ в реестре с флагом volatile - он просто не сохранится после перезагрузки?

Согласен, в принципе я дал сорц, а уж как его будут юзать, это дело человека который будет юзать. :)

Добавлено спустя 5 минут, 27 секунд:
Кстати идея интересна, но в пределах одной программы!
Цитата:
Windows NT/2000 or later: All keys created by the function are volatile. The information is stored in memory and is not preserved when the corresponding registry hive is unloaded. For HKEY_LOCAL_MACHINE, this occurs when the system is shut down. For registry keys loaded by the RegLoadKey function, this occurs when the corresponding RegUnloadKey is performed. The RegSaveKey function does not save volatile keys. This flag is ignored for keys that already exist.

А не получится ли так, что при закрытии записи в реестр одной программой, ветка сразу будет уничтожена? :) и Вторая копия ничего не увидит в ней?


 

Member
Статус: Не в сети
Регистрация: 31.12.2003
Откуда: Жукова
Ray Adams, stargaz0r thanks, буду пробовать...
stargaz0r Мне ведь надо ещё переменную ti изменять при каждом повторном запуске и как к этому мутекс прилепить? Но все равно где-нить пригодится - спасибо.


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Starr Ты с примером моим покопайся, там все поймеш. Как раз то, что тебе надо пример и делает. При запускке второй копии, первая закрывается и вторая становится основной и так далее по цепочке.


 

Member
Статус: Не в сети
Регистрация: 31.12.2003
Откуда: Жукова
Ray Adams Хе, тоже мютексы, но с реестром. прикольно. :beer: Завтра буду туда еще свою переменную лепить.


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Starr Без мутексов уже никак, другие методы можно считать полным извратом :)
Зато можеш что угодно и куда угодно лепить :)


 

Member
Статус: Не в сети
Регистрация: 23.09.2003
Откуда: South Ural
Ray Adams
еще можно заводить доп.поток (который будет завершать прогу) и блокировать его EVENT'ом через WaitForSingleObject

_________________
http://stargaz0r.nm.ru
http://people.overclockers.ru/StarGaz0r/files


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 53 • Страница 3 из 3<  1  2  3
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan