Página Inicial > Instalações, Outros > Associando extensões para abrir com sua aplicação PHP-GTK (Windows)

Associando extensões para abrir com sua aplicação PHP-GTK (Windows)

O que? da pra fazer isso? aheuahe da, alias, tudo na programação da, tudo depende de dinheiro e tempo xD

Bem, isso apareceu depois que o maluco do Victor Henrique, membro da comunidade PHP-GTK. Ele até achou uma solução, onde ele tem um VBscript que chamava todo o stringão, e associava esse script clicando com o direito, "abrir como" e tal.

Bem, com isso tudo aqui, resumindo, você poderá dar 2 cliques em um arquivo, e sua aplicação abrirá com esse arquivo carregado.

Pra variar, como não gosto de coisa diferente e desafiadora uaehuahe, comecei a pensar numa forma de fazer isso sem utilizar script nenhum, só com PHP.

Foi ai então que eu lembrei dos arquivos .reg, e consegui algo parecido com isso:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.phpteste]
@="Meu Programa"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Meu Programa\Shell\open\command]
@="\"c:\\php-gtk2\\php-win.exe\" \"c:\\teste.php\" %1"
 

Repare em "Meu Programa" que é o nome do seu programa, ".phpteste" que é extensão que será associada e "C:\\teste.php" que é o caminho absoluto da sua aplicação PHP-GTK.

Para executar esse .reg você pode fazer de varias formas. A que eu achei mais interessante foi: ao abrir a aplicação, cria um arquivo .reg nos temp, executa e apaga. Assim você só precisa executar sua aplicação uma vez para sua extensão estar associada =)

Um exemplo de uma aplicação recuperando o nome do arquivo clicado 2 vezes:

<?php
   $win = new GtkWindow();
   $win->connect_simple("destroy", array("Gtk", "main_quit"));
   $win->set_size_request(500, 500);
   
   // O segredo está em $argv[1], que conterá o caminho do arquivo que você clicou para abrir
   $win->add(new GtkLabel($argv[1]));
   $win->show_all();
   Gtk::main();
 

Bem pessoa, espero que tenham gostado da dica, e graças ao Victor Henrique que isso tudo aconteceu =D

Valeus =)

  1. Victor Henrique
    13, junho, 2009 em 16:00 | #1

    lembrando que uma segunda forma de incluir isso no registro do sistema é com um compilador de setup, por exemplo o Inno Setup, muito poderoso e grátis, que caso você empacote seu software PHP-Gtk a partir dele tem o poder ainda de usar as definições do usuário no ato da instalação (como o caminho do PHP-Gtk no sistema) pra gerar a inserção do registro.

    Ahhh e mais maluco que eu só um, Bruno Gonçalves…

  2. 13, junho, 2009 em 16:04 | #2

    aheuhaeuh muito bem lembrado =))
    Com empacotadores desse gênero, é possivel fazer muitas coisas legais =)

  3. Wilian
    30, julho, 2009 em 09:30 | #3

    Pessoal, alguem sabe como faço isso para associar o winlhp32.exe que está na pasta:
    c:\windows\system32\winhlp32.exe ???
    No vista não tem e as patches da microsot não funcionaram comigo, ai copiei o winhelp32.exe do xp, so que acabo setando ele manualmente, da muito trabalho.
    valew

  4. 30, julho, 2009 em 09:35 | #4

    Poxa, não sei muito de windows, mas vamo esperar alguem se pronunciar =)

    Valeu!

  5. Wilian
    30, julho, 2009 em 10:29 | #5

    tentei isso.

    Windows Registry Editor Version 5.00

    [HKEY_CLASSES_ROOT \.hlp]
    @="winhlp32.exe"

    [HKEY_CLASSES_ROOT\Applications\winhlp32.exe\shell\open\command]
    @="\"C:\\Windows\\System32\\winhlp32.exe\" \"%1\""

    mas ainda não deu certo.

  1. Nenhum trackback ainda.