Clique abaixo para nos ajudar
Login

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
20 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 19 Visitantes :: 2 Motores de busca

FAF

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
Últimos assuntos
» Alterar uma palavra num arquivo de texto
Ontem à(s) 12:02 por Teseu

» Buscar endereço por CEP
3/12/2016, 19:59 por pedrossian

» USAR WEBSERVICE NO VFP9
2/12/2016, 09:50 por AJC

» BANIMENTO DE USUARIO
17/11/2016, 08:31 por FAF

» Impressora Ticket
15/11/2016, 09:20 por clima238

» Gráfico
9/11/2016, 10:43 por hidroluz

» TRANSPOR TABELA
9/11/2016, 10:34 por hidroluz

» MUDANÇA DO .DBF PARA POTSGREE
9/11/2016, 09:12 por AJC

» Website com videoaulas sobre linguagens de programação
8/11/2016, 09:56 por JLDR

» Parceria para desenvolvimento de template em Wordpress
7/11/2016, 19:15 por mindix

» Data fica invertida na planilha que é gerada via programa.
27/10/2016, 11:00 por Linghston

» Maximizar report direto do menu
21/10/2016, 20:48 por Rosangela Pires

» Fechar form com tempo
21/10/2016, 10:15 por Rosangela Pires

» URGENTE: Ajuda com impressora ELGIN-L42
14/10/2016, 09:53 por megasoft

» Opções para gerar NF-e
10/10/2016, 09:07 por mavsinfo

» Google Maps
8/10/2016, 15:08 por Rosangela Pires

» Mysql
5/10/2016, 11:22 por Marcos Guedes

» Acessando Banco em MYSQL de um projeto WORDPRESS
3/10/2016, 10:58 por Marcos Guedes

» OPTION SELECT MOSTRAR CAMPOS QUASE PRONTO
26/9/2016, 21:09 por BobKuspe

» Pesquisa em grid
14/9/2016, 09:24 por AJC

Alterar uma palavra num arquivo de texto

5/12/2016, 12:02 por Teseu

Olá prezados colegas de programação!

Este é eu primeiro post no fórum e gostaria de poder …

Comentários: 0

Buscar endereço por CEP

3/12/2016, 19:59 por pedrossian

Caros amigos, meu código para buscar endereço pelo CEP não funciona mais.
Alguém pode me …

Comentários: 0

USAR WEBSERVICE NO VFP9

2/12/2016, 09:50 por AJC

Pessoal, preciso de um material ou livro que me traga instruções como
usar a consumação de …

Comentários: 0

BANIMENTO DE USUARIO

13/11/2016, 16:21 por FAF

A usuária ROSANGELA PIRES ao tentar acessar o Forum obtem sempre a mensagem de BANIMENTO.
A mesma …

Comentários: 3

Impressora Ticket

15/11/2016, 09:20 por clima238

Bom dia,
Por favor alguém me explique porque o código abaixo imprime no ecrã em vez do printer: …

Comentários: 0

Estatísticas
Temos 6962 usuários registrados
O último usuário registrado atende pelo nome de teklainfo

Os nossos membros postaram um total de 17118 mensagens em 2576 assuntos

Verificar se uma DLL esta instalada

Página 1 de 2 1, 2  Seguinte

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Resolvido Verificar se uma DLL esta instalada

Mensagem por Julio em 22/9/2010, 14:04

Boa Tarde Pessoal

Tem como via comando em um formulario fazer com que eu verifique se uma DLL existe ou esta instalada no computador e caso não esteja fazer seu registro.


Obrigado

julio

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Verificar se uma DLL esta instalada

Mensagem por Marcos Guedes em 22/9/2010, 21:30

Quanto ao registro, acredito que temos algo na área de "Funções Interessantes".

Sobre verificar se estar instalada... talvez funcione se olhar na pasta System32.

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Verificar se uma DLL esta instalada

Mensagem por Julio em 23/9/2010, 11:01

Marcos Guedes Escreveu"
Quanto ao registro, acredito que temos algo na área de "Funções Interessantes".

Sobre verificar se estar instalada... talvez funcione se olhar na pasta System32.

Pesquisei e nao encontrei o exemplo de registrar via programação, mas estou realizando a leitura do topico novamente.

Encontrei na net isso. Vou testar e do retorno se funcionou:


SET LIBRARY TO \SISTEMA\MOLEZIP.DLL ADDITIVE

So nao sei se vai servir para as versões do Windows XP, Vista e Seven.

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Verificar se uma DLL esta instalada

Mensagem por _batmanvfp_ em 23/9/2010, 15:57

segue a funcao verificar

Código:
? DLLREGISTRADA('mscomct2.ocx')

FUNC DLLREGISTRADA(lcNOME)

**************************
DECLARE INTEGER LoadLibrary IN kernel32 STRING lpLibFileName
DECLARE INTEGER FreeLibrary IN kernel32 INTEGER hLibModule
LOCAL lnDLLID AS Integer
LOCAL llRETURN AS Boolean
STORE 0 TO lnDLLID
STORE .F. TO llRETURN

lnDLLID = LoadLibrary(lcNOME)
IF lnDLLID > 0 && Conseguiu instanciar a dll
FreeLibrary(lnDLLID) && Remove a dll da memória
llRETURN = .T.
ELSE && Não conseguiu instanciar a dll
llRETURN = .F.
ENDIF

RELEASE LoadLibrary,FreeLibrary
RETURN llRETURN

ENDFUNC

segue como Registrar e Tirar o Resgistro de uma DLL

Vá em Iniciar/Executar ou no prompt e digite:
Código:
REGSVR32 \<caminho>\mscomct2.ocx

Para retirar o registro:
Código:
REGSVR32 -u \<caminho>\mscomct2.ocx


_batmanvfp_
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Verificar se uma DLL esta instalada

Mensagem por Julio em 23/9/2010, 16:53

_batmanvfp_ Escreveu:
segue como Registrar e Tirar o Resgistro de uma DLL

Vá em Iniciar/Executar ou no prompt e digite:
REGSVR32 \<caminho>\mscomct2.ocx

Para retirar o registro:

REGSVR32 -u \<caminho>\mscomct2.ocx

Quanto a esta acima sei como registrar, mas pense que existem usuários que nem sabem muito bem ligar o micro e utiliam o computador como se fosse uma maquina de escrever, so fazem cartinhas. ahhhhh

No primeiro codigo não consegui deterctar aonde que é feito a registro da DLL, este codigo pode ser colocado no INIT do form?

Ao abrir o form verifico se existe a DLL instalada, caso nao tem ai regsitra, para evitar erro na execução do form. É um form de backup.
Registro esta DLL quanto instalo o programa, mas por algum motivo nao deve ter registrar no cliente.
Obrigado

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Verificar se uma DLL esta instalada

Mensagem por Marcos Guedes em 23/9/2010, 17:21

Julio, que tipo de DLL's precisas registrar, e porque precisa ser via código?
O registro não poderia ser feito pelo próprio instalador?

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Verificar se uma DLL esta instalada

Mensagem por _batmanvfp_ em 24/9/2010, 00:25

ola esperimenta o codigo somente colar num PRG
se a resposta é .t. é pq ta registrada
se é .f. nao esta registrada
sem erro

claro que registrar eu sei que voce sabe colei mais na questao de desregistrar ...
que pra mim fiquei sabendo esses dias ! Rs

_batmanvfp_
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Verificar se uma DLL esta instalada

Mensagem por Tales Ruan em 24/9/2010, 01:53

[Você precisa estar registrado e conectado para ver este link.] escreveu:
No primeiro codigo não consegui deterctar aonde que é feito a registro da DLL, este codigo pode ser colocado no INIT do form?

Ao abrir o form verifico se existe a DLL instalada, caso nao tem ai regsitra, para evitar erro na execução do form. É um form de backup.
Registro esta DLL quanto instalo o programa, mas por algum motivo nao deve ter registrar no cliente.

Acho que o bom mesmo seria verificar esta dll ao iniciar o seu sistema, no programa principal, por exemplo.

Mas como é um form de backup, que não é usado o tempo todo, talvez seja melhor mesmo checar a dll ao abrir este form.
O detalhe é que (tenho que testar pra ter certeza ainda) só vai funcionar se você colocar o código da checagem no método LOAD do formulário e não no INIT, pois método Init do form ocorre após a inicialização dos componentes, e aí quando seu código executasse o erro já teria acontecido.

Espero ter ajudado. ate mais.

Tales Ruan
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Verificar se uma DLL esta instalada

Mensagem por Julio em 24/9/2010, 08:08

Bem a DLL em questão é a molezip.dll para fazer backup, ja instalo ela junto com o setup de instalação.
Não sei porque em um usuário com windows seven esta reclamando que não esta funcionando, não sei se foi deletada, se não foi instalada com o setup. Em casa tenho o windows seven e executei a instalação com o mesmo setup e a dll foi instalada e a rotina de backup esta funcionando.
Ja passei para o usuário registrar a dll, usando os mesmos codigo que o Marcelo postou aqui mesmo neste topico olhem que o suário me retornou, dizendo que ao executar ocomando gera erro.

[Você precisa estar registrado e conectado para ver esta imagem.]

Entao resolvi ao abir o form de backup verificar se a dll esta instalada e se não tiver instalo a mesma.

Ok vou colocar no metodo load e testar.

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Verificar se uma DLL esta instalada

Mensagem por Marcos Guedes em 24/9/2010, 08:16

Julio, para compactar, utilizo outra rotina.
Veja o exemplo em anexo. (Talvez você ache mais interessante e/ou resolva este problema).

Anexos
Zip.zip Rotina para compactar arquivosVocê não tem permissão para fazer download dos arquivos anexados.(138 Kb) Baixado 9 vez(es)

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Verificar se uma DLL esta instalada

Mensagem por Julio em 24/9/2010, 08:21

Marcos

Esta DLL tambem devera ser registrada?!

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Verificar se uma DLL esta instalada

Mensagem por Nelson Arcas em 24/9/2010, 09:59

Julio
Só um detalhe! Aconteceu comigo também do usuario não conseguir utilizar a DLL, o problema foi resolvido da seguinte maneira. Selecionados o cmd e executamos clicando com o botão direito "Executar como Administrador" e fizemos o registro da Dll.
Mesmo que esse ususario tinha direito de administrador não estava funcionando registra com o seu usuario logado.
Espero ter ajudado.

Nelson Arcas
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Verificar se uma DLL esta instalada

Mensagem por _batmanvfp_ em 24/9/2010, 11:42

Código:
if DLLREGISTRADA('molezip.dll') = .T.
else
REGSVR32 c:\windows\system32\molezip.dll
endif

ja tento fazer isso no init ou load ???? desse form

voce realmente coloco na instalacao a molezip para ir pro cliente ? system ou system32 ?

_batmanvfp_
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Verificar se uma DLL esta instalada

Mensagem por Julio em 24/9/2010, 11:55

Utilizo o ISToll para gerar o setup de instalação e tenho aqui neste codigo para registrar, mas não indico em qual pasta deve ser instalada/registrada.

Código:
Source: C:\Sistema\MoleZip.DLL; DestDir: {sys}; Flags: regserver

Realizei testes em micros com Windows XP,Vista e Seven, e funciona, neste caso não sei se o usuário fez alguma coisa errada.

Passei para o usuário se logar como administrador e estou esperando resposta para ver se deu certo. Mas para evitar isso, vou implementar esta rotina para verificar se existe ou não.

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Verificar se uma DLL esta instalada

Mensagem por m@r<3|o em 24/9/2010, 12:11

pensei que system era somente 98, mais como uso XP nao lembro do vista,

pode tentar fazer assim, se as respostas do Marcos e do Nelson nao resolver
faça esse procedimento

crie 1 ou 2 bats ....
fala pra pessoa , backpear se for o caso, se nao precisar entao desinstala
ai voce faz um bat que tira os registros

pede pra reiniciar e depois instala novamente o sistema, registrando na instalacao e tambem no init do form , mais sei la.....

percebi que se eu instalar um programa que contem uma DLL e instalar outro depois que chama a mesma DLL ..... mais que esta em pasta diferente ele leva esse registro para um outro path , dando paus .

m@r<3|o
Participante Assíduo
Participante Assíduo


Voltar ao Topo Ir em baixo

Resolvido Re: Verificar se uma DLL esta instalada

Mensagem por Julio em 24/9/2010, 15:30

Pelo pouco que sei as pastas SYSTEM e SYSTEM32 existem dentro da pasta WINDOWS do XP. Não observei do VISTA e SEVEN que não tenho aqui, mas em casa do uma olhada.

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Verificar se uma DLL esta instalada

Mensagem por m@r<3|o em 25/9/2010, 12:18

sfc /purgecache

Apaga todos os arquivos da pasta "%windir%\system32\DLLCache", que são cópias de alguns arquivos do Windows que ele restaura quando os mesmos são perdidos (por isso ele pode "recriar" arquivos do sistema, na verdade ele não "recria" mas sim copia daqui). Limpar esta pasta não traz problema algum, ainda libera uma grande quantidade de espaço em disco. Depois se o Windows precisar de um arquivo e não encontrá-lo nessa pasta, ele simplesmente pedirá o CD. Essa pasta pode crescer e crescer e crescer... Você pode dar o comando "sfc cachesize=50" (sem aspas) para definir, em megabytes, o tamanho máximo dessa pasta. 50 MB é um bom tamanho, não é necessário guardar as cópias dos arquivos no HD se você tiver o CD, pois realmente é muito raro ter que usá-los!

[Você precisa estar registrado e conectado para ver este link.]



m@r<3|o
Participante Assíduo
Participante Assíduo


Voltar ao Topo Ir em baixo

Resolvido Re: Verificar se uma DLL esta instalada

Mensagem por memarques em 27/9/2010, 10:54

Pessoal, desculpe a demora. Ví esse "pedido" sobre registrar DLL e só agora posto como eu faço.

Há um tempo atras também achei que ficar "dependendo" de DLLs registradas "fora" do nosso sistema é meio ruim. A melhor solução que encontrei, depois de algumas trocas de mensagens foi a que posto aqui.

O que eu faço é colocar as DLLs que eu quero "no mesmo diretório da aplicação" - Copiando mesmo, e dentro do proprama eu "registro ela". Temos só que ficar atentos quanto a algumas DLLs dependerem de outras, aí nesse caso, se quisermos colocar no mesmo diretório da aplicação, todas as DLLs inclusive as dependentes tb devem ser colocadas. Claro que o "local" dqas dlls, pode ser até noutro diretório para organização.

Claro que se registar via comando ela fica registrada ... kkk e pronto.

Nesse exemplo eu copiei a dll "jmail.dll" para o mesmo diretório do executável. Note que depois de algumas discussões essa foi a melhor forma encontrada. Verificar a existencia do arquivo DLL, não garante que esteja registrada e verificar se esta registrada, pode não garantir que o arquivo dll não foi apagado depois.

Tem gente até que dispara a rotina de registro somente se a criação de um objeto a partir da sua criação der problema. Como no exemplo do jmail:


Código:

LOCAL wb_Retorno as Boolean
LOCAL wo_Pop3    as "jmail.POP3"

wb_Retorno = .f.

TRY
   wo_Pop3 = CREATEOBJECT("jmail.pop3")
CATCH
   wb_Retorno = eu_DLLRegistrada("jmail.dll")
   IF wb_Retorno
      eu_Notify ("6022","Atenção" , "Erro no Registro da DLL Mail" , "jmail.dll" )
   ELSE
      wo_Pop3 = CREATEOBJECT("jmail.pop3")
   ENDIF
ENDTRY

IF wb_Retorno
   CLEAR EVENTS
   RETURN
END|IF

Eu sempre que crio uima função boleana eu retorno .t. para pau e .f. para ok. Minhas funções começam com eu_ e minhas variaveis com wx_, ok?

segue uma rotina de checagem ....

Código:
*************************************************
******** Para Testar Reg de  DLLs    ***********
*************************************************


* O jmail.dll é o patch+nome do arquivo DLL, voce pode até renomear esse arquivo
wb_Retorno = eu_DLLRegistrada("jmail.dll")

IF wb_Retorno
   eu_Notify ("6022","Atenção" , "Erro no Registro da DLL Mail" , "jmail.dll" )
   CLEAR EVENTS
   RETURN
ENDIF





*************************************************
******** Funcão para Regsitrar DLLs    *********
*************************************************
FUNCTION  eu_DLLRegistrada(ws_NOME)

   TRY
      DECLARE LONG DllRegisterServer IN (ws_NOME)
   CATCH
      RETURN .t. && condição de erro
   ENDTRY
   
   IF DllRegisterServer() = 0
       RETURN .f. && condição de ok
   ELSE
       RETURN .t. && condição de erro
   ENDIF
   
ENDFUNC
*************************************************
*************************************************
*************************************************

Po marcelo .. legal isso aí desse comando sfc, eu pelo menos não sabia.

Abraços
Mauro




memarques
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Verificar se uma DLL esta instalada

Mensagem por Julio em 27/9/2010, 11:42

Valeu Marques

Vou dar uma verificar no que postou.

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Verificar se uma DLL esta instalada

Mensagem por _batmanvfp_ em 3/10/2010, 16:17

Código:
DECLARE LONG DllRegisterServer IN [comctl32.ocx]
IF DllRegisterServer() = 0
    messagebox('REGISTRADO !!!')
ELSE
    messagebox('NÃO REGISTRADO !!!')
ENDIF

_batmanvfp_
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Verificar se uma DLL esta instalada

Mensagem por Julio em 28/10/2010, 08:42

Marques

Nao consegui executar seu exemplo da erro aqui: "eu_Notify ..."
E aqui tambem "ws_NOME".

Marcelo

Sua mensagem de: 24/9/2010, 12:42

Da erro aqui:

REGSVR32 c:\windows\system32\molezip.dll

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Verificar se uma DLL esta instalada

Mensagem por memarques em 28/10/2010, 09:26

O Julio

Esse eu_Notify e ws_nome são só exemplos. Eu até uso assim mesmo, mas não tá no codigo exemplo q mandei.

Seria para usar mais ou menos assim:

Código:
*************************************************
******** Para Testar Reg de  DLLs    ***********
*************************************************


* O jmail.dll é o patch+nome do arquivo DLL, voce pode até renomear esse arquivo
* por exemplo "c:\jmail.dll"


wb_Retorno = eu_DLLRegistrada("jmail.dll")

IF wb_Retorno
  messagebox ("Erro no Registro da DLL Mail")
  RETURN
ENDIF





*************************************************
******** Funcão para Regsitrar DLLs    *********
*************************************************
FUNCTION  eu_DLLRegistrada(ws_NOME)

  TRY
      DECLARE LONG DllRegisterServer IN (ws_NOME)
  CATCH
      RETURN .t. && condição de erro
  ENDTRY
 
  IF DllRegisterServer() = 0
      RETURN .f. && condição de ok
  ELSE
      RETURN .t. && condição de erro
  ENDIF
 
ENDFUNC
*************************************************
*************************************************
*************************************************

Abraço
Mauro

memarques
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Verificar se uma DLL esta instalada

Mensagem por Julio em 28/10/2010, 09:34

Quanto retorna (RETURN .f. && condição de ok) a dll esta registrada?

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Verificar se uma DLL esta instalada

Mensagem por memarques em 28/10/2010, 09:46

Ixi, acho q troquei as bolas do retorno .... kkkk Mas verifica aí ... o que interessa é o uso das duas funções:

Código:
DECLARE LONG DllRegisterServer IN (ws_NOME)
DllRegisterServer()

Tem mais, se ela não estiver registrada "oficialmente", esse método irá REGISTRAR.

memarques
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Verificar se uma DLL esta instalada

Mensagem por Julio em 10/11/2010, 15:38

memmarques Escreveu !
DECLARE LONG DllRegisterServer IN (ws_NOME)
DllRegisterServer()



Tem mais, se ela não estiver registrada "oficialmente", esse método irá REGISTRAR.


Da erro solicita o DllRegisterServer.PRG
Não registrou a DLL

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Verificar se uma DLL esta instalada

Mensagem por Conteúdo patrocinado Hoje à(s) 18:53


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Página 1 de 2 1, 2  Seguinte

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum