Вывести сообщение поверх всех окон из свернутого формса.

shurikt
Дата: 05.10.2004 08:56:07
В форме по таймеру делается опрос и при появлении данных на подпись пользователю выдается сообщение. Как сделать чтобы и при свернутом рантайме (Forms 6i) пользователь был оповещен.
shurikt
Дата: 06.10.2004 14:28:52
Неужели никто не подскажет,
Подскажите хотя бы направление где копать?
UK0IAI
Дата: 07.10.2004 11:01:29
мыло послать :-)
shurikt
Дата: 08.10.2004 06:14:29
Думаю нужна подсказка по win_api.
Сделал через "host(net send 127.0.0.1 message)", все правильно работает на Win NT/2k/XP месага выводится поверх всех окон, но почему-то аж через 20 секунд, причем форма на эти 20 секунд вешается. Может кто знает как хотябы побороть эти 20 сек?
Leonid Kudryavtsev
Дата: 08.10.2004 18:11:46
Думаю нужна подсказка по win_api.


Я бы попытался перед Alert'ом максимизировал форму и все.

Если нужно именно WinApi, можеш попытаться использовать след. ф-цию. Только для Client/Server и если NLS_LANG совпадает с ANSI Codepage.

(извини, форматирование все уехало).

PACKAGE BODY TEST IS

user_libhandle ora_ffi.libHandleType;
MsgBox_fhandle ora_ffi.funcHandleType;

PROCEDURE ff_MsgBox(
  fhandle Ora_FFi.funchandletype,
  hWnd pls_integer,
  lpText varchar2,
  lpCaption varchar2,
  uType pls_integer
);
PRAGMA interface( C, ff_MsgBox, 11265 );

PROCEDURE MsgBox(
  hWnd pls_integer,
  lpText varchar2,
  lpCaption varchar2,
  uType pls_integer
) IS
BEGIN
  if_MsgBox( MsgBox_fhandle, hWnd, lpText, lpCaption, uType );
END;

PRAGMA interface( C, ff_MsgBox, 11265 );

PROCEDURE Init IS
BEGIN
	IF Ora_Ffi.Is_Null_Ptr( user_libhandle ) THEN
		futil_libhandle:=ora_ffi.load_library(NULL,'user32.dll');

  	/* MessageBox */
  	MsgBox_fhandle := Ora_Ffi.Register_Function
	    ( futil_libhandle, 'MessageBoxA', Ora_Ffi.C_Std );
	  Ora_Ffi.Register_Parameter
    	( MsgBox_fhandle, Ora_Ffi.C_INT );  
	  Ora_Ffi.Register_Parameter
    	( MsgBox_fhandle, Ora_Ffi.C_CHAR_PTR );  
	  Ora_Ffi.Register_Parameter
    	( MsgBox_fhandle, Ora_Ffi.C_CHAR_PTR );  
	  Ora_Ffi.Register_Parameter
    	( MsgBox_fhandle, Ora_Ffi.C_INT );  
  END IF;
END Init;

BEGIN
  Init;
END;

TEST.MsgBox( 0, 'Hello', 'Hello', 0 );