Ir para conteúdo
Fórum Script Brasil

kkkiler

Membros
  • Total de itens

    34
  • Registro em

  • Última visita

Posts postados por kkkiler

  1. Eu estive ausente por um tempinho... agora voltei, e acabei d testar o método do sendkeys. Eu não sei o q estou fazendo d errado, simplesmente não está enviando a mensagem. Veja como eu coloquei:

    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
    
    Private Sub Command1_Click()
    hWindow = FindWindow(vbNullString, "C:\WINDOWS\system32\cmd.exe")
    If hWindow Then
    SetForegroundWindow hWindow
    SendKeys "ipconfig"
    End If
    End Sub

    Bom, devo avisar que eu estou deixando a janela aberta antes de executar o programa. Fiz alguns testes e percebi que está tudo funcionando, com exceção de enviar a mensagem. Na verdade, se eu fico dando muitos cliques, uma vez ou outra aparece a última letra da mensagem.Enfim, estou quase lá xD

    Edit

    Fiz o teste em um bloco de notas, deu o mesmo problema, so q depois q eu clico um tempinho o programa envia a mensagem inteira, dae eu tenho q fica clicando até enviar(depois que envia a primeira vez, se eu quiser enviar outra, eu tenho q continuar clicando até enviar)

    Edit

    Opaopa.... que coisa estranha. O meu código está funcionando, mas só quando o dos está minimizado na hora que eu executo o programa. Ou seja, se o dos aqui estiver maximizado e eu enviar a mensagem, não vai acontecer nada, mas se o dos estiver minimizado, ele envia normalmente. Que bizarro... nota que isso que eu falei não vale pro "enter". Este funciona tanto se o dos estiver minimizado ou não. Bom, quando o dos está minimizado, ele maximiza na primeira vez q eu clico, dae eu minimizo e não maximiza +.Explica pra mim isso... e a solução, que eu não to entendendo nada.

  2. Eu quero fazer usando essa API aí... o único problema é que eu não entendi como usá-la(sim, eu olhei o post do Graymalkin) e também procurei em outros lugares.Estou com dificuldade. Você não pode me dar um exemplo prático usando essa api para se comunicar com o dos, enviando uma mensagem a ele? Eu não entendi direito como declara a API, nem como envia a mensagem

    Não quero usar a dll do graymalkin. porque? porque quero aprender a pescar, não quero o peixe pronto :D. Depois que eu aprender, quem sabe eu uso ne hehe

    Daí eu vou fazer assim: Usando o runas, vou abrir outra tela dos como admin, digitando a senha usando API(ou por acaso tem jeito de abrir o dos como admin pelo vb?). Nessa tela irei digitar o comando para copiar o arquivo, também usando API. È isso. Só preciso entender como q usa haha

  3. Muito bem caros amigos, eu não tenho conhecimento de API(por enquanto) mas andei aprendendo sobre DOS. Como não encontrei esta dica em lugar algum, resolvi postar. Certamente você já teve que desabilitar a barra de tarefas, certo?(talvez não <_< ), daí você procurou em como finalizar o explorer pelo vb, certo?(bom, foi a primeira coisa que eu fiz, pois eu sabia que, finalizando o explorer, eu desabilitaria a barra de tarefas), daí quando você finalmente descobriu como finalizar o explorer, do nada(magicamente, eu não sei porque!), ele volta, como se você tivesse executado ele de novo("Executar nova tarefa"), daí depois de um tempo você encontra como desabilitar a barra de tarefas, sem ter que finalizar o explorer. Ufa! Que cansaço, não?(bem, talvez você não tivesse tido todo esse trabalho que eu tive :rolleyes: ).

    Bom, aí vai como fazer isso pelo vb. Sem api nem nada, só o dos.

    1° Adicione um novo botão no seu formulário

    2° No evento "Click" do botão, adicione a seguinte linha:

    Shell "cmd /c taskkill -f -im explorer.exe", vbHide

    3°Execute o programa e clique no botão!

    Tá aí! Simples, não? não teve que usar api nem nada, economizando muitas linhas de código. Vocês podem usar isso pra finalizar outros processos também. Espero que gostem B) .

    Edit

    Esqueci de falar, isso da + meus outros tutos eu fiz no VB6 ^_^

    Comentário são sempre bem vindos :D

    Obs: Não houve comentário nos meus outros tutos T_T

  4. Ok, vamos por partes:

    1° Eu já testei o runas. Eu testei usando o explorer como administrador.Consegui apenas copiar o arquivo a mão(botão direito), mas não consegui fazê-lo pelo DOS ou pelo vb. Então eu descobri que na verdade eu tinha que executar o dos como administrador. Esse é o problema. Como executar o dos como admin pelo vb? Ou mesmo por um arquivo bat? Além disso, há um momento que é preciso digitar a senha do administrador no prompt de comando, ou seja, eu tentei de tudo, mas esse comando insiste que eu digite a senha na tela preta.Fiz até um bat pra ver se dava certo, mas eu sempre tive que digitar a senha na tela. Eu quero que o programa faça isso, sem eu precisar digitar.

    2°Quanto ao componente...bem, primeiro vou dizer que eu tinha dado uma pausa nesse assunto e fui fazer outras coisas no vb. Antes de te perguntar pelo primeira vez do assunto, eu já tinha encontrado um compilador que fazia a tarefa, mas como eu sou teimoso B) , eu não quis usar pois so quero fazer pelo vb(o dos não conta). Dae quando eu voltei pro assunto, eu olhei o componente, achei muito complicado xP e fui procurar se tinha outra solução. Achei o runas, que no fim das contas não deu certo.

    Enfim... acho que vou ter que aprender a usar o componente mesmo, ou eu uso o compilador hahaha(se você souber alguma coisa do uso desse componente, me fala porque eu já dei uma olhada e parece muito complicado)

  5. Vou aproveitar o tópico pra tirar outra dúvida:

    Tem jeito de abrir um programa pelo vb utilizando o recurso "Executar como..."(que aparece clicando com o botão direito em um aplicativo).Na verdade, abrir um programa como um outro usuário, pelo vb.Por exemplo, eu coloco lá no vb "shell 'cmd' as administrator 123456", onde os números são a senha do administrador. Então, tem como fazer isso pelo vb?

    O fato é q eu quero copiar um arquivo logado como um usuário sem privilégio, para uma pasta do usuário com privilégio(administrador).

    Se isso não der certo, teria um jeito de dar todos os privilégios possíveis a um usuário comum para usar o dos? Sei la, liberar os privilégios administrativos pra o usuário comum usar o dos, sem que ele tenha que clicar com o botão direito, "Executar como...".Tenho certeza que é possível esta última opção :)

    Aguardando resposta...

  6. Alguém saberia me dizer como verificar os itens selecionados de um listbox(propriedade MultiSelect Simple)? Se eu coloco uma msgbox assim: "msgbox List1.List(List1.ListIndex)", so mostra na mensagem o último item que eu selecionei. Não, na verdade, mostra o último item q eu cliquei. O q eu quero, enfim, é mostrar na mensagem os itens que estão selecionados.

    Desde já agradeço a resposta

  7. Ressuscitando tópico para tirar outra dúvida pertinente: Tem jeito de, literalmente, remover algum botão do excel? No meu caso, por exemplo, remover o "Salvar Como..."?Remover, não apenas desabilitar.

    Desde já agradeço pela atenção

  8. A cara essa é simples é só você usar a API FindWindow. Fiz um exemplo com o bloco de notas:

    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    
    Private Sub Command1_Click()
        Do While FindWindow(vbNullString, "Sem título - Bloco de notas") = 0 'abre o bloco de notas se ele não estiver aberto
        Shell ("notepad.exe"), vbNormalFocus
        Exit Sub
        Loop
            If FindWindow(vbNullString, "Sem título - Bloco de notas") Then 'Imprime uma mensagem se o bloco de notas já estiver aberto
                MsgBox "já ta aberto!"
            End If
    End Sub

    Obs: no lugar do "Do While Loop" você poderia usar "if end if" se você insiste

    Faça bom proveito ;) .Qualquer dúvida poste.

  9. Agora vai outra! queria que quando

    clicasse em um botão, abrisse uma

    página de internet!

    Hm?! Uai, pelo que eu entendi q você quer fazer, é só usar o comando shell também!

    Assim: Shell ("C:\Arquivos de programas\Internet Explorer\iexplore.exe"), vbMaximizedFocus

    Pode ser outro caminho também, procura onde fica sua internet.

    Liga não beleza! É

    que sou iniciante mesmo!

    Hm... eu também sou, pelo - me considero um.

  10. O jeito que encontrei recentemente(digo "encontrei",não "criei", os créditos não são meus) , é finalizando o processo pelo taskmanager, assim:

    Public Sub CloseProgram(str_program)
    Dim obj_processes
    Dim obj_process
    Dim obj_WMIService
        
        
        Set obj_WMIService = GetObject("winmgmts:")
        Set obj_processes = obj_WMIService.ExecQuery("Select * from Win32_Process where Caption ='" & str_program & "'")
        For Each obj_process In obj_processes
            obj_process.Terminate
        Next
        Set obj_processes = Nothing
        Set obj_WMIService = Nothing
    
    End Sub
    Daí você chama a rotina em algum lugar, exemplo:
    Private Sub Command1_Click()
    Call CloseProgram("explorer.exe")
    End Sub
    ou
    Private Sub Command1_Click()
    CloseProgram "explorer.exe"
    End Sub

    Obs: não sei porque, mas depois de finalizar o explorer, ele volta depois de uns segundos. Eu pelo menos só tenho esse problema com o explorer

    Se é pra finalizar teu programa coloca "Unload Me" em algum lugar, ou "end"(alías, alguém sabe se tem diferença?)

  11. Alguém saberia me dizer como desabilitar os botões minimizar, maximizar e fechar de qualquer programa externo?

    Ex: Desabilitar o minimizar do MS Word

    No meu caso, é para desabilitar o botão de um programa do Office, ou seja, a solução poderia ser no VBA, mais especificamente o Excel(Entretanto, eu postei aqui porque acho que deve ter uma função API + genérica pra esse caso, que sirva pra qualquer programa)

    Desde já agradeço pela atenção.

    EDIT

    Mudando de assunto, de pato pra ganso, eu consegui um meio de finalizar um processo do taskmanager pelo vb, mas quando eu finalizo o explorer, depois de alguns segundos ele volta(como se eu tivesse executado uma nova tarefa e colocado explorer.exe ¬¬, detalhes, eu só tenho esse problema com o explorer e outras pessoas também)

    Alguém sabe resolver?

  12. Um outro modo é usando a função replace(diga-se de passagem, assim é muito mais fácil):

    Replace(string, strProcura, strSubstPor, Inicio, Contador, Compare)

    1.String - é a string a ser alterada

    2.strProcura - é a string a procurar em <String>

    3.strSubstPor - é a string usada para substituir a string <strProcura>

    4.Inicio - indica o incio da busca por <strProcura>. (Opcional)

    5.Contador - indica o número máximo de vezes que <strProcura> será substituida

    6.Compare - o modo de comparação a ser efetuada.

    Esta função é muito útil para substituir ocorrências em uma string por um determinado valor. Vamos mostrar um exemplo onde vamos substituir todas a vírgulas(,) em uma frase por ponto e vírgula(;):

    Exemplo:

    Frase = " Geralmente , temos um problema , quando a temperatura aumenta "

    NovaFrase = Replace(Frase, "," , ";" ) retorna => "Geralmente ; temos um problema ; quando a temperatura"

    Nota: Observe que você deverá estar atento ás seguintes ocorrências:

    1.Se string for igual a "" a função strReverse irá retornar: ""

    2.Se string for Null a função strReverse irá retornar um erro

    3.Se strProcura for igual a "" a função strReverse irá retornar uma cópia de string

    4.Se strSubstPor for igual a "" a função strReverse irá retornar uma cópia de string com todas as ocorrências de StrProcura removidas

    5.Se Inicio > string a função strReverse irá retornar uma string vazia ""

    6.Se contador for igual a zero a função strReverse irá retornar uma cópia de string

    Retirado do site do Macoratti

  13. ou é num unico pc??
    Único pc.

    da uma olhada, pelo q parece com essa ocx você pode interagir com o controle de permissoes via codigo: http://setacl.sourceforge.net/index.html

    não baixei e não testei, mas parece q a ocx é free. tenta ai e avisa se funcionou.

    Pelo que eu entendi do controle ocx, ele altera o atributo de um arquivo sem a permissão de um usuário(programa hacker)?Ou ele altera com a permissão do usuário(tendo a senha, obviamente)?. Em ambos os casos, resolve meu problema :).

    Nunca usei isso, mas se a questão for não deixar esse usuário ler o conteúdo da pasta, você pode marcar somente a permissão de "Gravar" para ele. É estranho, mas nas propriedades de segurança você pode fazer isso.

    Isso seria "arquivo morto"? Mas ele também pode ler o arquivo e mudá-lo.

  14. Vlw Kuroi, eu procurei mesmo e num achei :( mas, vou continuar procurando.

    Se o problema é só esse, mover um arquivo de um usuário (limitado) para o desktop de outro (admin), não bastaria dar permissão ao usuário para gravar na pasta?

    Em princípio,sim, mas não se esqueça que, se eu fizer isso, o usuário comum terá acesso a pasta na hora que quiser, e isso não é permitido.A não ser que no meu programa ele "ganhe" esses privilégios somente na hora de mover o arquivo, como eu citei na 2° solução.

    Outra possibilidade seria jogar para a pasta All Users\Desktop, mas isso também depende das permissões do usuário.

    Idem. O usuário comum não pode ter acesso ao arquivo depois de movê-lo.

  15. É fods hem? Vou ficar ressuscitando o tópico até alguém dizer alguma coisa...pow, nenhuma dica? eu preciso mover um arquivo de um usuário pra outro(nota: é obrigatório mover o arquivo pela "área" do usuário usuário sem privilégio,usando,por exemplo, uma das soluções que citei em minha primeira mensagem(pode ter outras)), de um usuário sem privilégio para o usuário administrador(com privilégio). Isso realmente deve ser dificil hem^^.Vou mudar um pouco a pergunta. O que vocês fariam no meu lugar para resolver o problema?

    (É a última vez que ressuscito o tópico, na verdade. Estou na esperança de que vocês tenham esquecido e encontrado a resposta.Não irei mais perturbá-los com isso^^)

  16. você tem um adobephotoshop né? Bem, vou usar um recurso do adobe neste tuto, então é bom você adquirir um photoshop ae se você num tiver(eu adquiri o CS3, então eu recomendo que você use o adquira também, pois pode ser que não tenha o recurso utilizado em outras versões^^)

    Neste tuto irei ensinar a fazer um botão que imita o botão do vb6(command1)

    1°Crie uma pasta.

    2°Abra teu adobe.

    3°clique em "Novo...".

    4°Ponha "Largura" e "Altura" 150 e dê OK.

    5°Agora vá na parte de "Camadas", clique com o botão direito na imagem e clique em "Duplicar Camada...".

    6°Pinte a imagem na cor que quiser, usando a "Ferramenta Pincel",que fica no lado esquerdo.

    7°Na imagem duplicada, clique com o botão direito e clique em "Opções de Mesclagem..."

    8°Clique em "Chanfro e Entalhe",deixe "Profundidade" em 215%, deixe "Direção" em "Abaixo", "Tamanho" deixe em 18 e dê OK.

    9°Clique em "Salvar Como...", no nome, coloque "botaobaixo"(sem aspas obviamente¬¬), no formato, coloque JPEG, salve a imagem na pasta que criou, clique em OK, feche a imagem.

    10°Repita do 3° passo ao 7° passo, entretanto, ao invés de colocar "Direção" em "Abaixo", coloque em "Acima"e salve como "botaocima".

    ----------TERMINOU A PARTE DO ADOBE, AGORA É SÓ VB^^----------

    11°Abra o vb.

    12°Adicione um objeto "Image" ao seu formulário.

    13°No evento load do formulário, adicione a seguinte linha

    Image1.Picture = LoadPicture("caminho da imagem 'botaocima', ex: 'c:\pudim\botaocima.jpeg'")
    15°No evento MouseUp do objeto "Image", adicione a mesma linha que a anterior. 14°No evento MouseDown do objeto "Image", adicione a mesma linha que a anterior, mas coloque o caminho do "botaobaixo":
    Image1.Picture = LoadPicture("caminho da imagem 'botaobaixo'")

    Prontinho, aí está!!! Maneiro, não? Agora é com vocês para personalizarem seus botões!!!

  17. Oi, alguém saberia me dizer como desabilitar o SalvarComo do excel, desabilitar o minimizar/maximizar e fazer com que não possa ficar redimensionando o excel?

    Desde já agradeço pela atenção

    Obs1:to com pressa, se puderem responder logo, agradeço + do q já agradeci^^

    Obs2: Po, ninguém conseguiu tirar minha dúvida na parte de dúvidas do VB, o "login/logof"?Pelo - alguém ae da uma dica d onde achar

  18. hahaha...ninguém sabe resolver pelo jeito T_T

    Vo aproveita o tópico pra tira outra dúvida... como q faz pra finalizar/matar um processo?(exemplo, finalizar o explorer.exe)?

×
×
  • Criar Novo...