Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

Re: Переименование в Run-Time

Так в том то и дело что я практически не контролирую процесс
сохранение моей программой системных логов, а в любой момент
пользователю может приспичить изменить имя этой папки или вообще ей
место положение на диске а в это время в эту папку могут сохроняется
или загружаться логи и тогда будет error.
Что здесь можно сделать?

Номер выпуска : 5110
Возраст листа : 826 (дней)
Количество подписчиков : 542
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/493930
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Sat, 24 Dec 2005 12:23:25 +0200 (#493930)

 

Ответы:

Значится так, как я это понимаю. Чтобы отследить факт изменения маршрута

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

он будет неправ, если переименовывать будет как-то иначе, нежели твоей
программой.
Досконально проблемой не занимался, поэтому не могу сказать, что это
обобщённое поведение WinXP Pro SP2 или это Far такой, но если Far имеет
открытые файлы в некоем каталоге и им же попытаться этот каталог
переименовать, то (по крайней мере на NTFS) безо всяких ошибок имеем и
старый, и новый каталоги, прри этом в старом остаются открытые файлы, а в
новом все остальные.

--
С уважением, boroda

Номер выпуска : 5113
Возраст листа : 827 (дней)
Количество подписчиков : 542
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/494177
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Шматко А.А. Mon, 26 Dec 2005 10:08:23 +0300 (#494177)

 

Из MSDN:

HANDLE CreateFile(
LPCTSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile
);

...

dwShareMode
[in] Sharing mode of the object (reading, writing, both, or neither). You
cannot request a sharing mode that conflicts with the access mode
specified in a previous open request whose handle is still open. Doing so
would result in a sharing violation (ERROR_SHARING_VIOLATION).

If this parameter is zero and CreateFile succeeds, the object cannot be
shared and cannot be opened again until the handle is closed.

т.е. открывай/создавай лог с dwShareMode==0 и при попытке
переименовать/удалить файл (папку, в которой он лежит) вылезет sharing
violation.
Попробуй, например, переименовать в проводнике(коммандере, фаре, etc)
.doc, открытый в ворде - увидишь как это будет выглядеть

Номер выпуска : 5118
Возраст листа : 827 (дней)
Количество подписчиков : 542
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/494431
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Sun, 25 Dec 2005 20:06:33 +0300 (#494431)

 

Hello All,

Возникла проблема по перехвату сообщений Винды. С помощью

hhkKbdHook
=
SetWindowsHookEx(WH_GETMESSAGE,(HOOKPROC) GetProcAddress(hMyDll,"GetGlobProc"),hMyDll,0);

Ставлю вроде хук на все сообщения от PostMessage. И библиотека работает до тех
пор пока не
нажму Win+D окна сворачиваются и клики мышью по рабочему столу начинают не восприниматься
(воспринимаются только при нажатии по отдельным окнам). Но если каждое окно по
отдельности
сворачивать и кликать по рабочему окну, то все нормально воспринимается. Кстати
Spy++ в
тех же условиях нормально работает! У кого какие предположения? Каким образом
возможно
перехватывание сообщений от SendMessage (Spy++ такие принимает, но как?).
Как можно
перехватывать клики к досовому окну, которые даже Spy++ не перехватывает.
Понимаю, что
задаю слишком специфичные вопросы. Нахожусь в тупиковом положении достаточно
долго :( и
надеюсь на помощь.

Ответить   Fri, 24 Feb 2006 20:52:29 +0300 (#519821)

 

Hello All,

С помощью

hhkKbdHook = SetWindowsHookEx(WH_GETMESSAGE,(HOOKPROC)
GetProcAddress(hMyDll,"GetGlobProc"),hMyDll,0);

ставлю хук на сообщения, поступающие в очередь. Как сделать сабж, может
заменой
WH_GETMESSAGE на WH_CALLWNDPROC? Не помогает вроде :(