Resolvido:
Alessandro, você é o cara!! Muito obrigado, funciona em windows 7, 8 e 10, nestes 2 últimos, testado pelo Alessandro.
#Include "FiveWin.ch"
#include "Directry.ch"
#ifndef XPP
#define HKEY_CLASSES_ROOT 2147483648
#define HKEY_CURRENT_USER 2147483649
#define HKEY_LOCAL_MACHINE 2147483650
#define HKEY_USERS 2147483651
#define HKEY_PERFORMANCE_DATA 2147483652
#define HKEY_CURRENT_CONFIG 2147483653
#define HKEY_DYN_DATA 2147483654
#else
#define HKEY_CLASSES_ROOT 1
#define HKEY_CURRENT_USER 2
#define HKEY_LOCAL_MACHINE 3
#define HKEY_USERS 4
#define HKEY_PERFORMANCE_DATA 5
#define HKEY_CURRENT_CONFIG 6
#define HKEY_DYN_DATA 7
#endif
FUNCTION AddFonte()
INSTFONTS()
RETURN NIL
FUNCTION INSTFONTS()
Local lInstala := .F.
IF .NOT. MsgYesNo( "Instalar Fontes da NF-e no Windows?", ;
"Instalar Fontes da NF-e no Windows " )
RETURN NIL
ENDIF
IF FILE( "C:\INST_NFE\GERAPNFE.EXE" ) .OR. ;
FILE( "C:\INST_NFE\GERAONFE.EXE" ) .OR. ;
FILE( "C:\INST_NFE\GERANFE.EXE" ) // PLENOIND
lInstala := .T.
ENDIF
IF lInstala
IF .NOT. FILE( GetWinDir() + "\Fonts\Code128bWin.ttf" )
// Desligando o UAC do Windows.
oReg := TReg32():Create( HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" )
oReg:Set( "EnableLUA", 0 )
oReg:Close()
// Assim, o windows explorer mostra as fontes
LZCOPYFILE( "C:\INST_NFE\fontes\Code128bWin.ttf", GetWindir() + "\fonts\Code128bWin.ttf")
AddFontResource( "C:\INST_NFE\fontes\Code128bWin.ttf" )
LZCOPYFILE( "C:\INST_NFE\fontes\Code128bWinLarge.ttf", GetWindir() + "\fonts\Code128bWinLarge.ttf")
AddFontResource( "C:\INST_NFE\fontes\Code128bWinLarge.ttf" )
oReg := TReg32():Create( HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" )
oReg:Set( "EnableLUA", 1 )
oReg:Close()
ELSE
/*
oReg := TReg32():Create( HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" )
// Isto nao funcionou em Windows 7 32 bits.
IF oReg:Get( "EnableLUA" ) == 0
oReg:Set( "EnableLUA", 1 )
ENDIF
oReg:Close()
*/
ENDIF
IF FILE( GetWinDir() + "\Fonts\Code128bWin.ttf" )
MsgWait( "As Fontes da NF-e Foram Instalados Com Sucesso..." )
ELSE
MsgWait( "As Fontes da NF-e Nao Foram Instaladas..." )
MsgInfo( "Desligue o Controle de Usuarios do Windows(UAC)", ;
"Desligue o Controle de Usuarios do Windows(UAC)" )
lInstala := .F.
ENDIF
ELSE
MsgWait( "As Fontes da NF-e Nao Foram Instaladas..." )
MsgInfo( "PROGRAMA DA NOTA FISCAL NAO LOCALIZADO...", ;
"PROGRAMA DA NOTA FISCAL NAO LOCALIZADO..." )
lInstala := .F.
ENDIF
lInstala := .F.
RETURN NIL
// Funções AddFontResource e RemoveFontResource, em linguagem C
#pragma BEGINDUMP
#include <windows.h>
#include <hbapi.h>
HB_FUNC ( ADDFONTRESOURCE )
{
hb_retni( AddFontResource( (LPCSTR) hb_parc(1) ) );
}
HB_FUNC ( REMOVEFONTRESOURCE )
{
hb_retl( RemoveFontResource( (LPCSTR) hb_parc(1) ) );
}
#pragma ENDDUMP
// FIM
I LOVE FIVEWIN!