NOme verdadeiro do arquivo
Moderador: Moderadores
-
Mário Isa
- Usuário Nível 4

- Mensagens: 907
- Registrado em: 07 Jul 2004 13:54
- Localização: Ilha Solteira-sp
NOme verdadeiro do arquivo
Bom dia,
Alguem sabe alguma função que retorne o nome-DOS do arquivo ou da pasta ?
Tipo
origem =
c:\Documents and settings\usuario 1\desktop
retorna =
c:\docume~1\usuari~1\desktop
:xau
Alguem sabe alguma função que retorne o nome-DOS do arquivo ou da pasta ?
Tipo
origem =
c:\Documents and settings\usuario 1\desktop
retorna =
c:\docume~1\usuari~1\desktop
:xau
NOme verdadeiro do arquivo
Editado pela última vez por Toledo em 31 Jul 2012 21:58, em um total de 2 vezes.
Razão: Mensagem editada para corrigir o link que estava quebrado
Razão: Mensagem editada para corrigir o link que estava quebrado
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
NOme verdadeiro do arquivo
Aqui tem dois exemplos de códigos, acho que o segundo está mais condizente com a atual versão do Harbour.
Em Minigui tem _GetShortPathName e na pasta C:\MiniGUI\SAMPLES\BASIC\Paths tem um bom exemplo de uso inclusive de uso de modo sintético, aquele com ... (pontinhos). Deixo aqui o executável com o fonte em anexo, espero que sirva de exemplo.
Código: Selecionar todos
HB_FUNC( WAPI_GETSHORTPATHNAME )
{
void * hLongPath;
DWORD length = 0;
LPCTSTR lpszLongPath = HB_PARSTR( 1, &hLongPath, NULL );
if( lpszLongPath )
{
if( HB_ISBYREF( 2 ) )
{
TCHAR buffer[ HB_PATH_MAX ];
DWORD cchBuffer = ( DWORD ) HB_SIZEOFARRAY( buffer );
LPTSTR lpszShortPath = buffer;
HB_BOOL fSize = HB_ISNUM( 3 );
if( fSize ) /* the size of buffer is limited by user */
{
cchBuffer = ( DWORD ) hb_parnl( 3 );
if( cchBuffer == 0 )
lpszShortPath = NULL;
else if( cchBuffer > ( DWORD ) HB_SIZEOFARRAY( buffer ) )
lpszShortPath = ( LPTSTR ) hb_xgrab( cchBuffer * sizeof( TCHAR )
);
}
length = GetShortPathName( lpszLongPath, lpszShortPath, cchBuffer );
if( !fSize && length > cchBuffer ) /* default buffer size was too
small */
{
cchBuffer = length;
lpszShortPath = ( LPTSTR ) hb_xgrab( cchBuffer * sizeof( TCHAR ) );
length = GetShortPathName( lpszLongPath, lpszShortPath, cchBuffer );
}
hbwapi_SetLastError( GetLastError() );
HB_STORSTRLEN( lpszShortPath, length > cchBuffer ? 0 : length, 2 );
if( lpszShortPath && lpszShortPath != buffer )
hb_xfree( lpszShortPath );
}
else
{
length = GetShortPathName( lpszLongPath, NULL, 0 );
hbwapi_SetLastError( GetLastError() );
}
}
hb_retnl( length );
hb_strfree( hLongPath );
}Código: Selecionar todos
#include "hbwapi.h"
HB_FUNC( WAPI_GETSHORTPATHNAME )
{
#if !defined( HB_OS_WIN_CE )
s_getPathName( GetShortPathName );
#else
{
HB_SIZE nSize = hb_parclen( 1 );
hb_storclen( hb_parc( 1 ), nSize, 2 );
hb_retns( nSize );
}
#endif
}- Anexos
-
Paths.rar- (465.5 KiB) Baixado 90 vezes
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
-
Mário Isa
- Usuário Nível 4

- Mensagens: 907
- Registrado em: 07 Jul 2004 13:54
- Localização: Ilha Solteira-sp
NOme verdadeiro do arquivo
Qual .LIB está a função
_GETSHORTNAME ?
Seria a libminigui.a ?
Esse .a é a .LIB no HMG ?
Mário
:-´
_GETSHORTNAME ?
Seria a libminigui.a ?
Esse .a é a .LIB no HMG ?
Mário
:-´
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
NOme verdadeiro do arquivo
É da Harbour MiniGUI Extended e está em minigui.libQual .LIB está a função
_GETSHORTNAME ?
A lib que HMG possui a função é libhbwin.a e utiliza o WAPI_GETSHORTPATHNAME, eis um exemplo:Esse .a é a .LIB no HMG ?
Código: Selecionar todos
#include <hmg.ch>
Function Main
Local fns:=""
WAPI_GETSHORTPATHNAME("C:\Arquivos de programas\Mozilla Maintenance Service",@fns)
MsgInfo(fns)
ReturnUm clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
-
Mário Isa
- Usuário Nível 4

- Mensagens: 907
- Registrado em: 07 Jul 2004 13:54
- Localização: Ilha Solteira-sp
NOme verdadeiro do arquivo
fui na pasta
c:\hmg
e suas sub's
nao achei nem o hmg.ch
nem o
libhbwin.a
Vc sabe onde conseguir ?
;-*
c:\hmg
e suas sub's
nao achei nem o hmg.ch
nem o
libhbwin.a
Vc sabe onde conseguir ?
;-*
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
NOme verdadeiro do arquivo
Não sei qual é a versão que possui, mas eu achei em: C:\hmg.3.0.41\HARBOUR\lib\win\mingw
Anexei a biblioteca para a sua comidade.
Anexei a biblioteca para a sua comidade.
- Anexos
-
libhbwin.rar- (86.51 KiB) Baixado 82 vezes
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
