|
윈도우부팅될 때 프로그램이 자동으로 실행되는 기능에 관해서 질문이 있어요.
이 기능에 대한 코드가 tip'N Tricks 에 나와있긴 하는데요.
tip'N Tricks에 제시된 코드하고 C++Builder 도움말 파일에 제시된 코드를 비교해보면서
몇몇 의문점들이 생겼습니다.
TRegistry *reg = new TRegistry;
Reg->RootKey = HKEY_LOCAL_MACHINE;ENT_USER
if (Reg->OpenKey("\\Software\\Microsoft\\Windows\\CurrentVersion\\Run", true)) or false
{
Reg->WriteString("FoxPapers11",Application->ExeName);
Reg->CloseKey();
}
delete Reg;
일단 프로그램 자동으로 실행되게 하기 위해서 레지스트레를 이용하는 것은 위의 코드로 구현이 됩니다.
그런데,tip'N Tricks와 CBuilder도움말 파일에서의 예제 코드 사이에서 서로 두 가지 차이점이 있습니다.
먼저 Reg->RootKey = HKEY_LOCAL_MACHINE; 부분은 도움말에 나오는 코드에서는 HKEY_LOCAL_MACHINE 대신에 HKEY_CURRENT_USER를 썻습니다.
regedit으로 실제로 살펴보니,
정말로 \\Software\\Microsoft\\Windows\\CurrentVersion\\Run 가
HKEY_LOCAL_MACHINE 와 HKEY_CURRENT_USER 에 둘 다에 모두 존재했습니다.
이 두 개 중에 어느 것을 선택하더라도 상관이 없는 건가요?
그리고 또 차이점이 있던데, Reg->OpenKey("\\Software\\Microsoft\\Windows\\CurrentVersion\\Run", true) 부분에서
마지막인자입니다. Tip'N Tricks에서는 마지막인자에 false를 넣었고, 도움말의 코드에서는 true를 넣었습니다. 이 인자는 CanCreate, 즉 키가 없으면 만들 것인가를 지정하는 파라미터인데,
제 생각에는 여기에 true를 지정하는 것이 좋다고 생각되는데, 맞나요?
|