![]() |
|
|
#1
|
||||
|
||||
|
Открываю файл
Код:
hFile := OpenFile('log.txt', info, GENERIC_WRITE or OF_SHARE_DENY_NONE);Код:
OK := writefile(hFile, temp, length(temp), bw, 0); Полный код Код:
program Win1;
uses
Windows,
Messages, SysUtils;
var
WndClass: TWndClass;
szAppName: PChar;
WinHandle: hwnd;
info: ofstruct;
bw: cardinal;
hFile: THandle;
Msg: TMsg;
temp: char = 'C';
ok: boolean;
function MyWndProc(hWnd: HWND; Msg: UINT;
wParam: WPARAM; lParam: LPARAM): LResult; stdcall;
var
i: Integer;
begin
case Msg of
WM_DESTROY:
begin
PostQuitMessage(0);
Result := 0;
end;
WM_KEYDOWN:
begin
OK := writefile(hFile, temp, length(temp), bw, 0);
Result := DefWindowProc(hWnd, Msg, wParam, lParam);
end
else
Result := DefWindowProc(hWnd, Msg, wParam, lParam);
end;
end;
begin
szAppName := 'Hello windows.';
WndClass.style := CS_HREDRAW or CS_VREDRAW;
WndClass.lpfnWndProc := @MyWndProc;
WndClass.cbClsExtra := 0;
WndClass.cbWndExtra := 0;
WndClass.hInstance := hInstance;
WndClass.hIcon := LoadIcon(hInstance, IDI_APPLICATION);
WndClass.hCursor := LoadCursor(hInstance, IDC_ARROW);
WndClass.hbrBackground := CreateSolidBrush($FFFFFF);
WndClass.lpszMenuName := nil;
WndClass.lpszClassName := szAppName;
RegisterClass(WndClass);
WinHandle := CreateWindow(WndClass.lpszClassName, 'The Hello Program',
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
0,
0,
hInstance,
nil);
ShowWindow(WinHandle, SW_SHOW);
UpdateWindow(WinHandle);
hFile := OpenFile('log.txt', info, GENERIC_WRITE or OF_SHARE_DENY_NONE);
while GetMessage(Msg, 0, 0, 0) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end. |
|
#2
|
|||
|
|||
|
Функции OpenFile оставлены для совместимости, лучше использовать CreateFile. Тогда файл закроется через CloseHandle и изменения будут сброшены
Последний раз редактировалось ChinYan, 22.05.2012 в 19:48. |
| Этот пользователь сказал Спасибо ChinYan за это полезное сообщение: | ||
Kpyc (22.05.2012)
| ||
|
#3
|
||||
|
||||
|
Вот так еще можно:
Код:
function SaveTextToFile(Filename: string; Text: string): Boolean; var f: HFILE; Size: DWORD; begin Size := Length(Text); f := _lopen(PChar(Filename), OF_READWRITE); _llseek(f, 0, FILE_END); _lwrite(f, @Text[1], Size); _lclose(f); Result := True end; |
|
#4
|
||||
|
||||
|
Цитата:
|
|
#5
|
||||
|
||||
|
Ну и хорошо, что оставлены. Это всегда работает.
|
|
#6
|
||||
|
||||
|
Ну-ну надейся, и не обижайся, когда в следующей версии Винды вдруг перестанет работать.
|