Ir para conteúdo
Fórum Script Brasil

Danleonhart

Membros
  • Total de itens

    574
  • Registro em

  • Última visita

Posts postados por Danleonhart

  1. Consegui resolver. 😁
    Foi preciso fazer uso de mais uma dependência do namespace DirectoryService: System.DirectoryServices.AccountManagement.

    Criei até uma função. Fica a dica pra quem precisar futuramente:

      Public Sub RemoveUserOfGroup(ByVal strGrupo As String, ByVal strUsuario As String)
    
            Try
                Dim ctx As New PrincipalContext(ContextType.Machine)
                Dim gp As GroupPrincipal = GroupPrincipal.FindByIdentity(ctx, IdentityType.Name, strGrupo)
    
                gp.Members.Remove(ctx, IdentityType.Name, strUsuario)
                gp.Save()
                gp.Dispose()
    
            Catch ex As Exception
                MsgBox(ex.Message, MsgBoxStyle.Critical, "Erro!")
            End Try
    
        End Sub

     

  2. Olá a todos!

    Como faço para remover um usuário de um determinado grupo da máquina local?!
    Estou tentando pelo NameSpace System.DirectoryServices.DirectoryEntry.
    Já tentei com diversos tutoriais e dicas...mas a maioria mostra como fazer utilizando o "Search", que não é suportado quando usado em máquina local (WinNT//).
    Tentei com este código adaptado do C# sem sucesso.
     

            Dim dirEntry As New DirectoryEntry("WinNT://" + Environment.UserName + "/Usuários")
    
            dirEntry.Properties("Member").Remove("Thanos")
            dirEntry.CommitChanges()
            dirEntry.Close()
            MsgBox("Removido !")

    Fonte: https://www.codeproject.com/Articles/18102/Howto-Almost-Everything-In-Active-Directory-via-C

     Quando executado o código acima, é apresentado o seguinte erro: Erro desconhecido (0x80005000)
     Quem puder me ajudar, agradeço.

  3. Olá!
    Recomendo começar do zero mesmo...o próprio Microsoft Visual Studio faz essa conversão, mas não fica perfeito. Principalmente se tiver bibliotecas de terceiros.

     Sobre o material aqui mesmo tem, e no Google e YouTube o que não falta são aulas, tutorias e passo a passo relacionado ao dotNET.

  4. Pessoal, como faço para configurar onde só pode ter acesso a subpastas com usuário autenticado.
    Tenho um web server rodando Apache onde o index é a página de login, até tudo bem. Porém se for digitado www.dominio.com/arquivos os usuários tem acesso a página "Index of/arquivos" que lista todo o conteúdo. Essa pasta é pra ser mostrada e acessada, mas apenas pelos usuários autenticados...como posso configurar isso ?!

  5. Pessoal, gostaria da ajuda de vocês na minha seguinte duvida:

    Na empresa há uma máquina rodando server web (Apache), nela também é configurada o DNS local, gostaria de saber se tem como configurar o redirecionamento para páginas (.html) internas dependendo do que o usuário digite (ou clique), tipo assim:

    "xvideos.com" redirecionar para "localhost/adults.html"
    "facebook.com" redirecionar para "localhost/social.html"
    "qualquer-site.com" redirecionar para "localhost/infos.html"
     
     O index do nosso server é ".html", mas pode ser mudado para ".php"...desde que funcione.
    Li sobre fazer isso usando um arquivo chamado ".htaccess" na raiz, mas sinceramente não sei como proceder.
  6. Pessoal...

    Tem como RESETAR as configurações feitas em uma GPO ?

    É que as configurações que faço para um determinado usuário não está sendo validada devido umas configurações feitas pelo GPEdit nas Configurações Local, então as que estão sendo seguidas é as que estão nas Configurações Local.

    Antes, quando era criado um Snap aparecia como opção para configurar: Configurações do Usuário e Configurações Local, agora só aparece Configurações do Usuário...isso na snap que está sendo criada para determinado usuário.

    Gostaria de saber também se tem como copiar todas as configurações de um usuário (Habilitadas e Desabilitadas) para outro.

    Se alguém puder me ajudar agradeço !

  7. Qual o Banco de Dados que está utilizando?

    Informe o tipo de cada campo do seu banco...se é CHAR, VARCHAR, INT...

    Percebo que você orienta em seu script como que todos os campos sejam CHAR ou VARCHAR...apenas os campos Ano e KM são diferentes...

    Com certeza esse erro é na query que você está passando...

  8. É isso mesmo. Incompatibilidade de versão.

    DAO também não é uma boa opção de comunicação APLICAÇÃO-BASE DE DADOS... é ultrapassada. Sem falar que a ADO oferece mais recursos e segurança.

    DICA:

    Mude para ADO e utilize o Access 2007 ou 2010. O banco está mais seguro e não é muito complicado de configurar.

    Eu utilizo muito, pois não gosto de programar a conexão via "botão", e sim via script (fica mais profissional :closedeyes: )

  9. Olá Mohamed...

    Pode ser mais específico ?!

    Ter como tem...mas essa linha tem algum identificador ? tipo, iniciar com determinada palavra, letra, número ou seja lá o que for.

    Pois assim pode-se usar o "FileSystemObjects" e o "TextStream" da biblioteca "scrrun.dll" para fazer isso, ou até mesmo a instrução "Open For" para tal.

    VALEU !

  10. Olá Zaupa Junior !

    Segue um exemplo que deva lhe ajudar a fazer o que quer.

    http://www.mediafire.com/?010l09612qspxi3

    Coloquei comentários dos scripts para orientar melhor, pois não sei seu nível de conhecimento em VB-6.

    Note que na rotina "Listr_Arquivos" coloquei um adicional na hora da listagem dos arquivos e diretórios,

    para ficar mais distinto na ListBox quem é arquivo e quem é diretório.

    Qualquer coisa posta novamente.

    Ah! e utiliza a tag CODE na barra de ferramentas do fórum para colocar os script's:

    Tag_CODE.png

    Fica mais organizado e de fácil compreensão, valeu ?!

    Té mais !

    PS:

    Respondi novamente pois para Editar Post tá uma negação !

    Retornando erros constantemente. <_<

  11. Olá Jessé Augusto !

    Pelo pouco que sei, isso que você fez não vai resolver...pois se a aplicação necessitar ( e com certeza necessita na grande maioria das vezes) de bibliotecas (.DLL) o erro vai persistir, e olhe lá se não surgirem mais !

    Aconselho reinstalar a aplicação...

    agora com certeza fizeram algo no PC, para o programa está rodando normalmente e de uma hora pra outra parar de funcionar...

    mexeram em alguma biblioteca do VB...tenta reinstalar o "MDAC_TYP"...pode ser que dê certo...

    VALEU !

  12. Wakim...

    Usa a tag CODE que facilita a leitura do seu código... :mellow:

    O que vejo em seu script é que você fecha e destrói a variável de conexão...

    Conexao.Close
    Set Conexao = Nothing
    Sem conexão como pode ser feito a busca no BD ?! E também você não está informando o nome do Campo do BD que quer carregar...veja que você colocou "Revista" sendo o nome da Tabela, e repetiu como sendo o nome da Coluna também:
    Set Dados = Conexao.Execute("SELECT * FROM Revista")  ' Nome da Tabela
    ...
    Debug.Print Dados("Revista")                  ' Nome do Campo que deseja pegar os dados
    cmbrevista.AddItem (Dados("Revista"))   ' Nome do Campo que deseja pegar os dados
    Corrigindo um pouco seu código, eu faria assim:
    Dim Banco    As String
     Dim Conexao  As ADODB.Connection
     Dim Dados    As ADODB.Recordset
     Dim Autores  As ADODB.Recordset
     Dim tmpVal
    
       Set Conexao = New ADODB.Connection
       Conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=bd.mdb;Persist Security Info=False"
       
         Set Dados = Conexao.Execute("SELECT * FROM Revista")
         cmbrevista.Clear
            
            Do While Not Dados.EOF
               tmpVal = Dados("Nome_do_Campo")   ' Informe o nome do Campo que deseja pegar os dados.
                  Debug.Print tmpVal
                  cmbrevista.AddItem tmpVal
                  Dados.MoveNext
            Loop
    Veja que aloquei momentaneamente o valor do campo em uma variável, pois sempre dá erro quando tento usar o mesmo valor de retorno de um campo mais de uma vez na rotina. Lembre-se que se quiser carregar valores de outro campo em outra ComboBox, basta seguir o mesmo conceito, mudando apenas o nome do campo. Um ponto de observação é que se você quer apenas o campo "Nomes" (por exemplo), não há necessidade de fazer um "SELECT" pegando tudo do banco de dados...pode simplesmente pegar apenas aquele determinado campo, assim:
    Set Dados = Conexao.Execute("SELECT Nomes FROM Revista")
    Isso agiliza o processamento de dados. Se você quiser que a ComboBox fique com o primeiro valor já selecionado, basta colocar este script após o "Loop":
    cmbrevista.ListIndex = 0

    Curiosidades:

    * Se você está usando o Access 2007, como o formato de seu Banco de Dados é ".mdb" ???

    O formato de BD's Access 2007/2010 é ".accdb".

    * E o provedor não é : "Provider=Microsoft.Jet.OLEDB.4.0"

    e sim o: "Provider=Microsoft.ACE.OLEDB.12.0"

    Mas tenta a sorte aê !

    se não funcionar avisar...e se funcionar também ! :D

    VALEU !

  13. Valeu !

    Mas teu código fica assim:

    ...
    
    ' Se a ID for um valor do tipo Inteiro...se for String é : sql = "SELECT * FROM alunos WHERE ID_Aluno='" & v_ID "'"
    sql = "SELECT * FROM alunos WHERE ID_Aluno=" & v_ID
    myCon.Open "DSN=server_spi"
    With myCmd
          .ActiveConnection = myCon
          .CommandType = adCmdText
          .CommandText = sql
    End With
    With myRS
       .LockType = adLockPessimistic
       .CursorType = adOpenKeyset
       .CursorLocation = adUseClient
       .Open myCmd
    End With
    
    myRS!user = Environ$("nwusername")
    myRS!contexto = contexto
    myRS!dlogin = Format$(Date, "dd/mm/yy")
    myRS!hlogin = Format$(Time, "hh:mm")
    myRS!maquina = sockMain.LocalHostName
    myRS!workgroup = wg
    myRS!maquinaip = sockMain.LocalIP
    myRS!pcnum = pcnum
    myRS!duvida = txtDuvida.Text
    myRS.Update
    ...

    Porque se você salva como vazio, como que o aluno vai ter a decisão de colocar a dúvida ???

    Assim vai depender dele...se colocar algo, é salvo...senão, fica salvo como "NULL" no banco ( se você tiver configurado no Banco para o campo aceitar NULL).

    :rolleyes:

  14. Se não sabe nada, nada...aconselho começar por Algoritmo e Lógica de Programação. Legal.gif

    Outro detalhe, aqui é o fórum de VB-6...

    Para C#, VB.NET e outras linguagens da plataforma DotNET siga o link abaixo:

    Fórum NET

  15. Você está programando na IDE Visual Basic 6.0 ou está utilizando o Editor VBA do Excel ?

    Se for na IDE aqui vai minha opinião:

    Acho que para sua função seria interessante utilizar o "Select Case" ao invés do "If Else"...

    sem falar que você está usando o If Else errado...

    Seria mais ou menos assim com o "Select Case":

    'Função Pesquisar
    
    Function Pesquisar()
    Dim SQL As String
    Dim v_Region As String
    
    ' Aloco na variável "v_Region" o conteúdo escolhido na ComboBox:
    v_Region = ComboBoxEntidade.Text
    
    ' Inicio a rotina de decisão "Select Case" (Selecione Caso...)
      Select Case v_Region
             
          ' Caso seja SUL:
             Case "SUL"
                  SQL = "SELECT * FROM LOGIN_SUL WHERE MUNICIPIO = '" & ComboBoxMunicipio.Text & "'"
                  
          ' Caso seja NORTE:
             Case "NORTE"
                  SQL = "SELECT * FROM LOGIN_NORTE WHERE MUNICIPIO = '" & ComboBoxMunicipio.Text & "'"
                 
          ' Caso seja OESTE:
             Case "OESTE"
                  SQL = "SELECT * FROM LOGIN_OESTE WHERE MUNICIPIO = '" & ComboBoxMunicipio.Text & "'"
      End Select
      
    ' Aqui a consulta é aberta segundo a decisão tomada no "Select":
      AbreConsulta SQL
    
    
         If vRec.RecordCount = 0 Then
            MsgBox "MUNICIPIO NÃO ENCONTRADO!"
            Exit Function
    
         Else
            txtMunicipio.Text = Trim(vRec!MUNICIPIO) & ""
            txtVencimento.Text = Trim(vRec!VENCIMENTO) & ""
            TextContato.Text = Trim(vRec!CONTATO) & ""
            TextTelefone.Text = Trim(vRec!TELEFONE) & ""
            TextEmail.Text = Trim(vRec!Email) & ""
            TextEndereçoEletronico.Text = Trim(vRec!ENDEREÇO_ELETRONICO) & ""
            TextLogin.Text = Trim(vRec!LOGIN) & ""
            TextSenha.Text = Trim(vRec!SENHA) & ""
            TextDForma.Text = Trim(vRec!FORMA) & ""
            TextOutro.Text = Trim(vRec!OBSERVAÇÃO) & ""
    
         End If
    
    End Function
    
    ' Botão Pesquisar
    
    Private Sub cmdPesquisar_Click()
    
       Call Pesquisar
    
    End Sub
    Usando o "If Else" fica assim:
    'Função Pesquisar
    
    Function Pesquisar()
    Dim SQL As String
    
     If ComboBoxEntidade.Text = "SUL" Then
        SQL = "SELECT * FROM LOGIN_SUL WHERE MUNICIPIO = '" & ComboBoxMunicipio.Text & "'"
    
     ElseIf ComboBoxEntidade.Text = "NORTE" Then
        SQL = "SELECT * FROM LOGIN_NORTE WHERE MUNICIPIO = '" & ComboBoxMunicipio.Text & "'"
    
     ElseIf ComboBoxEntidade.Text = "OESTE" Then
        SQL = "SELECT * FROM LOGIN_OESTE WHERE MUNICIPIO = '" & ComboBoxMunicipio.Text & "'"
        
     End If
    
       AbreConsulta SQL
    
          If vRec.RecordCount = 0 Then
             MsgBox "MUNICIPIO NÃO ENCONTRADO!", vbExclamation
    
          Else
             txtMunicipio.Text = Trim(vRec!MUNICIPIO) & ""
             txtVencimento.Text = Trim(vRec!VENCIMENTO) & ""
             TextContato.Text = Trim(vRec!CONTATO) & ""
             TextTelefone.Text = Trim(vRec!TELEFONE) & ""
             TextEmail.Text = Trim(vRec!Email) & ""
             TextEndereçoEletronico.Text = Trim(vRec!ENDEREÇO_ELETRONICO) & ""
             TextLogin.Text = Trim(vRec!LOGIN) & ""
             TextSenha.Text = Trim(vRec!SENHA) & ""
             TextDForma.Text = Trim(vRec!FORMA) & ""
             TextOutro.Text = Trim(vRec!OBSERVAÇÃO) & ""
    
          End If
    
    End Function
    
    ' Botão Pesquisar
    
    Private Sub cmdPesquisar_Click()
    
       Call Pesquisar
    
    End Sub

    Beleza ?!

    Testa aí ver se tá funcionando...

    Só um detalhe...para facilitar a leitura do seu código, utilize a tag "CODE".

    Ela é a última opção da caixa de ferramentas que fica disponível logo acima.

    VALEU ! Legal.gif

  16. Pessoal...

    Estou iniciando em desenvolvimento WEB, e utilizo a IDE Aptana para estudar meus scripts HTML, PHP e JavaScript.

    Gostaria que a IDE apresentasse o recurso de "auto-completar" para a linguagem JavaScript...no HTML e PHP ele auto completa numa boa, mas no JavaScript não rola.

    Alguém aqui utiliza o Aptana, e sabe configurar este recurso ?

    Obrigado !

  17. É isso mesmo rafaelcpcunha...

    Ao invés de colocar para inserir um novo registro, simplesmente você coloca para atualizar...

    e se a caixa de texto fica vazia ou com texto, a rotina de "UPDATE" é que vai encarregar-se de atualizar o campo...então, não importa como estará a caixa de texto, do jeito que estiver será alterada no banco (vazia ou com texto).

    Qual o nome da caixa de texto ??? lembre-se de apontar ela como referência para atualização do campo "myRS!duvida".

    VALEU !

  18. OK... você tem um módulo e a variável está no módulo...

    mas você passa o nome do usuário logado para a variável assim que ele faz login ?!

    Basta fazer assim no momento em que a aplicação for iniciada:

    var_Usuario_Logado = "Fulano"

    (veja que usando as tag CODE o script fica destacado)

    No exemplo, "var_Usuario_Logado" é uma variável Global válida em todos os Form's da aplicação.

    O que pude ver é que você abre a conexão duas vezes...no "Sub Main" e no "Load" do Form1...

    Se você já abriu no Main e em seguida abriu o Form, então não é necessário abrir novamente no Load...

    Seria interessante informar também como está a estrutura de seu banco de dados...pois se em uma Tabela você tem "ID_Nome" e "Nome", e na outra tem "ID_Nome" e "Nota", creio que na Tabela onde fica salvo o "nome" e a "nota" haja repetição no campo nome correto ?!

    Se quiser e puder postar o projeto facilita muito, pois as vezes pensamos uma coisa e é outra bem diferente ;)

    VALEU !

×
×
  • Criar Novo...