Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.
Moderador: Moderadores
asimoes
Colaborador
Mensagens: 4919 Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ
Mensagem
por asimoes » 18 Fev 2014 18:21
Toledo estou com o problema abaixo para postar, não sei o que é:
Forbidden
You don't have permission to access /forum/posting.php on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Deve ser o código em c com 21 linhas. estou colocando dentro de
Anexei o arquivo.
Ex. de uso:
cArq1:="arq1.jpg"
cArq2:="arq2.jpg"
cArqSaida:='"'+"/C COPY /B "+cArq1+" "+cArq2+'"'
COPY_ARQ(&cArqSaida)
Anexos
COPY_ARQ.PRG
Run Alternativo (703 Bytes) Baixado 90 vezes
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Toledo
Administrador
Mensagens: 3133 Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:
Mensagem
por Toledo » 18 Fev 2014 22:10
asimoes escreveu: Toledo estou com o problema abaixo para postar, não sei o que é
Alexandre, já abri um chamado no suporte do meu servidor para ver o que está ocorrendo.
Obrigado pelo aviso.
Abraços,
asimoes
Colaborador
Mensagens: 4919 Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ
Mensagem
por asimoes » 19 Fev 2014 15:09
Pessoal,
Na função CopyArq tem como concatenar o "/C " na variável lpCommand ?
cArqSaida:='"'+"/C COPY /B "+cArq1+" "+cArq2+'"'
COPY_ARQ(&cArqSaida)
ShExecInfo.lpParameters = lpCommand;
Teria que fazer uma conversão de tipo char/string não achei um exemplo legal.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
asimoes
Colaborador
Mensagens: 4919 Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ
Mensagem
por asimoes » 24 Fev 2014 10:09
Na função copy_arq:
Para concatenar o comando /C estou fazendo assim:
Código: Selecionar todos
char cfinal[500];
LPCTSTR lpCommand = (LPTSTR) hb_parc( 1 );
char scmd[] = "/C ";
snprintf(cfinal, 500, "%s%s", scmd, lpCommand);
//para ver a concatenação.
MessageBox( NULL, cfinal, TEXT( HB_I_("TESTE final") ), MB_ICONEXCLAMATION );
.
.
ShExecInfo.lpParameters = cfinal;
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
asimoes
Colaborador
Mensagens: 4919 Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ
Mensagem
por asimoes » 01 Mar 2014 19:20
Uma nova versão da função:
Código: Selecionar todos
#pragma BEGINDUMP
#pragma comment( lib, "shell32.lib" )
#include "hbapi.h"
#include <windows.h>
HB_FUNC( COPY_ARQ )
{
SHELLEXECUTEINFO ShExecInfo = {0};
LPCTSTR lpCommand = (LPTSTR) hb_parc( 1 );
BOOL bRetorno = FALSE;
int lenlpCommand = hb_parclen( 1 ) + 4;
char * cfinalCommand = ( char * ) hb_xgrab( hb_parclen( 1 ) + 4 );
hb_snprintf(cfinalCommand, lenlpCommand, "%s%s", "/C ", lpCommand);
//MessageBox( NULL, cfinalCommand, TEXT( HB_I_("TESTE final") ), MB_ICONASTERISK );
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = NULL;
ShExecInfo.lpFile = "cmd.exe";
ShExecInfo.lpParameters = cfinalCommand;
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_HIDE;
ShExecInfo.hInstApp = NULL;
ShellExecuteEx(&ShExecInfo);
if(ShExecInfo.hProcess !=NULL)
{
if (hb_parl(2))
{
//Aguarda até que a execução tenha sido concluída.
WaitForSingleObject(ShExecInfo.hProcess,INFINITE);
CloseHandle(ShExecInfo.hProcess);
}
bRetorno = TRUE;
}
else
{
//Retorna .F.
bRetorno = FALSE;
}
hb_xfree( cfinalCommand );
hb_retl(bRetorno);
}
#pragma ENDDUMP
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)