Página 2 de 3
Re: Bloqueio Online
Enviado: 23 Mar 2010 16:02
por rochinha
Amiguinho,
Passe uma borracha em tudo e use o seguinte:
Código: Selecionar todos
function main()
local cURL := "http://www.5volution.com.br/revisao.txt"
local oHyperlink
oHyperlink := TOLEAuto():New( "Microsoft.XmlHttp" )
oHyperlink:Open( "GET", cURL, .F. )
oHyperlink:Send( "" )
cResponseText := oHyperlink:ResponseText
oHyperlink:end()
? cResponseText
Caso seu Harbour/xHarbour não tenha TOLEAuto():New() use CreateObject(). Procure exemplos referentes.
Após compilar e rodar diga-me o que apareceu.
Re: Bloqueio Online
Enviado: 23 Mar 2010 18:18
por fladimir
Bom vamos lá....
Passei uma borracha no Teste.PRG e coloquei conforme o codigo postado pelo colega...
Após isto compilei e não apresentou nenhum erro de compilação
Ao executar apresentou a seguinte mensagem:
Código: Selecionar todos
┌───────────────────────────────────────────────────────┐
│ Error Microsoft.XmlHttp/3 DISP_E_MEMBERNOTFOUND: END │
│ Arguments: () │
│ │
│ Quit │
└───────────────────────────────────────────────────────┘
Apos dar um ENTER no QUIT apareceu:
Código: Selecionar todos
C:\teste>TESTE
Error Microsoft.XmlHttp/3 DISP_E_MEMBERNOTFOUND: END Arguments: ()
Error at ...: TOLEAUTO:END(0) in Module: source\rtl\win32ole.prg
Called from : MAIN(9) in Module: TESTE.PRG
c:\teste>
Acredito q agora foi, só não entendi direito a mensagem de erro....
Grato e Sucesso!!! :)Pos
Re: Bloqueio Online
Enviado: 24 Mar 2010 00:18
por marcos.gurupi
Caro, deixa eu explicar como uso. Quando o usuario acessa pela primeira vez no dia o sistema e tendo internet ativa o sistema vai ateh o meu servidor mysql e verifica a data do banco de dados e assume como a data do dia, isso eh claro para q nenhum engracadinho fique voltando a data, depois ele vai ateh o bando de dados mysql pesquisando pelo cnpj e verifica tb a data do reset retornando a mesma quando n for igual a q estava cadastrada, sendo assim eu posso bloqueiar ou liberar qualquer cliente q tenha internet daqui do meu note. Foi a forma mais facil de fazer, sem usar ftp ou http. Obrigado.
Marcos Roberto.
Re: Bloqueio Online
Enviado: 24 Mar 2010 07:40
por rochinha
Amiguinho,
Voce precisará atualizar o XML em sua máquina, geralmente nossas máquinas possuem os arquivos msxml3.dll, msxml4.dll, etc que nos permitem interagir com o objetos de acesso ao protocolo XML.
http://www.microsoft.com/downloads/deta ... laylang=en
Neste link voce pode baixar e atualizar estes módulos em sua máquina.
A intenção é auxiliá-lo a baixar um arquivo da internet e posteriormente verificar e manusear seu conteudo.
Vamos tentando.
Re: Bloqueio Online
Enviado: 24 Mar 2010 08:16
por fladimir
Marcos obrigado pela colaboração....
Rochinha, eu baixei atualizei e rodei o Teste.EXE e apresentou o mesmo erro, o q pode ainda estar acontecendo... ? Vou testar depois em outro computador e depois posto os resultados pra ver se tb ocorre, mas antes vou instalar a versao mais recente do MSXML.
Obrigado
Sucesso!!!
Re: Bloqueio Online
Enviado: 24 Mar 2010 12:46
por rochinha
Amiguinho,
Em minha máquina também tenho instalado o SOAP Toolkit 3 talvez seja o caso de voce instalá-lo.
Em todo caso caso consiga compilar normalmente e executá-lo voce obterá como resposta duas linhas de texto, Revisao e Release.
Como voce usa xHarbour pode tentar usar a TUrl(). Só não posto algum exemplo pois não encontro o famigerado. Mas com a TUrl() que é mais compativel com sua versão voce consiga o mesmo.
Re: Bloqueio Online
Enviado: 24 Mar 2010 18:08
por rochinha
Amiguinhos,
Recebi de um companheiro um exemplo usando a TIP.LIB para xHarbour:
Código: Selecionar todos
Function Teste_rochinha()
oHttp:= TIpClientHttp():new( "http://www.5volution.com.br/revisao.txt" )
// Connect to the HTTP server
If .NOT. oHttp:open()
? "Connection error:", oHttp:lastErrorMessage()
QUIT
EndIf
cHtml := oHttp:readAll()
oHttp:close()
? "Teste Rochinha.","","O Resultado é : " + cHtml
Return NIL
Fiz uma pequenina alteração para ficar mais puro.
Como me foi informado é necessário que esta biblioteca esteja posicionada antes das bibliotecas sqllib e fivewin caso seja usado, eu recomendo que posicione ela como a primeira de todas já que suas funções devem suprimir funções identicas em outras bibliotecas.
O nome Teste_rochinha() não foi colocado por mim, ok. Hehehe!
O desejo é que esta explanação funcione para podermos dar os passos vindouros.
Re: Bloqueio Online
Enviado: 24 Mar 2010 23:47
por fladimir
Rochinha e nobres colegas...
Fiz conforme a última postagem e deu certo, compilou sem erros e ao rodar tb deu certo...
Segue abaixo o resultado:
Código: Selecionar todos
Teste Rochinha. O Resultado é : Revisao: 220310
Release: 2500
E agora qual a idéia do colega em cima disto?
Grato e Sucesso!!!
:)Pos
Re: Bloqueio Online
Enviado: 25 Mar 2010 19:09
por rochinha
Amiguinho,
Com base nisto seria a hora de voce criar o arquivo com as informações de liberação onde contenha um identificador do cliente como CNPJ ou CPF e a critica de liberação
Dentro de seu sistema voce deve possuir uma variavel que irá conter o CNPJ ou CPF do cliente que será usado para criticar os dados de seu arquivo de liberação.
Caso não esteja liberado, uma rotina deverá direcionar o cliente para uma tela que lhe informe o problema. ou até usando o método que postamos, baixe o boleto de pagamento e imprima o na impressora do cliente, ao invés de aguardar que o mesmo lhe contacte ou entre em seu site para fazer isto.
Como sua liberação é on-line, voce deve colocar os arquivo referentes a cada cliente no seu site a cada situação.
Re: Bloqueio Online
Enviado: 29 Mar 2010 19:56
por fladimir
Uma dúvida, suponhamos q tenha um cliente ótimo CNPJ X e o mesmo paga em dia e consequentemente o sistema estar sempre liberado, se alguém sem querer ou querendo cadastre um CNPJ igual em outro cliente o mesmo irá pegar a liberação do BOM cliente e ficar sempre liberado, digo isto pq em casos de clientes q utilizem o sistema para controle administrativo q não precisem de ECF ou q não emitam vendas, não tera necessidade de constar o CNPJ no documento, ou seja, poderá ser utilizada de má fé...
Meu raciocínio tem lógica? Estou meio paranóico? Existe alguma idéia para o caso, caso o mesmo tenha lógica ao ver dos colegas ?
Grato e Sucesso!!!
:)Pos
Re: Bloqueio Online
Enviado: 30 Mar 2010 04:22
por rochinha
Amiguinho,
O arquivo que estará na internet deverá ter o CNPJ como nome e extensão .TXT.
Seu sistema deverá saber qual arquivo pesquisar através do uso do CNPJ gravado em algum arquivo de configuração de seu sistema.
O arquivo de configuração de seu sistema terá: CNPJ, razão social, etc.
O arquivo que esta na internet com a liberação/travamento terá dentro dele as variaveis com CNPJ, Razão e Liberação.
Caso o cliente descubra o CNPJ de outro cliente seu e queira usar o mesmo para isto, o seu sistema deverá criatica se CNPJ e Razão social são os mesmos, senão não libera.
Para que não aconteça, problemas, principalmente com acentuação, grave e critique as informações sempre em maiusculas e sem acentos.
Se quizer dar mais segurança, grave as informações criptografadas e acrescente uma variável com senha.
Esta senha voce envia por email, e ela será exclusiva do cliente.
Ao verificar o registro o cliente deverá ser indagado desta senha.
Resumindo:
CNPJ
Razão Social
Liberação
Senha
Serão suas variáveis e voce criptografa, salva no arquivo, sobe pra internet e em seu sistema voce baixa o arquivo, descriptografa as variáveis e critica as mesmas.
Bloqueio Online
Enviado: 01 Nov 2018 14:41
por juniorcamilo
Boa tarde !!1
amigos estava vendo a respeito desse tópico!!
como faz para enviar um arquivo para o ftp?(pois aki diz o dwload!!)
Bloqueio Online
Enviado: 02 Nov 2018 02:37
por rochinha
Amiguinhos,
Mais ou menos assim:
Código: Selecionar todos
/*
*
* Geração de arquivos cm conteúdos e envio para pasta FTP online
*
*/
#define CRLF chr(13)+chr(10)
function main
//
Request DBFCDX
RddRegister('DBFCDX',1)
RddSetDefault('DBFCDX')
Request OrdKeyNo
Request OrdKeyCount
set date brit
//
cRC := [] + strtran(dtoc(date()),"/","") + [-] + strzero(nRevisao,5) + [] + CRLF
errhandle = fcreate( "revisao.txt" )
fwrite( errhandle, cRC )
fclose( errhandle )
//
errhandle = fcreate( "revisao.scr" )
fwrite( errhandle, cRC )
fclose( errhandle )
//
REV_EnviarFTP()
return .t.
function REV_EnviarFTP() /* ****** ////// OK ////// ****** */
LOCAL WSHShell
LOCAL intWindowStyle := 2, bWaitOnRun := .t.
//
cSHFTPServerName := "158.269.44.202" // "ftp.blablabla.com.br"
cSHServerFolder := "downloads"
cSHFTPLoginID := "usuario@blablabla.com.br"
cSHFTPPassword := "abc@987"
cSHLocalFolder := ".\"
//
cSTRFile := [strFTPServerName = "] + cSHFTPServerName + ["] + CRLF
cSTRFile := cSTRFile + [strFTPServerFolder = "] + cSHServerFolder + ["] + CRLF
cSTRFile := cSTRFile + [strLoginID = "] + cSHFTPLoginID + ["] + CRLF
cSTRFile := cSTRFile + [strPassword = "] + cSHFTPPassword + ["] + CRLF
cSTRFile := cSTRFile + [strFile2PutGet = "revisao.txt"] + CRLF
cSTRFile := cSTRFile + [strFile2PutGet2 = "revisao.scr"] + CRLF
cSTRFile := cSTRFile + [strLocalFolderName = "] + cSHLocalFolder + ["] + CRLF
cSTRFile := cSTRFile + [strFTPScriptFileName = strLocalFolderName & "\revisao.ftp"] + CRLF
cSTRFile := cSTRFile + [Set objFSO = CreateObject("Scripting.FileSystemObject")] + CRLF
cSTRFile := cSTRFile + [If (objFSO.FileExists(strFTPScriptFileName)) Then] + CRLF
cSTRFile := cSTRFile + [ objFSO.DeleteFile (strFTPScriptFileName)] + CRLF
cSTRFile := cSTRFile + [End If] + CRLF
cSTRFile := cSTRFile + [Set objMyFile = objFSO.CreateTextFile(strFTPScriptFileName, True)] + CRLF
cSTRFile := cSTRFile + [ objMyFile.WriteLine ("open " & strFTPServerName)] + CRLF
cSTRFile := cSTRFile + [ objMyFile.WriteLine (strLoginID)] + CRLF
cSTRFile := cSTRFile + [ objMyFile.WriteLine (strPassword)] + CRLF
cSTRFile := cSTRFile + [ objMyFile.WriteLine ("cd " & strFTPServerFolder)] + CRLF
cSTRFile := cSTRFile + [ objMyFile.WriteLine ("hash")] + CRLF
cSTRFile := cSTRFile + [ objMyFile.WriteLine ("lcd " & strLocalFolderName)] + CRLF
cSTRFile := cSTRFile + [ objMyFile.WriteLine ("put " & strFile2PutGet)] + CRLF
cSTRFile := cSTRFile + [ objMyFile.WriteLine ("put " & strFile2PutGet2)] + CRLF
cSTRFile := cSTRFile + [ objMyFile.WriteLine ("bye")] + CRLF
cSTRFile := cSTRFile + [ objMyFile.WriteLine ("quit")] + CRLF
cSTRFile := cSTRFile + [ objMyFile.Close] + CRLF
cSTRFile := cSTRFile + [Set objFSO = Nothing] + CRLF
cSTRFile := cSTRFile + [Set objMyFile = Nothing] + CRLF
cSTRFile := cSTRFile + [Set objShell = WScript.CreateObject( "WScript.Shell" )] + CRLF
cSTRFile := cSTRFile + [objShell.Run "ftp -s:" & chr(34) & strFTPScriptFileName & chr(34),7] + CRLF
cSTRFile := cSTRFile + [Set objShell = Nothing]
errhandle := FCreate( "revisao.vbs" )
FWrite( errhandle, cSTRFile )
FClose( errhandle )
RUNWScript( "revisao.vbs", 2 )
return .t.
function RUNWScript( cScript, intWindowStyle, bWaitOnRun )
* 0 Hide the window and activate another window.
* 1 Activate and display the window. (restore size and position) Specify this flag when displaying a window for the first time.
* 2 Activate & minimize.
* 3 Activate & maximize.
* 4 Restore. The active window remains active.
* 5 Activate & Restore.
* 6 Minimize & activate the next top-level window in the Z order.
* 7 Minimize. The active window remains active.
* 8 Display the window in its current state. The active window remains active.
* 9 Restore & Activate. Specify this flag when restoring a minimized window.
* 10 Sets the show-state based on the state of the program that started the application. Example
LOCAL WSHShell
DEFAULT intWindowStyle := 0, bWaitOnRun := .t.
WSHShell := TOleAuto():New("wscript.shell")
WSHShell:Run( cScript, intWindowStyle, bWaitOnRun )
WSHShell:End()
return .t.
Bloqueio Online
Enviado: 05 Nov 2018 08:56
por juniorcamilo
rochinha escreveu:Amiguinhos,
Mais ou menos assim:
Código: Selecionar todos
function RUNWScript( cScript, intWindowStyle, bWaitOnRun )
.......
DEFAULT intWindowStyle := 0, bWaitOnRun := .t.
.....
.
amigo quando compilo da o seguinte erro nessa linha:
E0030 Syntax error: syntax error at 'INTWINDOWSSTYLE'
Obs: xHb build 1.2.3 (Simplex) & BCC 5.82
Bloqueio Online
Enviado: 05 Nov 2018 13:14
por rochinha
Amiguinhos,
E0030 Syntax error: syntax error at 'INTWINDOWSSTYLE'
No meu código não tem esta variável, revise o que você digitou.