Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > A call to an OS function failed.


Автор: JS2 27.5.2010, 11:12
Столкнулся с необъяснимым: A call to an OS function failed. За 5 лет работы системы на компьютерах 3000-3500 организаций ничего подобного не было. Ошибка появилась на Win2000 причем EurekaLog ее не залогировала. Эмулировать ее появление на ПК с аналогичной конфигурацией не удалось. С чем это может быть связано и куда копать, чтобы ее исправить.

Автор: Guedda 27.5.2010, 11:48
Ошибка в 17 строке. 

Автор: Proxin 27.5.2010, 11:48
рискну предположить, что вы использовали какую-то api-функцию, которой в win2000 нет.

Автор: CodeMonkey 27.5.2010, 11:54
http://www.delphikingdom.com/asp/listerrors.asp?ID=395, может чего интересное найдёте.

Автор: JS2 27.5.2010, 12:28
проблема как мне кажется связана с доступом к десктопу, поскольку при блокировке винда переключается на другой.

заменит

Код

function TMouse.GetCursorPos: TPoint;
begin
Win32Check(Windows.GetCursorPos(Result))
end;


на

Код

function TMouse.GetCursorPos: TPoint;
var
CurDesktop: HDESK;
begin
CurDesktop := OpenInputDesktop(0, false, DESKTOP_READOBJECTS);
try
if CurDesktop > 0 then
Win32Check(Windows.GetCursorPos(Result))
else
Result := Point(0, 0);
finally
CloseDesktop(CurDesktop);
end;
end;


надеюсь это поможет

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)