При автозагрузке программа запускается,но не загружаются данные сохр.в файлах(только при автозагрузке с Windows),данные сохраненные в реестре загружаются без проблем.При последующем перезапуске программы всё загружается нормально.Можно ли все данные сохранять в реестре?Или есть способ чтобы данные сохр.в файлах успевали загрузиться.(Диал.окно ,всё в WM _INITDIALOG)
1. Можно и в реестре. 2. А вообще - грузиться должны, может быть проблема в логике инициализации, либо что-то мешает читать из файлов, или наоборот, данные не успели записаться при выходе из программы (например, при выгрузке винды). Ну и код покажи, если не жалко и тот, который не жалко, может чего-нибудь и прояснится. Удачи!
zxcc Что-то мне подсказывает, что проблема в том, что Windows (говорю про XP, про других не в курсе), запуская программу, прописанную в автозагрузку (в реестре, по крайней мере), задаёт ей текущую директорию как "C:\Documents and Settings\<Имя пользователя>. А нужные файлы лежат в той же директории, что и программа. Вот и не находит она их. Я это решал, прописывая путь к папке с программой, ещё одним параметром в реестре, что бы, при автозагрузке плясать уже от него. Может есть ещё какой способ...
Everon Спасибо что ответил.Ты как в воду глядел. Но в автозагрузке указан именно прямой путь к папке с программой.Все проблемы именно только при автозагрузке.
Эээ... А мы друг-друга правильно поняли? Я имел ввиду вот что: Если путь к программе, например "C:\Program Files\MyApp\myapp.exe" Путь к файлу настроек "C:\Program Files\MyApp\file.ext" И этот самый "file.ext" открывается как-то так: "CreateFile("file.ext", ..." (без полного пути, с указанием только его имени), то, при автозагрузке, произойдёт попытка открыть файл "C:\Documents and Settings\<Имя пользователя>\file.ext", а не "C:\Program Files\MyApp\file.ext".
по-моему проще и быстрее определить путь к исполняемому файлу, чем писать данные в реестр, а потом их считывать - 2 раза приходится работать со строкой+далеко не самая быстрая работа с реестром, а в моём случае - только один раз получить строку.