Erro testando aplicação serviço com windows 7/64
Enviado: 11 Jun 2013 10:18
Senhores,
Estou tentando executar o programa abaixo (baseado na contrib hbwin) para criar um serviço windows e acontece um erro que não estou identificando, não sei como fazer debug para este tipo de programa como serviço o erro me parece ser na função directory na função srvmain(), alguém pode dar uma luz?
Estou tentando executar o programa abaixo (baseado na contrib hbwin) para criar um serviço windows e acontece um erro que não estou identificando, não sei como fazer debug para este tipo de programa como serviço o erro me parece ser na função directory na função srvmain(), alguém pode dar uma luz?
Código: Selecionar todos
#include "inkey.ch"
#include "setcurs.ch"
#include "error.ch"
#include "achoice.ch"
#include "fileio.ch"
#include "common.ch"
#include "dbinfo.ch"
#include "hbver.ch"
#include "hbdyn.ch"
#include "wvtwin.ch"
#include "hbgtinfo.ch"
#include "hbgtwvg.ch"
#include "wvgparts.ch"
#include "hbcompat.ch"
#include "windows.ch"
#include "hbhrb.ch"
#include "directry.ch"
#include "hbwin.ch"
#define _SERVICE_NAME "Servidor_de_Impressao_PrintWIN"
PROCEDURE WinMain( cMode )
LOCAL nError
LOCAL cMsg
hb_default( @cMode, "S" ) /* NOTE: Must be the default action */
SWITCH Upper( cMode )
CASE "I"
IF win_serviceInstall( _SERVICE_NAME, "PrintWin" )
Alert("O serviço foi instalado com sucesso.")
ELSE
nError := wapi_GetLastError()
cMsg := Space( 128 )
wapi_FormatMessage( ,,,, @cMsg )
Alert("Error installing service: " + hb_ntos( nError ) + " " + cMsg)
ENDIf
EXIT
CASE "D"
IF win_serviceDelete( _SERVICE_NAME )
Alert("O serviço foi deletado.")
ELSE
nError := wapi_GetLastError()
cMsg := Space( 128 )
wapi_FormatMessage( ,,,, @cMsg )
Alert("Error deleting service: " + hb_ntos( nError ) + " " + cMsg)
ENDIf
EXIT
CASE "S"
/* NOTE: Used when starting up as service.
Do not invoke the executable manually with this option */
IF win_serviceStart( _SERVICE_NAME, @SrvMain() )
Alerto("Service has started OK")
ELSE
nError := wapi_GetLastError()
cMsg := Space( 128 )
wapi_FormatMessage( ,,,, @cMsg )
Alert("Service has had some problems: " + hb_ntos( nError ) + " " + cMsg)
ENDIF
EXIT
ENDSWITCH
RETURN
PROCEDURE SrvMain()
LOCAL fhnd := hb_FCreate( hb_dirBase() + "testsvc.out", FC_NORMAL, FO_DENYNONE + FO_WRITE )
LOCAL n := 0
LOCAL cParam
LOCAL cPastaTemp:=Upper(GetEnv("TEMP"))
LOCAL aDir1, aFiles1
LOCAL I
aDir1:=Directory(cPastaTemp+HB_PS()+"MAC_*.PF")
aFiles1:={}
IF Len(aDir1) > 0
AEval(aDir1,{|f| AAdd(aFiles1,{Upper(cPastaTemp+HB_PS()+f[F_NAME]), DTOS(f[F_DATE])+" "+f[F_TIME],Upper(f[F_NAME]),f[F_SIZE]})})
ASort( aFiles1 ,,, {|x,y| y[2] > x[2] } )
ENDIF
FWrite( fhnd, "Startup" + hb_eol() )
DO WHILE win_serviceGetStatus() == WIN_SERVICE_RUNNING
FOR I:=1 TO Len(aFiles1)
FWrite( fhnd, aFiles1[I,1] + hb_eol() )
NEXT
hb_idleSleep( 0.5 )
ENDDO
FWrite( fhnd, "Exiting..." + hb_eol() )
FClose( fhnd )
RETURN
INIT FUNCTION AppSetup()
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
HB_LANGSELECT("PT")
HB_CDPSELECT( "PT850" )
REQUEST DBFCDX
RddSetDefault("DBFCDX")
SETMODE(25,80)
SET CENTURY ON
SET EXCLUSIVE OFF
SET EPOCH TO 1920
CLS
IniciaJanela()
RETURN Nil
FUNCTION IniciaJanela(nLi,nCi,nLf,nCf)
LOCAL oCrt
HB_Default(@nLi,0)
HB_Default(@nCi,0)
HB_Default(@nLf,MaxRow())
HB_Default(@nCf,MaxCol())
cTituloJanela:="Teste Servico 1.0"
HB_gtInfo(HB_GTI_FONTNAME, "Lucida Console")
HB_gtInfo(HB_GTI_ICONRES, "ICON_ASAPREV" ) //CLIENTE.RC
HB_gtInfo(HB_GTI_WINTITLE, cTituloJanela)
HB_gtInfo(HB_GTI_CLOSABLE, .F. )
HB_gtInfo(HB_GTI_CLIPBOARDDATA )
HB_gtInfo(HB_GTI_SELECTCOPY, .T. )
HB_gtInfo(HB_GTI_MOUSESTATUS, 1 )
HB_gtInfo(HB_GTI_ISGRAPHIC, .T. )
HB_gtInfo(HB_GTI_STDERRCON, .T. )
HB_gtInfo(HB_GTI_COMPATBUFFER, .T. )
HB_gtInfo(HB_GTI_SPEC, HB_GTS_WNDSTATE, HB_GTS_WS_MAXIMIZED )
hwg_doevents()
RETURN Nil