WiX 기반 설치 프로그램에서 바탕 화면 바로 가기 (배치 파일)를 설치하고 있습니다. "관리자 권한으로 실행"설정이 활성화 된 상태에서이 바로 가기를 자동으로 구성하려면 어떻게합니까? 대상 OS는 Windows Server 2008 R2이며 설치 관리자는 승격 된 권한으로 실행됩니다."관리자 권한으로 실행"이 활성화 된 WiX 기반 설치 관리자에서 바탕 화면 바로 가기 (배치 파일에)를 설치하는 방법은 무엇입니까?
는 업데이트 : @Anders에서 제공하는 링크
덕분에, 나는이 작업을 얻을 수 있었다. 그래서 여기에 C#을에서 CustomAction에서이 작업을 수행하는 데 필요한 코드의 C# 버전입니다 :
namespace CustomAction1
{
public class CustomAction1
{
public bool MakeShortcutElevated(string file_)
{
if (!System.IO.File.Exists(file_)) { return false; }
IPersistFile pf = new ShellLink() as IPersistFile;
if (pf == null) { return false; }
pf.Load(file_, 2 /* STGM_READWRITE */);
IShellLinkDataList sldl = pf as IShellLinkDataList;
if (sldl == null) { return false; }
uint dwFlags;
sldl.GetFlags(out dwFlags);
sldl.SetFlags(dwFlags | 0x00002000 /* SLDF_RUNAS_USER */);
pf.Save(null, true);
return true;
}
}
[ComImport(), Guid("00021401-0000-0000-C000-000000000046")]
public class ShellLink { }
[ComImport(), InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("45e2b4ae-b1c3-11d0-b92f-00a0c90312e1")]
interface IShellLinkDataList
{
void AddDataBlock(IntPtr pDataBlock);
void CopyDataBlock(uint dwSig, out IntPtr ppDataBlock);
void RemoveDataBlock(uint dwSig);
void GetFlags(out uint pdwFlags);
void SetFlags(uint dwFlags);
}
}
덕분에 전체 샘플 코드가 있습니다! 나는 이것을 틀리게 필요로했다. – Ben
잊지 말고 : using System.Runtime.InteropServices.ComTypes; – David