Página 2 de 2
Enviado: 28 Jun 2007 20:11
por Maligno
Essa questão de garantir uma única instância do programa na mesma máquina ou mesmo limitar uma certa quantidade de usuários num sistema em rede até parece aquela discussão sobre proteção de programa. São coisas diferentes, claro. Mas têm soluções semelhantes, sob certo aspecto.
Não quero adiantar nada, mas estou pesquisando a respeito de um recurso chamado named pipes, que permite esse tipo de comunicação através do protocolo de rede. Se der certo da forma como estou imaginando, não haveria mais qualquer tipo de problema com isso. Bastaria um pequeno programa servidor rodando no servidor da rede, que faria o papel de "mediador" entre as máquinas clientes, possibilitando até mesmo chat entre elas.
O que pega é o maldito Win98, que só tem unnamed pipes, que tem uma mecânica diferente.
Enviado: 28 Jun 2007 20:28
por Eolo
Maligno,
Cara, to ansioso pra conferir a função do Marcelo Clipper. Eu uso esse tréco do FOPEN() em todos os meus clientes com XP (e 98 e ME) e em nenhum caso nunca deu errado. Parece mentira, mas é 100% de acerto.
Então, antes de vc achar outra solução mais - digamos - técnica, deixa o Marcelo Clipper apresentar pra como ele usa o FOPEN(). Tem jeito?
(de qualquer forma, não lhe parece estranho a vc, Maligno, que o USE Exclusive funcione e o FOPEN() Exclusive não funcione? Ou são coisas diametralmente diferentes?)
Enviado: 28 Jun 2007 20:54
por Maligno
Eolo escreveu:Então, antes de vc achar outra solução mais - digamos - técnica, deixa o Marcelo Clipper apresentar pra como ele usa o FOPEN(). Tem jeito?
Calma! Eu não disse que vou fazer hoje.

)) Tenho que pesquisar muita coisa ainda. É algo meio complicado pra quem nunca mexeu com isso.
(de qualquer forma, não lhe parece estranho a vc, Maligno, que o USE Exclusive funcione e o FOPEN() Exclusive não funcione? Ou são coisas diametralmente diferentes?)
São diferentes, mas não diametralmente. Não tenho certeza disso, mas é bem provável que o Clipper, ao bloquear um DBF (apenas com a cláusula EXCLUSIVE), utilize a mesma API do DOS utilizada para a abertura em modo exclusivo pelo FOpen(). Logo, não deveria haver diferença alguma.
Enviado: 28 Jun 2007 21:46
por Eolo
Marcelo Clipper, cadê vc, cara? Quero ver como vc usa o FOPEN() que funciona no 98/ME e não funciona no XP! To curioso!
Enviado: 29 Jun 2007 04:12
por Clipper
Tô aqui, é que como tenho muito o que fazer não dá pra ficar o tempo todo postando, mas quando dá eu posto sim, a pelo menos 5 anos diga se de passagem.
Resolvi verificar mais cudadosamente a rotina que tinha criado, testei no Windows 98 e funcionou beleza, testei no XP não funcionou, como o Eolo afirmou que com ele funcionava resolvi pesquisar e descobri que realmente havia um erro, porém eu fui induzido a ele pelo NG do Clipper 5.0, no NG do Clipper 5.0 só existem 3 opções de modo de acesso, são elas :
0 - SOMENTE LEITURA
1 - SOMENTE GRAVAÇÃO
2 - LEITURA E GRAVAÇÃO
Já no NG do Clipper 5.2 existem mais 6 modos além desses, que são os parâmetros 0,16,32,48,64,64
Então mudei meu parâmetro que era 0 para 16 e realmente funcionou perfeitamente no XP. O estranho e que ajudou no erro é que com o parâmetro O no Windows 95/98/ME funciona e no XP não funciona, com XP e sua maldita NTVDM é cheio de frescura achei que fosse problema de imcompatibilidade ou de viadagem mesmo.
De qualquer forma a dica serve para quem usa o Clipper 5.0 ou 5.01.
Até logo.
Marcelo
Enviado: 29 Jun 2007 04:38
por Eolo
Marcelo,
Cara, desculpe ter parecido meio grosseiro no meu post anterior. Não tive a intenção.
Quanto ao FOPEN(), eu uso 18, que é o modo de acesso 2 (leitura e gravação) mais o modo de compartilhamento 16 (exclusivo), com o Clipper52. Não sabia da restrição do Clipper50.
Enviado: 29 Jun 2007 10:09
por Pablo César
Que bom que foi esclarecido. Eu também tinha as minhas sérias dúvidas... primeiro pensei que fosse algum problema com os direitos do usuário na pasta que pudesse ser gravado em WIN XP.
Eu ainda mantenho a minha convicção que a idéia do Eolo de abrir através do FOPEN (RW) é melhor até agora, aliás eu tinha já elogiado anteriormente a idéia dele.
Não obtive resposta sobre a utilização do USE DBF e FOPEN FILE quanto a mémoria, mas acho também não precisamos provar nada sobre isso. E ainda a solução de abrir no próprio servidor em pasta diferentes (conforme o nome da estação), é uma boa saída para os casos de estações sem HD.
Enviado: 29 Jun 2007 22:20
por Maligno
Pablo César escreveu:E quanto à memória ocupada entre USE DBF e FOPEN FILE_NULO ?
Não entendi muito bem sua dúvida. Qual o problema com a memória?
Enviado: 30 Jun 2007 00:24
por Clipper
Ele quer saber em qual dos casos há mais consumo de memória, eu acho que não faz diferença alguma, creio que o consumo deve ser o mesmo.
Até logo.
Marcelo
Enviado: 30 Jun 2007 00:26
por Maligno
Ah, se for isso, concordo com você. Se fizer diferença deve ser pequena aponto de ser desprezível. Aliás, se a gente for se preocupar com coisas desse tipo, aquilo de mais importante acaba sempre ficando pra trás. Vê-se muito disso em OOP. Mas aí é um pouco diferente. Há situações em que essa preocupação se justifica. Mas nem sempre.
Verificar se o programa já está sendo executado
Enviado: 04 Set 2015 11:38
por Daiane
Opa,estava querendo saber como eu poderia fazer isso,verificar se o executável ja esta sendo utilizado no terminal,e com ajuda de vocês consegui resolver,assim que o usuario estiver usando o programa e tentar abri-lo novamente o sistema não vai permitir.
Eu estava tendo problemas com duplicidade de código,pois o usuário abria dois ou mais executáveis,espero isso resolva.
Utilizei a forma do FOPEN e utilizo o windows 7 e funcionou bem. ainda não testei no XP,espero que funcione corretamente também,muitos de nossos clientes ainda usam XP.
Ótimo tópico de informações

Verificar se o programa já está sendo executado
Enviado: 08 Set 2015 09:48
por Kapiaba
Bom dia Daiane, se a sua pergunta se referir a FiveWin for xHarbour, faça a pergunta no forum de FiveWin que eu respondo. Agora se Clipper modo console, ignore minha postagem. Obg. abs.
Verificar se o programa já está sendo executado
Enviado: 08 Set 2015 11:46
por Eolo
Utilizei a forma do FOPEN e utilizo o windows 7 e funcionou bem. ainda não testei no XP,espero que funcione corretamente também,muitos de nossos clientes ainda usam XP.
Eu usei (uso) isso, sem problemas, com o Clipper 52e rodando sob Win98, ME, XP e Win7.
Aliás, acabei de testar no Win10 32. Funciona normal.
Em tempo: uso em modo console, mas não acredito que faça alguma diferença se houver ou não alguma interface gráfica. Afinal, é simplesmente abrir um arquivo qualquer em modo exclusivo... Aliás, o Nascimento usa o Harbour com uma LIB gráfica e passou a usar essa solução do FOPEN. Funciona perfeito.
Verificar se o programa já está sendo executado
Enviado: 08 Set 2015 14:05
por Nascimento
Sim sim tanto no xp e no windows7 funcionando sem problemas