none
Substituo de ficheiros RRS feed

  • Pergunta

  • boa tarde a todos!
    queria saber como posso criar um programa em que de pra alterar os ficheiros do windows.
    Melhor explicando não sei quem conhece o VistaGlazz que substitui 3 ficheiros do windows
    C:\Windows\System32\themeui.dll
    C:\Windows\System32\uxtheme.dll
    C:\Windows\System32\shsvcs.dll


    1- Ao inciar ira ter uma descrição blablabla. Ira ter um botão com o nome "Patch Files". Ao clicar no botão ele irá substituir
    os ficheiros referidos mas:
    -se o programa não foi executado vai dar um erro "Tem que executar o programa como administrador" 
    -se foi executado como admin. ele vai abrir a form2 que vai ter texto e dois botões. 
    um botão "Reset now" e "Reset later". ao carregar "reset now" o sistema operativo vai reiniciar e ao clicar em later fecha 
    o programa


    Alguem me ajuda com os códigos?

    O meu objetivo ______ criar um sistema operativo

    sexta-feira, 24 de fevereiro de 2012 15:33

Respostas

  • Boa tarde.

    Podemos sim lhe ajudar com o código, poste o que voce ja tem pronto e lhe ajudaremos com eventuais erros ou duvidas, o código pronto será dificil voce conseguir...

    Para manipular pastas, arquivos:

    System.IO.File 
    System.IO.Directory

    Para dar permissao a execucao de arquivos, programas, existe o CAS no framework:

    http://www.codeproject.com/Articles/5724/Understanding-NET-Code-Access-Security

    http://www.devx.com/vb2themax/article/19886/1954

    Espero ter ajudado.



    Consultoria .NET

    ANALISTA DESENVOLVEDOR
    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como resposta.

    sexta-feira, 24 de fevereiro de 2012 16:43
  • Boa Tarde,

    Em relação à executar o programa como admnistrador não sei como, mas estarei pesquisando e te informando.

    Para inserir estes arquivos sugiro uma simples linha de código:

    System.IO.File.Copy("local do arquivo a ser copiado", "lugar de destino, True)

    Neste caso o lugar de destino serão:

    • C:\Windows\System32\themeui.dll
    • C:\Windows\System32\uxtheme.dll
    • C:\Windows\System32\shsvcs.dll

    Para não precisar de repetir muitas vezes é só colocar no início do formulário o código:

    Imports System.IO.File

    Aí na hora de implementar a linha de código é só usar

    Copy("...","...", true)

    Sugiro fazer somente um form e ao executar o botão reset now ele verifica se o programa foi executado como adminstrador.

    Em relação aos botões você pode fazer assim:

    • Reset Now 
    1. Verifica se o programa foi executado como administrador. (se não exibe uma message box e fecha o programa)
    2. Verifica se o arquivo para ser copiado existe (se não fecha o programa)
    3. Copia os arquivos
    4. Exibe uma mensagem de sucesso.
    • Reset Later
    1. Fecha o Programa

    Vamos ao que interessa, códigos.

    Como já disse, o 'executar como administrador' não sei ainda.

    Verifica se o Arquivo a ser copiado existe e Copia os arquivos

    If Directory.Exists(C:\Arquivos de Programas\Meu Programa\themeui.dll) Then Copy("C:\Arquivos de Programas\Meu Programa\themeui.dll", "C:\Windows\System32\", True)

    MessageBox.Show("Arquivos copiados com sucesso!", MessageBox.Buttons.OK, MessageBox.Icon.Exclamation) Else MessageBox.Show("Não foi possível copiar os arquivos", MessageBox.Buttons.OK, MessageBox.Icon.Error) End If


    NOTA: verifique se tudo deu certo pois no momento não tenho o Visual Basic no meu pc (problemas...) então fiz tudo de cabeça e com uma ajuda da web, espero que dê tudo certo!

    Quando eu tiver o meu compilador no meu pc vou ver se faço o programa e lhe envio o link para download no seu pc para dar uma olhada nos códigos prontos.

    Se quiser ler mais: http://www.macoratti.net/vbn_io.htm 

    Boa Sorte! :D


    Lucas A.

    • Sugerido como Resposta Lukas674 sexta-feira, 24 de fevereiro de 2012 19:46
    • Marcado como Resposta Eder CostaModerator segunda-feira, 5 de março de 2012 13:42
    sexta-feira, 24 de fevereiro de 2012 16:46

Todas as Respostas

  • Boa tarde.

    Podemos sim lhe ajudar com o código, poste o que voce ja tem pronto e lhe ajudaremos com eventuais erros ou duvidas, o código pronto será dificil voce conseguir...

    Para manipular pastas, arquivos:

    System.IO.File 
    System.IO.Directory

    Para dar permissao a execucao de arquivos, programas, existe o CAS no framework:

    http://www.codeproject.com/Articles/5724/Understanding-NET-Code-Access-Security

    http://www.devx.com/vb2themax/article/19886/1954

    Espero ter ajudado.



    Consultoria .NET

    ANALISTA DESENVOLVEDOR
    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como resposta.

    sexta-feira, 24 de fevereiro de 2012 16:43
  • Boa Tarde,

    Em relação à executar o programa como admnistrador não sei como, mas estarei pesquisando e te informando.

    Para inserir estes arquivos sugiro uma simples linha de código:

    System.IO.File.Copy("local do arquivo a ser copiado", "lugar de destino, True)

    Neste caso o lugar de destino serão:

    • C:\Windows\System32\themeui.dll
    • C:\Windows\System32\uxtheme.dll
    • C:\Windows\System32\shsvcs.dll

    Para não precisar de repetir muitas vezes é só colocar no início do formulário o código:

    Imports System.IO.File

    Aí na hora de implementar a linha de código é só usar

    Copy("...","...", true)

    Sugiro fazer somente um form e ao executar o botão reset now ele verifica se o programa foi executado como adminstrador.

    Em relação aos botões você pode fazer assim:

    • Reset Now 
    1. Verifica se o programa foi executado como administrador. (se não exibe uma message box e fecha o programa)
    2. Verifica se o arquivo para ser copiado existe (se não fecha o programa)
    3. Copia os arquivos
    4. Exibe uma mensagem de sucesso.
    • Reset Later
    1. Fecha o Programa

    Vamos ao que interessa, códigos.

    Como já disse, o 'executar como administrador' não sei ainda.

    Verifica se o Arquivo a ser copiado existe e Copia os arquivos

    If Directory.Exists(C:\Arquivos de Programas\Meu Programa\themeui.dll) Then Copy("C:\Arquivos de Programas\Meu Programa\themeui.dll", "C:\Windows\System32\", True)

    MessageBox.Show("Arquivos copiados com sucesso!", MessageBox.Buttons.OK, MessageBox.Icon.Exclamation) Else MessageBox.Show("Não foi possível copiar os arquivos", MessageBox.Buttons.OK, MessageBox.Icon.Error) End If


    NOTA: verifique se tudo deu certo pois no momento não tenho o Visual Basic no meu pc (problemas...) então fiz tudo de cabeça e com uma ajuda da web, espero que dê tudo certo!

    Quando eu tiver o meu compilador no meu pc vou ver se faço o programa e lhe envio o link para download no seu pc para dar uma olhada nos códigos prontos.

    Se quiser ler mais: http://www.macoratti.net/vbn_io.htm 

    Boa Sorte! :D


    Lucas A.

    • Sugerido como Resposta Lukas674 sexta-feira, 24 de fevereiro de 2012 19:46
    • Marcado como Resposta Eder CostaModerator segunda-feira, 5 de março de 2012 13:42
    sexta-feira, 24 de fevereiro de 2012 16:46