Richard87 Skrevet 4. november 2009 Del Skrevet 4. november 2009 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
AlecTBM Skrevet 5. november 2009 Del Skrevet 5. november 2009 Etter hva jeg forsto, nei Kan du forklare litt bedre? Lenke til kommentar
Jonas Skrevet 5. november 2009 Del Skrevet 5. november 2009 Det finnes, så vidt meg bekjent, ikke noe API for dette, men det kan du fint lage selv. Alle scripts du vanligvis kjører i terminalen kan du kjøre via PHPs exec/system. Lenke til kommentar
Richard87 Skrevet 5. november 2009 Forfatter Del Skrevet 5. november 2009 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
TheRealL Skrevet 5. november 2009 Del Skrevet 5. november 2009 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
cyclo Skrevet 5. november 2009 Del Skrevet 5. november 2009 xsendkeys fungerer bare på en x-session. Du må altså være logget på en x-session for at det skal fungere. Å bare putte det i sudo er ikke nok, man må i tillegg eksportere DISPLAY til å peke på en eksisterende x-session. Lenke til kommentar
Richard87 Skrevet 5. november 2009 Forfatter Del Skrevet 5. november 2009 (endret) 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 5. november 2009 av Richard87 Lenke til kommentar
cyclo Skrevet 5. november 2009 Del Skrevet 5. november 2009 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
Richard87 Skrevet 6. november 2009 Forfatter Del Skrevet 6. november 2009 (endret) 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 6. november 2009 av Richard87 Lenke til kommentar
Richard87 Skrevet 6. november 2009 Forfatter Del Skrevet 6. november 2009 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
Psy Skrevet 6. november 2009 Del Skrevet 6. november 2009 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
Psy Skrevet 6. november 2009 Del Skrevet 6. november 2009 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
Richard87 Skrevet 6. november 2009 Forfatter Del Skrevet 6. november 2009 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå