В некоторыз других программах тот же глюк. причём НЕ ВО ВСЕХ ! Отсальные программы нормально работают....в общем где-то видать что-то неправильно делается...и это как эффект "бомбы с часовым механизмом".
Собственно, процесс закрытия программы.
в основной форме :
Код: Выделить всё
procedure TChange_Volume.FormClose(Sender: TObject; var Action: TCloseAction);
begin
unhookwindowshookex(hookhandle); //убираю ловушку
freelibrary(hinstdll); //освобождаю из памяти мою dll
end;
Код: Выделить всё
procedure DLLEntryPoint(dwReason: DWord);
begin
case dwReason of
DLL_PROCESS_ATTACH:
begin
CreateWin; //регистрирую класс и создаю своё окно
end;
DLL_PROCESS_DETACH:
begin
ReleaseDC(hwndMain,HDC); //получал контекст устр-ва..теперь освобождаю
DestroyWindow(hwndMain);
UnRegisterClass(wc.lpszClassName,HInstance);
end;
end;
end;
Код: Выделить всё
function MyProc(Window: HWnd; AMessage, WParam, LParam: Longint): Longint; stdcall;
begin
//подпрограмма обработки сообщений
case AMessage of
WM_DESTROY:
begin
PostQuitMessage(0);
Result := 0;
end;
wm_Timer:
begin
ShowWindow(hwndMain, SW_HIDE);
end;
else
Result := DefWindowProc(Window, AMessage, WParam, LParam);
end;
end;
Я бессилен здесь......Помогите, пожалуйста. Писал прогу почти месяц, многое изучас просто с нуля (в частности и это создание окна). Могу выслать саму программу, чтобы наглядно посмотреть, в чём проблема. Или хотя бы подскажите советом !!!