none
Criar uma extensão de arquivos propria

    Question

  •  

    Pessoal preciso muito de uma ideia de como posso estar criando uma extensão propria. Ex.: arquivo.minhaextensao

     

    Alguem por favor me ajudem...

     

    Vlw
    Thursday, December 11, 2008 10:54 AM

Answers

All replies

  • Olá Rogério,

     

    Existem dezenas de artigos na Internet que explicam como você pode associar extensões à sua aplicação, inclusive extensões que você inventar:

     

    System File Association
    http://www.codeproject.com/KB/dotnet/System_File_Association.aspx

     

    Associate File Extension with Shell OPEN command and Application
    http://www.codeproject.com/KB/shell/cgfiletype.aspx?fid=846&df=90&mpp=25&noise=3&sort=Position&view=Quick&select=1589623#xx1589623xx

     

    CreateFileAssociation - Creating a new file association
    http://www.devx.com/vb2themax/Tip/19554?type=kbArticle&trk=MSCP

     

    FileAssociation
    http://www.mentalis.org/soft/class.qpx?id=5


    Abraços,
    Caio Proiete



    Caio Proiete
    Microsoft MVP, MCT, MCPD, MCTS, MCSD
    http://caioproiete.net
    Thursday, December 11, 2008 11:53 AM
    Moderator
  • Bom dia,

     

     

    Cara é o segunte eu estava querendo isso para poder abrir a aplicação em um programa prorpio meu...

     

    tipo que tenho um programa de video onde meus arquivos de video que tenho minha extensão poderiam abrir...

     

    será que consigo fazer isso?

     

     

    Obrigado

     

    Thursday, December 11, 2008 12:10 PM
  •  Rogerioii wrote:

    Cara é o segunte eu estava querendo isso para poder abrir a aplicação em um programa prorpio meu...

    tipo que tenho um programa de video onde meus arquivos de video que tenho minha extensão poderiam abrir...

     

    Olha Rogério,

     

    Sim, você consegue... O primeiro passo é associar a extensão que você quer à sua aplicação. Os artigos que indiquei acima, mostram como isso é feito.

     

    Em seguida, você precisa apenas analisar os parâmetros de entrada da sua aplicação (command-line arguments), para receber o nome do arquivo que deve ser aberto.

     

    Por exemplo, quando você dá dois cliques em um arquivo, o Windows descobre qual é a aplicação associada à esse tipo de arquivo, e então se encarrega de executar uma linha de comando mais ou menos assim:

     

    Code Snippet

     

     NomeDaAplicacao.exe NomeDoArquivo.txt

     

     

    Então, a sua aplicação é que deve receber esse parâmetro (nome do arquivo) e se encarregar de abrí-lo.

     

    Os tópicos abaixo mostram como isso funciona:

     

    Paramêtros entre executáveis
    http://forums.microsoft.com/msdn-br/ShowPost.aspx?PostID=4022743&SiteID=21

     

    Condicionar Inicialização
    http://forums.microsoft.com/msdn-br/ShowPost.aspx?PostID=3925612&SiteID=21

     

    Executar comando em um programa externo
    http://forums.microsoft.com/msdn-br/ShowPost.aspx?PostID=3491030&SiteID=21

     

    Linha de Comando em Console
    http://forums.microsoft.com/msdn-br/ShowPost.aspx?PostID=671541&SiteID=21

     

    Dúvida com o Main no c#
    http://forums.microsoft.com/msdn-br/ShowPost.aspx?PostID=4050468&SiteID=21



    Abraços,
    Caio Proiete



    Caio Proiete
    Microsoft MVP, MCT, MCPD, MCTS, MCSD
    http://caioproiete.net
    Thursday, December 11, 2008 3:47 PM
    Moderator
  • Cara desculpe, eu não estou sabendo explicar direito, mas eu estou precisando muito disso,

     

    É assim, tenho um arquivo de video e quero que ninguem consiga copia-lo do cd, tipo que so o meu programa que tera esse privilegio...

     

    Ex. um arquivo de video com outro formato, onde o media player ou nenhum outro programa consiga roda-lo...

     

    Vlw é isso...

     

     

     

    Thursday, December 11, 2008 5:55 PM
  •  Rogerioii wrote:
    É assim, tenho um arquivo de video e quero que ninguem consiga copia-lo do cd, tipo que so o meu programa que tera esse privilegio...

     

    Ex. um arquivo de video com outro formato, onde o media player ou nenhum outro programa consiga roda-lo...

     

    Olá Rogério,

     

    O mais simples é você criptografar o seu arquivo com uma senha que só a sua aplicação conheça...

     

    Isso não vai impedir que o arquivo seja copiado do CD, mas vai dificultar que outras pessoas consigam descriptografar o arquivo e ver o conteúdo original, sem saber a senha...

     

    Existem várias formas / algoritmos no .NET para criptografar arquivos... É só escolher:


    System.Security.Cryptography Namespace
    http://msdn2.microsoft.com/en-us/library/system.security.cryptography.aspx

     

    DES Class
    http://msdn2.microsoft.com/en-us/library/system.security.cryptography.des.aspx

     

    RC2 Class
    http://msdn2.microsoft.com/en-us/library/system.security.cryptography.rc2.aspx

     

    Rijndael Class
    http://msdn2.microsoft.com/en-us/library/system.security.cryptography.rijndael.aspx

     

    TripleDES Class
    http://msdn2.microsoft.com/en-us/library/system.security.cryptography.tripledes.aspx

     

    MD5 Class
    http://msdn2.microsoft.com/en-us/library/system.security.cryptography.md5.aspx

     

    SHA1 Class
    http://msdn2.microsoft.com/en-us/library/system.security.cryptography.sha1.aspx

     

    SHA256 Class
    http://msdn2.microsoft.com/en-us/library/system.security.cryptography.sha256.aspx

     

    SHA384 Class
    http://msdn2.microsoft.com/en-us/library/system.security.cryptography.sha384.aspx

     

    SHA512 Class
    http://msdn2.microsoft.com/en-us/library/system.security.cryptography.sha512.aspx



    Abraços,
    Caio Proiete



    Caio Proiete
    Microsoft MVP, MCT, MCPD, MCTS, MCSD
    http://caioproiete.net
    Thursday, December 11, 2008 6:20 PM
    Moderator
  • Cara é isso mesmo...agora é so encripitar meu video e pronto...

     

    Vou começar a fazer já...

     

    Obrigado mesmo...

     

    Thursday, December 11, 2008 7:35 PM
  • Olá Rogério..... estou precisando criar um sistema semelhante a este que você está fazendo.... ou seja... eu tenho um sistema que irá rodar alguns videos que eu mesmo fiz..... aí quero proteger esses arquivos para que eles rodem apenas no programa que eu estou fazendo, e que não seja possível rodar no Mídia Player ou outro player qualquer.. os videos estão no formato AVI e WMV...... você conseguiu criar as extensões de arquivos próprias????

     

    Se puder me ajudar, agradeço... meu MSN é luciomfc@hotmail.com

     

     

    Abraços

     

    Wednesday, January 14, 2009 9:14 PM
  • Olá Lucio,

    Mudar a extensão eu não fiz, pq ficou muito complicado e iria me gastar muito tempo, mas eu fiz a cripitografia dos meus arquivos, depois de feita eu descripitografo no meu player esse mesmo arquivo...isso resolve nosso problema tranquilo...pq assim ninguem conseguirá visualizar os videos so o player.

    Isso resolve....


    Espero ter ajudado...não posso acessar o msn da empresa...
    Thursday, January 15, 2009 10:40 AM
  • Olá Rogério....

     

    Acho que essa situação também me ajudaria aqui... porém, tem como vc me enviar mais detalhes de como fazer essa criptografia..... o meu sistema está feito em VB6.......... mas eu não sou expert em programação, se vc pudesse me passar detalhadamente os procedimentos q vc usou, programas para criptografar, códigos... ou então me mandar algum exemplo de algum esquema já pronto eu agradeceria.....

     

    Valew,

    Thursday, January 15, 2009 12:03 PM
  • Eu utilizei está classe para cripitografar meus arquivos, e utilizei a mesma para descripitografar....

    È assim: vc depois de crypitografado o seu arquivo, vc utilizará um player que até tem prontos na web...no botão de play ou abrir do player vc chama o objeto da classe decrypt....ele irá descrypitografar e lerá o arquivo....

    Simples......


    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.IO;
    using System.Security.Cryptography;

    namespace DirectShow
    {
        class Cripitografia
        {
              // Encrypt a file into another file using a password
        public static void Encrypt(string fileIn, string fileOut, string Password)
        {
            // First we are going to open the file streams
            FileStream fsIn = new FileStream(fileIn, FileMode.Open, FileAccess.Read);
            FileStream fsOut = new FileStream(fileOut, FileMode.OpenOrCreate, FileAccess.Write);

            // Then we are going to derive a Key and an IV from the Password and create an algorithm
            PasswordDeriveBytes pdb = new PasswordDeriveBytes(Password,
                        new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });

            Rijndael alg = Rijndael.Create();

            alg.Key = pdb.GetBytes(32);
            alg.IV = pdb.GetBytes(16);

            // Now create a crypto stream through which we are going to be pumping data.
            // Our fileOut is going to be receiving the encrypted bytes.
            CryptoStream cs = new CryptoStream(fsOut, alg.CreateEncryptor(), CryptoStreamMode.Write);

            // Now will will initialize a buffer and will be processing the input file in chunks.
            // This is done to avoid reading the whole file (which can be huge) into memory.
            int bufferLen = 4096;
            byte[] buffer = new byte[bufferLen];
            int bytesRead;

            do
            {
                // read a chunk of data from the input file
                bytesRead = fsIn.Read(buffer, 0, bufferLen);
                // encrypt it
                cs.Write(buffer, 0, bytesRead);
            } while (bytesRead != 0);

            // close everything
            cs.Close(); // this will also close the unrelying fsOut stream
            fsIn.Close();
        }

        // Decrypt a file into another file using a password
            public static void Decrypt(string fileIn, string fileOut, string Password)
            {
               

                    // First we are going to open the file streams
                    FileStream fsIn = new FileStream(fileIn, FileMode.Open, FileAccess.Read);
                    FileStream fsOut = new FileStream(fileOut, FileMode.OpenOrCreate, FileAccess.Write);

                    // Then we are going to derive a Key and an IV from the Password and create an algorithm
                    PasswordDeriveBytes pdb = new PasswordDeriveBytes(Password,
                                new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });

                    Rijndael alg = Rijndael.Create();

                    alg.Key = pdb.GetBytes(32);
                    alg.IV = pdb.GetBytes(16);

                    // Now create a crypto stream through which we are going to be pumping data.
                    // Our fileOut is going to be receiving the Decrypted bytes.
                    CryptoStream cs = new CryptoStream(fsOut, alg.CreateDecryptor(), CryptoStreamMode.Write);

                    // Now will will initialize a buffer and will be processing the input file in chunks.
                    // This is done to avoid reading the whole file (which can be huge) into memory.
                    int bufferLen = 4096;
                    byte[] buffer = new byte[bufferLen];
                    int bytesRead;

                    do
                    {
                        // read a chunk of data from the input file
                        bytesRead = fsIn.Read(buffer, 0, bufferLen);
                        // Decrypt it
                        cs.Write(buffer, 0, bytesRead);
                    } while (bytesRead != 0);
                    try
                    {
                        // close everything
                        cs.Close(); // this will also close the unrelying fsOut stream
                        fsIn.Close();
                    }
                    catch
                    {
                      
                    }
                  
            }
           
           
           }
    }

       

    O dificil vai ser passar para vb...tenta achar uma classe pronta em vb....


    Thursday, January 15, 2009 1:15 PM
  •  

    Olá Lúcio Costa,

    Não sei se ainda precisa criar as extensões de arquivos, mas se isto puder te ajudar. Segue o endereço:

    http://www.mentalis.org/soft/class.qpx?id=5

     

     

    Até mais....

    Júnior

    Sunday, May 09, 2010 10:16 PM
  • Olá, eu estou fazendo o sistema utilizando agora o visual studio com linguagem c# , mas não consegui entender como fazer funcionar essa criptografia que vc mencionou.... Na prática como eu faço passo a passo pra fazer com que os videos rodem apenas na minha aplicação??? Tenho videos em AVI....

    Desculpe, é que sou iniciante em programação e não entendno muito onde utilizar os códigos...

    Poderia fazer um "passo a passo" ???

    qualquer coisa me mande por e-mail: luciomfc@hotmail.com

    Obrigado,

    Lucio Costa


    LucioCosta

    Saturday, October 20, 2012 5:36 AM