Página 1 de 1
Alternativa para Run
Enviado: 18 Fev 2014 18:21
por asimoes
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)
Alternativa para Run
Enviado: 18 Fev 2014 22:10
por Toledo
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,
Alternativa para Run
Enviado: 19 Fev 2014 15:09
por asimoes
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.
Alternativa para Run
Enviado: 24 Fev 2014 10:09
por asimoes
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;
Alternativa para Run
Enviado: 01 Mar 2014 19:20
por asimoes
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