function NewCreateFileW(lpFileName:PWideChar;
dwDesiredAcces:Cardinal;
dwShareMode:Cardinal;
lpSecurityAttributes:PSecurityAttributes;
dwCreateDisposition:Cardinal;
dwFlagsAndAttributes:Cardinal;
hTemplateFile:Cardinal): cardinal;stdcall;
var
F1:TextFile;
str1:string;
begin
AssignFile(F1,'Setup.cfg');
Reset(F1);
ReadLn(F1,str1);
ReadLn(F1,str1);
ShowMessage(str1);
CloseFile(F1);
begin
MessageBoxW(0,lpFileName,'Создание файла',MB_OK);
result:=TrueCreateFileW(lpFileName,dwDesiredAcces,dwShareMode,lpSecurityAttributes,
dwCreateDisposition,dwFlagsAndAttributes, hTemplateFile);
end;
Чтение файла в Длл...
Нужно из динамической библиотеки открыть файл. Ну собственно функция которая вызывается из библиотеки использует данные из этого файла... данные там меняются... поэтому нужно открывать и закрывать, когда функция вызывается на выполнение. В основной функции библиотеки это делать не стоит, так как библиотека отображается на многие процесы....
вот мой код
Код:
как многие догадались, это перехват вызова функции создания файла какой-то программой...
проблема возникает в том месте, в где коде отмечено жирным. У кого будут каке-то идеи?
возможно, открывать и читать файл стоит попробовать через WinAPI
А какие именно проблемы? Ошибки или просто не так работает? Поподробнее бы...
Спасибо. Я тож над этим думал... но в делфи работать с WinAPI напряг... хотя у меня наверное нету выбора
AssignFile(F1, 'Setup.cfg');
if FileExists('Setup.cfg') then
Append(F1) // Открытие существующего файла
else
Rewrite(F1);
Reset(F1); // Перемещение указателя в начало файла
try
ReadLn(F1,str1); // Чтение файла
ReadLn(F1,str1);
ShowMessage(str1);
finally
CloseFile(F1); // Закрытие файла
end;
[/highlight]
Проблемы могут быть из-за DLL. А вот ошибку мог бы озвучить...
Файл setup.cfg точно лежит в папке с дллкой?
Информации маловато...
Вашингтон спасибо, но код тоже вылетает. А ошибку я увидеть не успеваю. Какую информацию ещё нужно выложить? могу весь код. Наверное буду пробовать с Апи
это как так, ошибку не успеваешь увидеть??? вставь тогда GetLastError, сообщи код ошибки. Ну или с апи пробуй, тоже юмор. =)
Я не в том смысле... Окно так быстро вылетает что неуспеваю рассмотреть, и закрывается моментом та программа, к которой библиотека подключена... С вызовом функции CreateFile, тоже самое
Т.е. с API не катит? Попробуй протестировать просто хук, без каких-либо своих добавлений (т.е. просто тупо сразу вызывай TrueCreateFileW). Будет ли ошибка?
Так всё, конечно же работает, не хочет работать когда я открываю файл в функции-обработчике перехвата... вот этого понять не могу .... пока... ну буду думать, из этого файла функция должна брать параметры, которые туда ложит другая программа, может быть попробовать другой способ передачи ... типа каналы или что-то такое...
ShowMessage() и MessageBox() это слишком круто при перехвате..
Всё. РАзобрался. Проблема была в том, что стоял перехват, на открытие файла. Нужно было снять перехвать и всё путём стало