Gå til innhold

Fjernkontroll i PHP(kontroll av Ubuntu)


Anbefalte innlegg

Hei, jeg har en media center pc som kjører ubuntu +++

 

probleme er at ingen av web-interfacene fungerer på min HTC Touch Cruise...

 

 

Det jeg lurer på, er det noen måte og få PHP til og simulere "Enter" eller "Backspace", "Space" og div. piltaster?

 

 

takker for alle svar

Lenke til kommentar
Videoannonse
Annonse

er klar over dt, etter litt leting fant jeg xsendkeys programmet som emulerer 'key presses', men får feilmelding om at DISPLAY variabelen ikke er satt eller noe sånt

 

xbmc@xbmc:~$ xsendkeys space

xsendkeys: Cannot connect to display ...

 

 

har noe med xauth og gjøre, men aner ikke hvordan jeg fikser dt:S noen som har en ide?

Lenke til kommentar
er klar over dt, etter litt leting fant jeg xsendkeys programmet som emulerer 'key presses', men får feilmelding om at DISPLAY variabelen ikke er satt eller noe sånt

 

xbmc@xbmc:~$ xsendkeys space

xsendkeys: Cannot connect to display ...

 

 

har noe med xauth og gjøre, men aner ikke hvordan jeg fikser dt:S noen som har en ide?

 

Prøvd og kjøre det som root med sudo?

 

dvs.

 

sudo xsendkeys space

Lenke til kommentar

hvordan gjør jeg d?

 

[EDIT]

Fant delvis ut av d:D

 

 

sikkert ikke så volsomt sikkert, men dt fungerer;)

 

export DISPLAY=:0.0
xhost +localhost

 

også kjøre export DISPALY=:0.0 på alle brukerne som skal kjøre noe på skjermen...

 

 

MEN

xsendkeys fungerer enda ikke:(

[EDIT2] PS. Får ingen feilmeldinger fra xsendkeys:S

Endret av Richard87
Lenke til kommentar

Har aldri brukt xsendkeys, så jeg er jammen meg ikke sikker. Har bare brukt xte (som er en del av xautomation)

 

Vet ikke om du har gjort feil, men det skal være DISPLAY, ikke DISPALY ;)

 

Og forrsten... det holder ikke å kjøre den exporten hvor som helst, du må sørge for at den finnes der hvor du faktisk kjører kommandoen. (Er lenge siden jeg brukte PHP, men du må sørge for at den finnes i environment som PHP kjører kommandoen i)

Lenke til kommentar

skal sjekke ut xte;)

 

ellers så bare tester jeg igjennom putty...(DISPALY var bare skrivefeil:O)

 

 

[EDIT]

xte fungerte som bare juling:D

 

då va dt på tid for litt php scripting;)

 

[EDIT2]

men dette fungerte dårligt:S

 

<?php
$command = $_GET['CMD'];
shell_exec("export DISPLAY=:0.0");
$command = 'xte "key ' . $command . '"';
$out = shell_exec($command);
print $command;
print $out;
$out = shell_exec('echo $DISPLAY');
echo $out;
?>

dn eneste outputen jeg får er

xte "key Return"

 

noen ide hvorfor shell_exec fungerer?

Endret av Richard87
Lenke til kommentar

jeg prøvde også denne koden, uten resultat:

<?php
$command = $_GET['CMD'];
$command = 'xte "key ' . $command . '"';


$last = system("export DISPLAY=:0.0", $ret);
print "<Export> Last Line: " . $last ." <"."> Return value: <" . $ret ."><br />\n";

$last = system("echo $DISPLAY", $ret);
print "<Echo> Last Line: " . $last ." <"."> Return value: <" . $ret ."><br />\n";


$last = system($command, $ret);
print "<".$command . "> Last Line: " . $last ." <"."> Return value: <" . $ret ."><br />\n";
?>

med dette 'resultatet':

<Export> Last Line:  <> Return value: <0><br /> 

<Echo> Last Line:  <> Return value: <0><br /> 
<xte "key Return"> Last Line:  <> Return value: <1><br />

Lenke til kommentar

Nå vet ikke jeg 100% hvordan det er i PHP men i C så fungerer system(), exec() osv slik at den oppretter et nytt shell som den så kjører kommandoen i. Derfor vil det ikke fungere å sette en environment variabel (DISPLAY=:0.0 f.eks) fordi den eksisterer bare i shellet som opprettes av system(). Det du må gjøre er å sette environment variablene i shellet web serveren din startes opp fra. Da vil PHP og alle subprosesser startet av PHP arve environment variablene.

Lenke til kommentar

Det ser ut som du kan bruke funksjonen putenv("DISPLAY=:0,0") for å oppnå ønsket effekt (istedenfor system()).

 

bool putenv ( string $setting )

Adds setting to the server environment. The environment variable will only exist for the duration of the current request. At the end of the request the environment is restored to its original state.

Lenke til kommentar

KONGE, takker for all hjelp:D

 

det funket som fjell, nå over til VB for og lage klient programme til pda'en;)

 

PS.

<?php
$command = $_GET['CMD'];
$command = 'xte "key ' . $command . '"';
putenv("DISPLAY=:0.0");
$last = system($command, $ret);
print "<".$command . "> Last Line: " . $last ." <"."> Return value: <" . $ret ."><br />\n";
?>

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...