Quando não é feito o LOG-IN no WINDOWS
Moderador: Moderadores
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Quando não é feito o LOG-IN no WINDOWS
Quando é inicializado o terminal numa rede Win98 (digamos) e o usuário não faz LOGIN (adequadamente) na rede, simplesmente dá um ESC. Mas no WINDOWS 98, 95 e creio que no ME segue enfrente a entrada no WINDOWS. Porém é impossibilitado de forçar o acesso a rede com o NET USE, porque diz que primeiramente deve se LOGADO. Daí a solução é ir no menu iniciar e fazer o LOGOFF daquela estação. Com a falta de atenção do usuário, pode ser pensar que há algum problema na rede e causar contra-tempos.
Bem gostaria de saber se teria como saber se esse LOG-IN foi efetuado no WINDOWS para depois chamar o NET USE ? Alguem sabe como ?
Um clip-abraço ´o)
Bem gostaria de saber se teria como saber se esse LOG-IN foi efetuado no WINDOWS para depois chamar o NET USE ? Alguem sabe como ?
Um clip-abraço ´o)
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
A solução está em DELPHI
Caros colegas,
Achei ! O quê não é encontrado na INTERNET ?. Mas o problema é que está escrito na linguagem DELPHI e eu não o tenho. Mas se algum samaritano fizer o favor de compilar, para que gere em arquivo TEXTO o seu resultado (não deve exibir nada em tela). Como eu e muitos aqui iremos agradecer. Aqui vai:
Quem for compilar, favor disponibilza-lo na INTERNET e postar aqui o código fontes mudado.
Um clip-DELPHI-abraço hehe :)Pos
Achei ! O quê não é encontrado na INTERNET ?. Mas o problema é que está escrito na linguagem DELPHI e eu não o tenho. Mas se algum samaritano fizer o favor de compilar, para que gere em arquivo TEXTO o seu resultado (não deve exibir nada em tela). Como eu e muitos aqui iremos agradecer. Aqui vai:
Acredito eu, que se não estiver logado o resultado será VAZIOfunction GetUserName:string;
var
Nome: array[0..64] of char;
begin
if DbiGetNetUserName(Nome) DBIERR_NONE then
Nome:='';
Result:=StrPas(Nome);
end;
Quem for compilar, favor disponibilza-lo na INTERNET e postar aqui o código fontes mudado.
Um clip-DELPHI-abraço hehe :)Pos
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Não sei se porque foi FIM-DE-SEMANA, ou o quê ? Mas não apareceu algum bom SAMARITANO aqui no FORUM para presentear-nos com a compilação dessa função. Talvez, os BONS SAMARITANOS tenham ido a IGREJA neste domingo e por isso impera sua ausência... hehehe
Será que vou ter que pedir mais um favor para o MALIGNO
?
Um clip-abraço, colegas :)Pos (eu não pediria se eu pudesse fazer...)
Será que vou ter que pedir mais um favor para o MALIGNO
Um clip-abraço, colegas :)Pos (eu não pediria se eu pudesse fazer...)
Já vou avisando: DbiGetNetUserName não é uma função da API do Windows. Pior que isso. É uma função da API do BDE. Não vai dar pra usar esse trem sem antes instalar o BDE. Sinto muito. 
[]'s
Maligno
http://www.buzinello.com/prg
[]'s
Maligno
http://www.buzinello.com/prg
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
ummm... Entendí, MALIGNO. Que droga !. Era muito fácil para ser verdade. E instalar BDE, é o que mais detestaria fazer. Esta é uma das causas que não me impulsiona para uma linguagem GUI.
Que pena !
Mas obrigado pelo esclarecimento. Senão eu estaria rodando um aplicativo sem sucesso ou pior ter que instalar em todas as máquinas BDE.
Que pena !
Ah, mas essa desculpa não cola. Leia o BDE Alternatives List e veja que há dezenas de motivos para esquecer que o BDE existe. Nem a própria Borland usa mais.Pablo César escreveu:Esta é uma das causas que não me impulsiona para uma linguagem GUI.
[]'s
Maligno
http://www.buzinello.com/prg
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Sei que soa muito cômodo da minha parte alegar isso. Mas há alguns anos atrás, via alguns colegas fazrem instalações BDE e alterações do OS para que seus sistemas rodassem. Eu sempre achei que é tão amigável instalar os nossos sistema em Clipper sem fazer muitas alterações. Mas é claro, que a coisa deve ter evoluido e eu estou desinformado. Por isso aceito a sua desmascaragem... (não sei se existe esta palavras, hihihihi)
Mas deixa te contar como resolví esta questão (de forma IMEDIATISTA, hehe). Sabe, eu gosto muito de utilizar arquivo BAT para chamar meus programas. Sendo que após a tentativa de FORÇAR o NET USE e não é efetivado porque (esqueceram de LOGAR-SE na rede). O NET USE devolve "ERRO 3787: Você precisa efetuar o LOGON antes de executar esta operação", mas também devolve um ERRORLEVEL (número 203, no WIN 98). Daí que mostro para o usuário uma mensagem dizendo que deve LOGAR-SE na rede. Funcionou legal.
Um clip-abraço !
Mas deixa te contar como resolví esta questão (de forma IMEDIATISTA, hehe). Sabe, eu gosto muito de utilizar arquivo BAT para chamar meus programas. Sendo que após a tentativa de FORÇAR o NET USE e não é efetivado porque (esqueceram de LOGAR-SE na rede). O NET USE devolve "ERRO 3787: Você precisa efetuar o LOGON antes de executar esta operação", mas também devolve um ERRORLEVEL (número 203, no WIN 98). Daí que mostro para o usuário uma mensagem dizendo que deve LOGAR-SE na rede. Funcionou legal.
Um clip-abraço !
Prezado Pablo
Porque você não usa o NETREDIR() da CT ao invés de usar o NET USE do DOS, me parece que tem uma função que retorna o nome do usuário logado também, mas como não tenho 98 aqui não testei, e nem dá para testar no XP já que ele obriga a logar.
Até logo.
Marcelo
Porque você não usa o NETREDIR() da CT ao invés de usar o NET USE do DOS, me parece que tem uma função que retorna o nome do usuário logado também, mas como não tenho 98 aqui não testei, e nem dá para testar no XP já que ele obriga a logar.
Até logo.
Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Sem dúvida. Programas que manipulam bancos de dados, se for o caso e dependendo de como foram construídos e que banco utilizam, nem precisam ser instalados. Podem ser apenas copiados, como se costuma fazer com programas Clipper. Se bem que, se for para instalar alguma coisa, não será esse o maior empecilho. O problema do BDE não está na instalação, mas na qualidade dele. Se nem a própria Borland usa,...Pablo César escreveu:Mas é claro, que a coisa deve ter evoluido e eu estou desinformado.
[]'s
Maligno
http://www.buzinello.com/prg
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Olha MARCELO !. Não tinha conhecido esta função NETREDIR().
Sempre pensei todas as funções do CT.LIB provenientes do "Book 4 - Function for IBM - PC/LAN" seriam para tratamento de redes NOVELL, olha só que perda de tempo... A função a que você se refere parece é o NNETLGUSER(), só que me devolve o array NUL, deve ser porque não é pra redes sem servidor DEDICADOS. Mas de agora em mais, vou testar melhor algumas funções para rede que talvez funcione.
Mas também não daria certo no meu caso, ora porque eu antes de chamar meu sistema que está instalado no servidor de uma rede. Verifico se está logado e se tem acesso ao sistema. E tudo isto é feito através de um arquivo em lote. A principio, funcionou a minha alternativa. Pois o arquivo em lote faz varias coisinhas antes de chamar meu sistema.
Agradeço muito sua ajuda. Sem teu toque eu iria ficar sem ver essas funções do Book 4. Valeu colega !
Um clip-abraço :{ :)Pos (como rende o nosso serviço a esta hora... hehe)
Sempre pensei todas as funções do CT.LIB provenientes do "Book 4 - Function for IBM - PC/LAN" seriam para tratamento de redes NOVELL, olha só que perda de tempo... A função a que você se refere parece é o NNETLGUSER(), só que me devolve o array NUL, deve ser porque não é pra redes sem servidor DEDICADOS. Mas de agora em mais, vou testar melhor algumas funções para rede que talvez funcione.
Mas também não daria certo no meu caso, ora porque eu antes de chamar meu sistema que está instalado no servidor de uma rede. Verifico se está logado e se tem acesso ao sistema. E tudo isto é feito através de um arquivo em lote. A principio, funcionou a minha alternativa. Pois o arquivo em lote faz varias coisinhas antes de chamar meu sistema.
Agradeço muito sua ajuda. Sem teu toque eu iria ficar sem ver essas funções do Book 4. Valeu colega !
Um clip-abraço :{ :)Pos (como rende o nosso serviço a esta hora... hehe)
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Insistindo mais um pouquinho...
Achei este código em liguagem C que pode ser utilizado como biblioteca para o Clipper no site http://www.ousob.com/c_code/cmenu.php para uma função WHOAMI:
MALIGNO, esta função serviria para o WIN98 WIN95 ou seria para redes NOVELL ?.
Um clip-abraço :)Pos
Achei este código em liguagem C que pode ser utilizado como biblioteca para o Clipper no site http://www.ousob.com/c_code/cmenu.php para uma função WHOAMI:
#include <memory.h>
#include <nwlocal.h>
#include <nwconn.h>
#include <extend50.h>
CLIPPER b_whoami()
{
WORD objType;
int ccode;
char objName[48];
long objID;
BYTE loginTime[7];
char day[10], time[9], ttime[3], AmPm[3];
WORD year;
int PM;
char month[9];
WORD ConnectionNumber;
int gotAproblem = 0;
memset(objName,'\0',48);
ConnectionNumber = GetConnectionNumber();
if( ConnectionNumber == 0 ){
gotAproblem = 1;
}
if( !gotAproblem ){
ccode = GetConnectionInformation( ConnectionNumber, objName, &objType,
&objID, loginTime );
if ( ccode != 0 ){
objName[0] = NULL;
}
}
_retc(objName);
}
MALIGNO, esta função serviria para o WIN98 WIN95 ou seria para redes NOVELL ?.
Um clip-abraço :)Pos
Levando-se em conta o prefixo dos headers, é o que parece. Na API da Novel há uma função GetConnectionInformation. Então, é bem provável que funcione apenas em redes Novell.Pablo César escreveu:MALIGNO, esta função serviria para o WIN98 WIN95 ou seria para redes NOVELL ?.
Esse fonte C deve ser equivalente à função NNETWHOAMI da CaTools.
[]'s
Maligno
http://www.buzinello.com/prg
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Não, não é isso, Eder. Vou te explicar:
No WIN98 e WIN95 em rede quando é ligado o computador aparece a 1ª janela do WINDOWS para fazer LOGIN, que seria para colocar nome e senha do usuário na rede, mas as vezes o usuário dá um ESC. Por causa disso aquela estação, não entrará na rede até ele fazer o LOGIN. Porque se for dar um NET USE, este comando irá dar uma mensagem dizendo que deve fazer o LOGON. A finalidade desta função para determinar o nome do usuário LOGADO, seria para ver se entrou normalmente com o LOGON, é dizer se a função voltar com nome NULO é porque não fez o LOGON. Isso é uma falha do SO porque nos WINDOWS posteriores não acontece, porque ele força a colocar a senha.
Estou pendindo isso, porque ja me deparei com essa situação, é dizer o comarada liga o computador e tentar entra no programa e como não está em rede, não consegue. Claro, porque não LOGOU devidamente.
Um clip-abraço :)Pos
No WIN98 e WIN95 em rede quando é ligado o computador aparece a 1ª janela do WINDOWS para fazer LOGIN, que seria para colocar nome e senha do usuário na rede, mas as vezes o usuário dá um ESC. Por causa disso aquela estação, não entrará na rede até ele fazer o LOGIN. Porque se for dar um NET USE, este comando irá dar uma mensagem dizendo que deve fazer o LOGON. A finalidade desta função para determinar o nome do usuário LOGADO, seria para ver se entrou normalmente com o LOGON, é dizer se a função voltar com nome NULO é porque não fez o LOGON. Isso é uma falha do SO porque nos WINDOWS posteriores não acontece, porque ele força a colocar a senha.
Estou pendindo isso, porque ja me deparei com essa situação, é dizer o comarada liga o computador e tentar entra no programa e como não está em rede, não consegue. Claro, porque não LOGOU devidamente.
Um clip-abraço :)Pos


