QUEM ACESSOU: LOCAL OU REDE

JCM0867 11/08/2016 10:53:49
#465726
Olá pessoal

Por exemplo tenho um sistema local o qual é acessado por outro computador pela rede, até aí sem problema.
Mas como saber se o sistema for aberto localmente ou aberto pela rede?

Gostaria que o sistema se estiver localmente executará um comando e se for acessado pela rede não executará o comando

Até poderia fazer um txt e colocar nos PCs em rede.
nesses txt teria uma variável True ou False.
Mas não creio que seja a melhor solução

Grato


XLEGENDARY 11/08/2016 11:10:29
#465727
Resposta escolhida
pela rede interna?
só [Ô]catar[Ô] o caminho, ja que na rede ele abre o caminho de onde está o arquivo original

ja em local é ao contrario, ou seja, o caminho fisico de onde está o arquivo original.

se for rede externa pode pegar o ip publico por exemplo.
JCM0867 11/08/2016 11:27:20
#465728
Ok,
Qual é o Comando que lé caminho que executou?
Por exemplo se acessar local mostrará que o caminho é [Ô]C:\Cesc40\Cesc.exe[Ô]
Por exemplo se pela rede local mostrará que o caminho é [Ô]Y:\Cesc40\Cesc.exe[Ô] ou dependendo do compartilhamento [Ô]Y:\Cesc.exe[Ô]
XLEGENDARY 11/08/2016 11:58:57
#465729
to no celular mas se não me engano é isso aqui

System.Environment.CurrentDirectory

edit
pra testar faça assim

Dim Caminho As String
Caminho = System.Environment.CurrentDirectory
MsgBox(Caminho)

acho que em VB é isso, faz tempo que não faço codigos vb

em c# é assim

string caminho;
caminho = System.Environment.CurrentDirectory;
MessageBox.Show(caminho);

ele dará o caminho de onde está o exe. ai basta salvar isso ;)

KURTGU 11/08/2016 14:35:39
#465734
Dim Caminho As String
Caminho = Application.StartupPath
MsgBox(caminho)


com o application startuppath você pega a onde esta o executável...
ACCIOLLY 11/08/2016 16:10:03
#465737
então cara
depende bastante do banco. Eu até gosto de trabalhar com arquivos externos tipo um XML. Só que para o MySQL eu apenas gravo nesse arquivo XML o caminho do banco e o nome dele criptografados com 64 bits. Ai na tela de login eu uso o usuario e a senha do banco pego os dois e implemento eles na string de conexão. E isso é muito bom cara! porque o mysql já oferece todos os recursos de auditoria. Tudo que o usuario faz é armazenado no banco, então pra que fazer uma tabela de usuário?
Acho que o SQL Server tem recursos similares, pois você pode cadastrar vários usuários, pode negar ou conceder permissão individualmente para várias tarefas, e por aí.

Na prática, só crio um arquivo externo onde a aplicação lê/grava apenas o caminho do banco e o nome do banco, e no desenvolvimento da aplicação, a tela de login usa os dados dos usuários do banco. Depois que o usuario digitar o login e a senha e clica em entrar, a aplicação chama um método que retorna um true caso a conexão seja bem sucedida e um false caso seja má sucedida. Se for bem sucedida entra na aplicação normalmente, se for má mostra a mensagem pra tentar novamente.

Só isso!
ACCIOLLY 11/08/2016 16:51:48
#465739
Citação:

Gostaria que o sistema se estiver localmente executará um comando e se for acessado pela rede não executará o comando


Seu banco está em um host o qual tem um IP na rede e um MAC específico. Aliás está usando qual banco???
JCM0867 11/08/2016 17:22:45
#465740
ACCIOLLY
Uso o SQL Server localmente, em um pc ou um servidor, nunca usei banco de dados remoto pq ainda não precisei..
tb uso alguns arquivos externos com informações (TXT com o caminho do Banco como tu mencionou) e tb uso permissões para os usuários com a senha cryptografada em 64 bits gravadas no Banco de dados
Mesmo assim Agradeço sua explicação, mas praticamente já faço como descreveu, só não uso XML

Mas só preciso que o sistema diga o caminho que acessei, depois fica fácil o que pretendo fazer.

Esse comando do XLEGENDARY é o que eu precisava

Dim Caminho As String
Caminho = System.Environment.CurrentDirectory
MsgBox(Caminho)

ou a do KURTGU

Dim Caminho As String
Caminho = Application.StartupPath
MsgBox(caminho)
ACCIOLLY 11/08/2016 17:44:22
#465741
Sem problems.
Tópico encerrado , respostas não são mais permitidas