[PHP/윈도우서버] 프로그램 내에서 같은 디렉토리의 다른 프로그램 실행시키는 방법?
글쓴이: qubick / 작성시간: 화, 2010/03/23 - 2:31오후
$cmd = "C:\windows\system32\cmd.exe"; if(!exec($cmd)) echo "fail to call command";
찾아보니 대충 exec() 계열의 명령어를 사용하면 된다고 하는데요,
위 간단한 코드마저 실행이 안 되네요...
에러는 안 나는 걸 보면 exec()이 어디선가 실행되고 있긴 한데,
정작 위도우 콘솔 커맨드창이 안 열립니다.
윈도 익스플로러 주소창에만 저 패스를 적어줘도 새까만 창이 뜨잖아요.
지금까지의 답변들이 다 리눅스 서버 기반이라 제가 원하는 답을 찾기가 어렵네요.
Forums:
...?
컴파일 에러나지 않나요? exec() 가 동작하다니... 아 C 니까 되려나?
ExecuteCommand() 로 알고 있습니다. winapi.h 던가...
아무튼 windows 명령어 찾아보시면 될겁니다...
windows 환경에서는 console 상태에서는 자기 windows handle 에 대한 권한이 없기 때문에 C 명령은 안 될겁니다... 아마도요
-----
안녕하세요 소프트웨어 공학센터 장원석 책임입니다.
http://www.software.kr
완(전)소(용없는)녀(석
완(전)소(용없는)녀(석)
if(!exec($cmd))
echo "fail to call command";
로 하면 아무 메시지 없이 다음 코드 수행,
if(exec($cmd))
echo "success to call command";
로 하면 진짜로 "success to call command" 메세지가 화면에 나오는 걸로 봐서 exec()이 동작하지 않는 건 아닌 것 같습니다. 오히려 말씀하신 ExecuteCommand()가 정의되지 않은 함수라고 나오면서 fatal error가 뜨네요.
초짜라 C니까 된다, 는 말씀이 무슨 뜻인지 모르겠네요.
php 인터프리터(컴파일러가 맞나요? 라인바이라인으로 해석해서 앞에서 에러 하나 걸리면 다음 에러가 안 뜨던데..)가 C로 짜여져서 C 명령을 인식한다는 뜻인가요?
지금 php소스는 html파일 확장자 안에 로 임포트해서 넣고 있는데요...
완(전)소(용없는)녀
완(전)소(용없는)녀(석)
윈도우 헤더파일을 말씀하신 걸 보면,
지금 제가 C프로그램을 짜고 있다고 가정하고 말씀하신 것인지?
아니면 CGI...???
완(전)소(용없는)녀
windows 프로그래밍
windows 프로그래밍 하려면 winapi 함수를 call 해야 하는데
exec() 같은 경우는 OS 에 의존하는 함수인데 php 나 웹언어는 explorer 에서 동작하는 거라서
특정 winapi 함수를 뭔가를 통해서 call 해야 되지 않을까 싶어서 ExecuteCommand() 를 언급한 거구요(Visual Studio ;;)
바로 winapi 함수를 call 할 수 없다면... 잘 모르겠네요 @_@
-----
안녕하세요 소프트웨어 공학센터 장원석 책임입니다.
http://www.software.kr
완(전)소(용없는)녀(석
완(전)소(용없는)녀(석)
PHP 레퍼런스에서 찾은 함수니까 winapi를 통하지 않고도 어쨌거나 쓸 수는 있을 것 같습니다.
당장 제가 그 방법을 몰라서 그렇지요;;
완(전)소(용없는)녀
참고하세요
http://php.net/manual/en/function.exec.php
권한문제같은거로 보입니다.
아래쪽에 리플에 보시면 쓸만한 소스를 찾으실 수 있을것 같네요
댓글 달기