Я делаю приложение (XE6, Firemonkey) для синхронизации файлов между общей папкой и компьютером/s. Это приложение проверяет каждые x часов, если есть новые файлы для синхронизации, и запускается при запуске Windows.Приложение can not access file при запуске
Я могу сделать все, мое приложение запускается при запуске, и это синхронизация, если только я начинаю ее. Whem запускается при запуске приложения, это дает мне исключение «EINOUTERROR» - отказ в доступе к файлам. При запуске приложение читает небольшой .txt-файл, чтобы настроить его самостоятельно (расположение общих папок, скорость синхронизации и т. Д.), Я предполагаю, что, поскольку его окна, запускающие приложение, запускают его без привилегий для чтения .txt, но даже после изменения разрешений .txt для полного контроля над всеми, он дает ту же ошибку.
Файл открыт код:
AssignFile(myFile,'Dados.txt');
if FileExists('Dados.txt') then
Append(myFile)
else
Rewrite(myFile);
FileMode := fmOpenRead;
Reset(myFile);
Код размещения приложения на запускаемых программ:
procedure TSyncM.RunOnStartup(const sCmdLine: string; bRunOnce: boolean; Remove: Boolean) ;
var sKey: string;
Section: string;
const ApplicationTitle = 'GEN4Sync';
begin
if (bRunOnce) then
sKey := 'Once'
else
sKey := '';
Section := 'Software\Microsoft\Windows\CurrentVersion\Run' + sKey + #0;
with TRegIniFile.Create('') do
try
RootKey := HKEY_CURRENT_USER;
if Remove then
DeleteKey(Section, ApplicationTitle)
else
WriteString(Section, ApplicationTitle, sCmdLine) ;
finally
Free;
end;
end;
Если я закомментировать кусок кода, который вызывает чтение, что .txt моих запусков приложений и выполняется хорошо, но я не хочу настраивать его каждый раз. Заранее спасибо
Да, используя полный путь, решена проблема. Благодарю. Говоря более современную технику ввода-вывода, что вы предлагаете? (не спрашивая код, просто голова для меня, чтобы искать и учиться :)) Я довольно новичок в Firemonkey и Delphi, и что древний Pascal I/O был первым, что появилось в google. –
Что за файл? –
Обычный текст. Ну, у меня есть набор общих папок, и мне нужно убедиться, что на некоторых компьютерах хранится обновленная копия этих общих папок. У меня есть класс, который хранит эту информацию, сначала я хотел сериализовать этот класс и хранить его в файле, как в java, но мне было сложно в delphi. И поскольку это мой небольшой проект, я старался сохранить его простым и небольшим временем. Поэтому я написал процедуру, которая читает класс и записывает его на txt, затем я интерпретирую его при запуске приложения. –