Newsgroup: it.comp.www.php
Titolo: Eseguire exe da php

Sto cercando di eseguire un file exe da una pagina php...il file so che 
esiste ed č eseguibile grazie a questo codice (sto usando il php5 in 
windows):
//Esiste?
$filename = 'C:\php\filephp\PROVA.EXE';
if (file_exists($filename)) {
   echo "il file $filename esiste";
} else {
   echo "Il file $filename non esiste<";
}
echo "<br><br>";
//E' eseguibile?
$file = 'C:\php\filephp\PROVA.EXE';
if (is_executable($file)) {
   echo $file.' č eseguibile';
} else {
   echo $file.' non č eseguibile';
}
echo "<br><br>";
Il problema č che il programma prova.exe (che invia alla parallela un byte) 
deve essere eseguito in windows xp in una shell dos a schermo pieno e deve 
ricevere come parametro un numero decimale che invia poi alla 
parallela...cosě mi funziona ma quando tento di farlo eseguire a php nn 
funzia niente...ho provato le funzioni:
system("C:\php\filephp\PROVA.EXE 255") or die("Errore");
exec("C:\php\filephp\PROVA.EXE 255") or die("Errore2");
shell_exec("C:\php\filephp\PROVA.EXE 255") or die("Errore3");
passthru("C:\php\filephp\PROVA.EXE 255");
E tutte regolamente mi danno errore...nn so piů cosa provare...
Il file prova.exe č fatto in c utilizzando la funzione outportb...ma dubito 
che questo possa servire...spero che mi possiate aiutare...
Grazie 

 dubito che questo possa servire...spero che mi possiate aiutare...
Perchè non ci dici che errore ti fornisce ?
-- 
Ciao,
 Fabrizio
=== 
http://www.negusweb.it
 ===

 Perchè non ci dici che errore ti fornisce ?
Perchè non mi fornisce nessun errore...solo se faccio dopo le istruzioni nn 
funionanti or die("errore") mi visualizza "errore"...ma nient'altro...nn mi 
da nemmeno un parse error...niente di niente...l'unico effetto è che non da 
effetti nel senso che non esegue il programma...e lo capisco dal fatto che 
non mi modifica l'uscita della parallela come vorrei...
Può c'entrare il fatto che l'esecuzione in windows xp deve avvenire con la 
shell a schermo intero e che nessuna di questa istruzione (nonostante le 
promesse) fa veramente un'esecuzione a schermo intero?
Grazie.Ciao. 

Rintoccavano le 20:04, mercoledě 25 maggio 2005, quando The_Diso vocifero'
che ...
problemi di permessi sul file?
-- 
Pandozy vede tutto
    _     _
  o' |,=./ `o
     (o o)    
 ooO--(_)--Ooo-


In che senso?
La parallela in c la uso con l'istruzione outportb(porta,numero da 
inviare)...non come se fosse un file...
Se intendevi permessi al file prova.exe allora non saprei come controllare 
se tutto funziona...non saprei cosa e come modificare...hai consigli?
Grazie. 

 promesse) fa veramente un'esecuzione a schermo intero?
Perchè l'obbligo dell'esecuzione a schermo intero?



Perchè in windows xp la porta parallela come la uso io (cioè da un programma 
fatto per dos) funziona solo se il programma è utilizzato a schermo 
intero...sarà una questione di memoria...però non ne so di più... 

 schermo intero...sarà una questione di memoria...però non ne so di più...
Non penso c'entri la memoria con le dimensioni dello schermo.
Ad ogni modo, se apri una shell con cmd.exe e lanci
C:\php\filephp\PROVA.EXE 255
ovviamente senza aprire a tutto schermo ...
cosa succede ?



Se faccio partire il programma come dici tu...senza apirire a tutto 
schermo...succede che il programma visualizza gli eventuali printf o cose 
simili (se per es. faccio un ciclo dove gli dico di stampare tutti i numeri 
da 0 a n lo fa sia a schermo intero che non) ma non effettua alcuna modifica 
sulle uscite della parallela...
E siccome lo scopo principale (anzi unico) del programma è proprio quello di 
modificare le uscite della parallela...la cosa mi disturba abbastanza...
Ciao. 

 modificare le uscite della parallela...la cosa mi disturba abbastanza...
Ci credo. Ma il software per l'invio di dati alla parallela lo hai
scritto tu?
Hai modo di accedere ai sorgenti ?


:Provate a guardare gli ingredienti del famoso Labello che si usa per
:le labbra screpolate: Butirrospermum Parkii (sperma di maiale).

 modificare le uscite della parallela...la cosa mi disturba abbastanza...
Ci credo. Ma il software per l'invio di dati alla parallela lo hai
scritto tu?
Hai modo di accedere ai sorgenti ?
Il software l'ho scritto io ed è:
#include <stdio.h>
#include <dos.h>
#include<conio.h>
#include<stdlib.h>
int main(int argc,char* argv[])
{
    int bait=atoi(argv[1]);
    outportb(0x278,bait);
}
Come detto per eseguirlo si passa da riga di comando come parametro il 
numero da inviare alla parallela (in decimale).
Poichè windows xp non permette l'accesso diretto alla parallela uso il file 
che si trova all'indirizzo (Config_LPT1.zip) che si interpone tra il mio 
programma e il sistema operativo:
http://www.giobe2000.it/HW/Parallela/index.htmhttp://www.giobe2000.it/HW/Parallela/index.htm

 Cerca "RunAs" sulla knowledge base Microsoft...
Penso (ma non sono sicuro) che l'utente assegnato al php sia proprio 
l'amministratore...anche perchè sul mio pc ho un unico utente che è proprio 
l'amministratore... 

 proprio l'amministratore... 
Stai usando Apache o IIS?
Se usi il secondo l'utente sara' IUSR_nomemacchina
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.


Uso apache...dove vedo il nome utente che usa il php?perchè dovrei avere 
dubbi sull'utente visto che sul pc ne ho solo uno? 

 mio programma e il sistema operativo:
hai provato ad utilizzare direttamente le API di windows per programmare la
parallela ?


 parallela ?
No e non saprei come fare...non ho mai programmato con le api di windows e 
nn saprei da dove iniziare... 

 nn saprei da dove iniziare...
Qui c'e' qualcosa per cominciare ... su google trovi comunque molte
informazioni.
http://www.codeguru.com/forum/archive/index.php/t-231214.html