• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

skin

Aceder e alterar o registo do windows com PHP

15 mensagens neste tópico

Gostava de saber se é possivel aceder e alterar chaves do regedit através de códigos PHP. Já pesquisei no google mas não encontrei nada  :P .

Alguém pode ajudar-me nesta matéria, é que através de batch files eu sei fazer mas através de PHP não, se pudessem ajudar agradecia  :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

existia uma cena para programar aplicações ditas 'normais' (desktop, não web-based) em php... mas já não me lembro onde vi isso...

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Existe pois, por exemplo o PHP-GTK e o wxPHP. O wxPHP ainda está em desenvolvimento, mas pessoalmente acho que o PHP é uma má escolha para começar a desenvolver aplicações com GUI.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Existe pois, por exemplo o PHP-GTK e o wxPHP. O wxPHP ainda está em desenvolvimento, mas pessoalmente acho que o PHP é uma má escolha para começar a desenvolver aplicações com GUI.

já somos 2 :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pessoal... estão a fazer uma grande confusão.

Server side ou client side... uma linguagem de programação não é server side ou client side... as aplicações é que são.

PHP  is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML.

Ultimamente tenho usado extensivamente php para fazer pequenas aplicações para correrem no meu computador. simplesmente porque estou muito mais à vontade em php do que em shel scripting.

Vão à vossa linha de comandos e escrevam

php helloworld.php

sendo o helloworld.php o típico ficheiro de hello world. Se nao vos reconhecer esse comando então acrescentem a path da vossa instalação em php a variável path ( seja no windows ou em linux )

Se não têm o php instalado e estão a tentar fazer isto, então vao buscar um martelo e destruam o vosso computador pois o dono não o sabe usar :P

O wxphp e o phpgtk nao são "coisas para fazer aplicacoes cliet side", o gtk é um toolkit de janelas que pode ser usado em conjunto com várias linguagens de programação e o wxwidgets é um binding comum a várias linguagens que usa bibliotecas nativas do sistema operativo onde é compilado.

Acesso ao registo do windows... epa.. infelizmente n posso ajudar.. nunca soube fazer isso e agora que abandonei em definitivo o windows é que não vou aprender.

Mas podes sempre executar comandos no meio da tua aplicação em php. SE souberes os comandos par alterar os registos. Nunca percebi isso muito bem... o windows n corre todo em cima de uma shell pois nao? tipo... pode efectuar-se qualquer operação usando comandos legiveis por humanos? ou aquilo vai dar uma instrução lá abaixo e outra cá em acima assim  conforme lhe dá na real gana e tudo misturado?

Já agora não estou a ver porque é que o php é uma má escolha para o desenvolvimento de aplicações com GUI. Alguem me explica?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Por exemplo para executares na linha de comandos de forma a adicionar um registo usas um código como este por exemplo:

REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableRegistryTools /t REG_DWORD /d 00000000 /f

Como é que eu faço para fazer isto em PHP é que eu não entendi. . .podes explicar melhor Pedro?

Desde já obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

@skin para executar este comando na linha de comandos tens que utilizar este código (acho que é isto que queres)

<?php
$comando = 'REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableRegistryTools /t REG_DWORD /d 00000000 /f';
$executar = exec( $comando );

switch( $executar ) {
case true:
echo "O comando foi executado com sucesso!";
break;
case false: 
echo "O comando não foi executado!";
break;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já agora não estou a ver porque é que o php é uma má escolha para o desenvolvimento de aplicações com GUI. Alguem me explica?

PHP  is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML.

É uma linguagem desenhada para desenvolvimento Web, não está focada para aplicações com GUI. Lá porque tem uma biblioteca que o permite, não significa que seja a melhor opção.

Por alguma razão é que não vez nenhuma (não sei se existem alguma) aplicação GUI comercial em PHP. :weird:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ainda não testei mas parece-me ser mesmo isso.

Thank you very nice kingless :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem infelizmente Kingless :confused: o código não funciona :D diz-me que foi executado mas não acontece nada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

desculpa o atraso na resposta.

O código do kingless parece-me funcional. Se obtens uma mensagem de exito mas nao acontece o desejado concerteza há algum problema com o comando. Experimenta envia-lo para o output.

Não tenho o php instalado neste computador, mas fui ver ao manual e parece-me que, inserindo simplesmente o comando, a função exec não te devolve o estdo da execução,tens k definir os restantes parametros de entrada. Dá uma olhadela no manual aqui:

http://pt.php.net/manual/en/function.exec.php

Envia as variáveis para o output para ver o que é que se está a passar.

Parece-me que essas barras invertidas estão a causar sarilhos.

Aqui vai o código do kingless um pouco mudado.

para correr isto na linha de comandos simplesmente guarda o código no ficheiro correr.php, vai a linha de comandos, vai até à directoria onde o ficheiro se encontra e insere o seguinte comando

php correr.php

Se te disser command or program not found, certifica-te que a path da tua instalação do php está definida na variavel PATH do teu ambiente. Se não estiver adiciona-a.

Aqui vai o código para efeitos de debugging.

<?php
$comando = 'REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v
DisableRegistryTools /t REG_DWORD /d 00000000 /f'; 

//envia o comando para o output para ver o que estás a executar
echo "Commando:\n $comando";

//agora vemos se alguma barra invertida deu me***
$comando=escapeshellcmd($comando, $output,$returned);

exec( $comando );

//vamos tambem ver o conteudo do output
print_r($output);

//e já agora do valor de retorno
echo "\n";
print_r($return_value);

?>

Outra observação, o php por si só é incapaz de controlar o valor devolvido pela execução de uma função externa. Esse valor é definido pelo programador da aplicação/comando/programa a correr.

Lê a documentação do comando que vais correr para saber que valor experar.

Já que cá estamos aqui vai uma pequena lista de aplicacoes escritas em phpgtk

http://cweiske.de/phpgtk.htm

quanto a aplicações comerciais n sei pois se são comerciais o código fonte não é disponibilizado. Seja php seja qq outra linguagem. De resto nem sequer sei em que linguagem é que o microsoft windows é escrito por exemplo.

o site do phpgtk não tem o mesmo sucesso que o do php, lá isso é verdade, mas n quer dizer que o php-gtk não seja usado.

Atenção que o GTK não é uma biblioteca do php. É um toolikit de janelas que pode ser usado em php e noutras linguagens..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado pelo que forneceste ;) estou a aprender bastante com isto...no entanto ainda não alcancei os resultados pretendidos pois ainda não consigo alterar as chaves de registo.

Commando: REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableRegistryTools /t REG_DWORD /d 00000001 /f
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ora bem... vamos por partes... experimentaste o comando manualmente?

experimenta primeiro, se funcionar sabes que não é disso.

depois faz um output dele a ver se os caracteres especiais não se passaram.

depois vem aqui ao fórum que se houver algum problema resolve-se

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora