|
박정욱 님이 쓰신 글 :
: 강요찬 님이 쓰신 글 :
: : 안녕하세요.
: : 문제는 이렇습니다.
: :
: : 예를 들어 파일명이 <If_I_Needed_You.mp3> 와 같이 빈칸이 들어 있지 않은 파일명일 경우엔
: :
: : WinExec("winamp.exe If_I_Needed_You.mp3",SW_SHOWNORMAL);
: :
: : 이 명령으로 윈앰프가 실행이 되는데........
: :
: : 파일명이 <If I Needed You.mp3> 와 같이 빈칸이 들어 있는 파일명일 경우엔
: :
: : WinExec("winamp.exe If I Needed You.mp3",SW_SHOWNORMAL);
: :
: : 이 명령문은 실행이 안 됩니다.
: : 아마 If I Needed You.mp3 를 4개의 패러미터로 받아들이는가 봅니다.
: : 이것을 해결할 방법은 없겠는지요?
: : 고수님들의 도움의 말씀 부탁드립니다.
: : 감사합니다.
: :
: :
: :
: :
:
: 안녕하세요...
: phoihos입니다...
:
: WinExec의 원형을 보면 다음과 같습니다...
: UINT WinExec(
: LPCSTR lpCmdLine, // command line
: UINT uCmdShow // window style
: );
:
: lpCmdLine은 윈도우가 수행할 프로그램이고
: uCmdShow는 보여질 윈도우의 형태를 나타냅니다.
:
: 여기서 lpCmdLine은 실행할 프로그램(.exe)과 함께 실행 시킬 프로그램에게 전달할
: 부가적인(optional parameters)인 파라미터를 함께 쓸 수가 있습니다.
: 그런데 이 부가적인 파라미터는 어디까지나 실행될 프로그램에게 적용되는 것입니다.
:
: 그리고 님이 다른 프로그램을 그런식으로 실행시켜 보았는지는 모르겠지만
: 다름 프로그램의 경우에는 가운데 '스페이스(공백)'가 들어 있었도 잘 돌아 갑니다.
:
: 그런데 윈앰프는 스페이스로 다른 부가적인 옵션을 구분하는 하는 것같습니다.
: (시간이 없어서 윈앰프의 파라미터를 찾아 보지 못했습니다...ㅠ.ㅠ)
:
: 아참, 다연한 얘기 겠지만 윈앰프에서 '스페이스' 파라미터를 구분하면
: 문자열(lpCmdShow)을 다른 변수에 넣을때 뭐 아스키 코드를 넣은다던가 뭐 그런 방법역시
: 되지 않을 것입니다...윈앰프가 '스페이스'를 않좋아 하기때문에...-_-;;(<== 요건 농담)
:
: 그럼...도움이 되셨기를...
:
: from poi
:
도움말을 보니 winexec함수의 lpCmdLine은 아래와 같이 설명되어 있습니다.
Points to a null-terminated character string that contains the command line (filename plus optional parameters) for the application to be executed. If the name of the executable file in the lpCmdLine parameter does not contain a directory path, Windows searches for the executable file in this sequence:
공백은 명령어 종료와 같습니다. 프로그램의 특성을 아닙니다.
|