헬마입니다.

얼마전에 The Old New Thing 블로그를 보다가 흥미가 가는 글이 하나 올라와서 옮겨봅니다.

단축아이콘을 만들떄 관리자 권한으로 실행 표시를 프로그래밍으로 해주는 방법에 대한 코드입니다.

원문 : http://blogs.msdn.com/oldnewthing/archive/2007/12/19/6801084.aspx

#include <windows.h>
#include <shlobj.h>
#include <atlbase.h>

void MarkShortcutRunAs(LPCWSTR pszShortcut)
{
 CComPtr<IPersistFile> sppf;
 if (FAILED(sppf.CoCreateInstance(CLSID_ShellLink))) return;
 if (FAILED(sppf->Load(pszShortcut, STGM_READWRITE))) return;
 CComQIPtr<IShellLinkDataList> spdl(sppf);
 if (!spdl) return;
 DWORD dwFlags;
 if (FAILED(spdl->GetFlags(&dwFlags))) return;
 dwFlags |= SLDF_RUNAS_USER;
 if (FAILED(spdl->SetFlags(dwFlags))) return;
 if (FAILED(sppf->Save(NULL, TRUE))) return;
 wprintf(L"Succeeded\n");
}

int __cdecl wmain(int argc, wchar_t *argv[])
{
 if (argc == 2 && SUCCEEDED(CoInitialize(NULL))) {
  MarkShortcutRunAs(argv[1]);
  CoUninitialize();
 }
 return 0;
}

댓글을 달아 주세요

  1. BlogIcon deneb 2007.12.28 22:41 Address Modify/Delete Reply

    오! 최근에 인스톨쉴드 안쓰고 설치할 프로그램을 만들일이 있고
    WTL을 사용하느라 여기저기 둘러보다 이 글도 참조 했었는데
    보셨다니...
    그리고 갠적으로 스크랩은 스프링노트를 쓰느라...