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:
[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:
$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 =)
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…
aheuhaeuh muito bem lembrado =))
Com empacotadores desse gênero, é possivel fazer muitas coisas legais =)
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
Poxa, não sei muito de windows, mas vamo esperar alguem se pronunciar =)
Valeu!
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.