|
레지스트리의 값을 다음과 같이 고치면 된단 말씀인지..
"c:\\....\\.puma.exe" %1 에서
"c:\\....\\.puma.exe" "%1" 으로....
이렇게 해도 토막이 나서 전달되는 것은 마찬가지처럼 보이는군요. 지금 아래와 같은 코드를
이용해서 파라미터로 전달되는 문자열들을 실험해 보고 있습니다.
int c, i = ParamCount();
Label1->Caption = IntToStr( i );
AnsiString str;
for( c=1; c<=i; c++ ){
ListBox1->Items->Add( ParamStr(c) );
}
Label2->Caption = GetCurrentDir();
박지훈.임프 님이 쓰신 글 :
: 최우택 님이 쓰신 글 :
: :
: : 해당 데이터 화일을 클릭했을 때 제가 만든 프로그램을 실행시켜 편집하려고 하는데
: : 문제점이 생겨서 질문합니다.
: :
: : 우선 레지스트리에는 다음의 값이 세팅되어 있습니다.
: : "c:\\....\\.puma.exe" %1
: :
: : 그리고 실행화일에서 메인폼이 뜰때 ParamCount(), ParamStr()을 사용해서 인수로서 주어
: : 진 화일의 이름을 얻어내려고 합니다. 문제는...
: :
: : "데이터 화일.ucr", "데이터 화일.ucr"
: :
: : 이것을 구분할 수가 없다는 겁니다. ParamStr()을 반복적으로 사용해 봐야
: : "데이터"와 "화일.ucr"을 토막내서 읽어오기 때문에 원래 화일이름뿐이 아니라 실행 경로
: : 까지도 이상하게 읽어오게 됩니다. 이런 경우엔 어떻게 처리해야 하는지 알고 싶습니다.
:
:
: 임펠리테리입니다.
:
: 프로그램에서 처리할 문제가 아니라, 파라미터를 넘겨주는 방법이 문제입니다. 공백문자로 띄워진 파라미터를 넘길 때는 " 와 " 로 싸서 전달하면 됩니다.
: 프로그램.exe "데이터 화일.ucr", "데이터 화일.ucr" (엔터)
: 이렇게 말이죠.
:
: 그럼 참고하시길...
|