문제

C ++에서 프로그램을 만들고 있는데, 이는 사용자가 Windows에서 자동 시작할 수 있도록 옵션을 갖기를 원합니다. 따라서 사용자가 컴퓨터를 시작하면 Windows 가이 프로그램을 자동으로 시작합니다. 레지스트리를 수정하거나 시작 폴더에 넣는 것에 대한 내용을 읽었지만이 작업을 수행하는 최상의 "깨끗한"방법은 무엇입니까?

도움이 되었습니까?

해결책

시작 폴더는 충분히 깨끗합니다.

사용자에게 필요한 경우 제거 할 수 있습니다.

다른 팁

애플리케이션을 자동화하는 방법에는 여러 가지가 있지만 가장 쉽고 가장 일반적인 IMO는 다음과 같습니다.

  1. AutosTART 폴더에 바로 가기를 넣으십시오
  2. 레지스트리에 자동 스타트 항목 추가 (소프트웨어 Microsoft Windows CurrentVersion run)

최종 결과는 둘 다 동일합니다. 레지스트리 방식이 시작 방법보다 로그온 프로세스에서 일찍 실행되었다고 생각하지만 확실하지 않습니다. 어쨌든 대부분의 경우에는 아무런 차이가 없습니다. 나는 레지스트리를 선호하지만 그것은 개인적인 취향입니다. 앱에서 레지스트리 키 또는 단축키를 프로그래밍 방식으로 작성하고 삭제할 수 있습니다.

두 옵션을 모두 사용하면 모든 사용자 (모든 사용자 시작 폴더 또는 레지스트리의 HKLM 키 아래) 또는 사용자 별 (사용자 시작 폴더 또는 HKCR 키 아래)에 대해 하나의 설정을 사용할 수 있습니다.

일반적으로 해당 영역에서 서면 특권을 가질 수 있기 때문에 사용자 옵션을 사용하는 것이 좋습니다. 컴퓨터의 모든 사용자는 자신의 설정을 가질 수 있습니다.

All-USER 또는 USER 설치를 실행하는지 여부에 따라 모든 사용자 또는 사용자 당 스타트 업 폴더의 시작 폴더에 넣으십시오. 메뉴에 표시된 시작 폴더는 두 가지의 합병이지만 Admin이 아닌 사용자는 All-User 부분에서 나오는 항목을 제거 할 수 없습니다.

그래도 실제로는 아무것도 할 필요가 없습니다. 사용자는 일반 단축키를 시작 메뉴 자체에 복사 할 수 있습니다. 따라서, 어느 프로그램은 자동 시작 프로그램이 될 수 있습니다. C ++ 일 필요는 없습니다.

Windows 서비스로 등록 할 수 있으며 Windows 서비스로 쉽게 응용 프로그램을 만들기 위해 "QT 솔루션"을 사용할 수 있습니다.

이 코드를 사용하면 수행 할 수 있습니다

procedure TForm1.Button1Click(Sender: TObject);
var
   Reg:TRegistry;
begin
   Reg := TRegistry.Create;
   try
      Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',True);
      Reg.WriteString('Program name',ParamStr(0));
   finally
     Reg.Free;
   end;

end;

아니면 이거:

using Microsoft.Win32;
private void AddStartUpKey(string _name, string  _path) {
     RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Micros  oft\Windows\CurrentVersion\Run", true);
     key.SetValue(_name, _path);
}
private void RemoveStartUpKey(string _name) {
     RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Micros  oft\Windows\CurrentVersion\Run", true);
     key.DeleteValue(_name, false);
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top