delphi가 자동으로 시작하는 좋은 방법 만들기
1822 단어 Delphi
그래서 빠른 방법은 이미 만들어진 lnk 파일에서 시작 그룹으로 복사하는 것이다. 이렇게 하면 두 개의 관건적인 경로만 얻으면 ok가 된다.
startup:='';
if (SHGetSpecialFolderLocation(0, CSIDL_COMMON_STARTUP, Pidl) and $80000000) = 0 then
begin
//MAX_PATH
SetLength(LinkDir, 255);
SHGetPathFromIDList(Pidl, PChar(LinkDir));
SetLength(LinkDir, StrLen(PChar(LinkDir)));
startup:=linkdir+'\ .lnk';
end;
programDir:='';
if (SHGetSpecialFolderLocation(0, CSIDL_PROGRAMS, Pidl) and $80000000) = 0 then
begin
SetLength(LinkDir, 255);
SHGetPathFromIDList(Pidl, PChar(LinkDir));
SetLength(LinkDir, StrLen(PChar(LinkDir)));
programDir:=linkdir+'\ \ .lnk';
end;
//exec:='copy "'+programDir+'" "'+startup+'" /y';
// err:=WinExec(PChar(exec),0);
log:=startup+' '+ programDir +' '+ BoolToStr(FileExists(programDir),true);
fLog:=FileCreate('err.log',fmOpenWrite);
cnt:=Length(log);
tmp:=PChar(log);
FileWrite(fLog,log[1] , cnt);
FileClose(fLog);
fIn:=FileOpen(programDir,fmOpenRead);
fOut:=FileCreate(startup,fmOpenWrite);
fLen:=GetFileSize(fIn,nil);
SetLength(buf, fLen);
FileRead(fIn,PChar(buf)^, fLen);
FileWrite(fOut,PChar(buf)^, fLen);
FileClose(fOut);
FileClose(fIn);
복사 정의 변수가 없으면 스스로 쓰면 된다.주요 사고방식은 SHGetSpecialFolderLocation 함수로 관건적인 경로를 얻은 다음에 파일을 복사하면 된다는 것이다.중간에 로그를 쓰는 프로그램은 무시할 수 있습니다.
61k만 컴파일되었고 압축되지 않았습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[Delphi] TStringBuilder그리고 꼭 사용해야만 할까? 그림처럼 Heap 영역에 "Hello" 공간을 생성하고 포인팅을 한다. "Hello World" 공간을 새로 생성한 후 포인팅을 하게 된다. 결국 "Hello" 라는 String 객체가 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.