컴퓨터 프로그램을 사용하다보면 A 라는 프로그램을 실행시키고 A 프로그램에서 B 라는 프로그램을 실행시켜야 실행이 되는 것이 있다.
이런 종류의 프로그램은 B 라는 프로그램이 실행되는데 필요한 작업들을 A 에서 해 준 다음 B 를 실행해주는 종류도 있지만, B 라는 프로그램을 단독으로 실행하지 못하도록 하는 간단한 트릭이 숨어있는 종류도 있다.
이런 프로그램은 A 에서 B 프로그램으로 전달해 주는 매개변수를 파악하면 B 프로그램을 단독으로 실행시킬 수 있는 경우도 있다.
가령 b.exe 1234 라는 형태로 실행이 된다면 b.exe 를 더블클릭했을때는 실행이 안되고, 바로가기를 만들어서 b.exe 1234 형태로 실행하면 실행이 되는 형태이다.
C 언어로, 뒤쪽에 붙는 매개변수를 표시해주는 프로그램을 만들어 보았다.
#include <stdio.h>
#include <conio.h>
int main(int argc, char **argv)
{
int i;
printf("매개변수개수 : %d\n",argc);
for(i=0;i<argc;i++)
{
printf("%s ",argv[i]);
}
getch();
return 0;
}
소스는 위와 같은데, 매개변수의 개수와 해당 값을 표시하도록 했다.
소스를 컴파일해서 ma.exe 라는 실행파일을 만들었다.
C 드라이브에 새폴더를 만들고, 해당 폴더에 ma.exe 와 ma.exe 의 바로가기를 만들었다.
ma.exe 를 실행하면 아래 화면처럼, 매개변수의 갯수와 해당 매개변수가 나타난다. 매개변수 0 번째는 파일의 실행경로가 나온다.
이 실행파일의 바로가기를 만들어서 매개변수를 넣어보았다.
실행파일의 바로가기는 마우스 오른쪽 버튼으로 드래그를 하거나 오른쪽 버튼으로 파일을 눌렀을 때 나오는 컨텍스트 메뉴로 만들 수 있다.
바로가기 속성을 클릭하여 대상 부분에 매개변수 값으로 abcd 가나다라 1234 를 넣어보았다.
그런 다음 바로가기를 클릭하여 프로그램을 실행하면 아래 화면이 나타난다.
바로가기에서 입력한 매개변수값들이 표시되었다.
이제 이 파일에 나타난 매개변수값으로 바로가기를 만들어주면 서브 프로그램을 따로 실행시킬수도 있다.
사용방법은 아래 ma.exe 를 다운받은 다음, 따로 실행시키고 싶은 서브 프로그램 실행파일의 경로를 알아내어, 기존에 있던 실행파일의 이름은 바꾸고, ma.exe 를 실행파일의 이름으로 바꿔서 넣어둔 후, 메인 프로그램에서 서브 프로그램을 호출하면 검은 화면이 나타나면서 메인 프로그램에서 전달해주는 매개변수를 알 수 있게 된다. 서브프로그램 이름은 작업관리자에서 알 수 있다.
파일 다운로드 : ma.rar
이 방법은 단순히 매개변수를 이용해서 프로그램의 단독 실행을 막는 형태에만 적용이 되므로 완벽한 방법은 아니다.
또한, 메인 프로그램 A에서 B 를 실행시키면 B가 필요한 작업을 하고 C를 호출하고 종료되어 C가 켜지는 경우도 있다. 이럴 때는 바로가기로 B 를 호출해야 한다.
'컴퓨터 자료' 카테고리의 다른 글
0000 부터 9999 까지 출력하는 스크립트 (0) | 2014.01.08 |
---|---|
컴퓨터로는 정답을 구할 수 없는 문제 (0) | 2013.12.28 |
공유기 수리 일지 (0) | 2012.02.12 |
압축을 해서 파일 크기가 더 커지는 경우 (0) | 2011.10.02 |
1 에서 n 까지의 정수의 합을 자바스크립트 재귀함수로 구해보기 (0) | 2011.04.17 |