답변:
내가 당신이 단축키를 만드는 모든 프로그램을 비활성화 할 수 있다고 생각하지 않지만, 울타리 .
그것은 바탕 화면에 아이콘을 그룹화 할 수 있지만 가장 중요한 것은 바탕 화면을 두 번 클릭하면 울타리에없는 모든 항목을 숨길 수 있다는 것입니다.
내가 그것을 알고있는 덮어 쓰기 설정은 없지만 세 가지 옵션이 있습니다 - 하나는 위험하고 하나는 우회로, 다른 하나는 안전합니다!
다음 폴더에서 보안 설정 편집 : (한 폴더 위로 이동하여 마우스 오른쪽 버튼으로 클릭하고 속성 수행)
c:\users\<name>\Desktop
or
%userprofile%\Desktop
and
c:\users\default\Desktop
그런 다음 보안 탭으로 이동하여 편집을 클릭하십시오. Modify 및 Write에 Deny 속성을 추가하려고합니다. 설치 프로그램이 사용자에 따라 실행되는 경우 사용자를 위해이 작업을 수행해야합니다.
이것은 아이콘을 만들 수없는 단점이 있지만 작동해야합니다.
설치로 생성 된 모든 아이콘을 삭제하십시오!
항목이없는 바탕 화면의 아무 곳이나 마우스 오른쪽 단추로 클릭하십시오. 보기 옵션을 확장하고 "바탕 화면 아이콘 표시"를 해제하십시오. 물론이 아이콘에는 단점이 있습니다. 그러나 이것이 달성하려는 경우 중요하지 않습니다!
예약 된 작업을 사용하고 사용자 지정 스크립트 나 프로그램을 작성할 필요가없는 간단한 방법이 있습니다.
나는 아이콘을 삭제할 예정된 작업을 설정했다. 주기적으로 (그리고 MSI 설치가 완료된 후에) 실행되기 때문에 다소 불완전하지만 작동합니다 (6 개월 동안 사용하면 꽤 잘됩니다). 현재 사용자와 "공용"사용자의 프로필 모두에 대한 링크를 직접 삭제합니다. 물론 이렇게 할 수있는 권한이 있는지 여부에 달려 있습니다.
작업은 다음과 같이 생성됩니다.
Application
MsiInstaller
1042
cmd
/c for %f in (%userprofile%\Desktop\*.lnk %userprofile%\..\Public\Desktop\*.lnk) do del "%f"
.xml 파일로 저장 한 다음 Windows 작업 스케줄러로 가져올 수있는 작업은 다음과 같습니다.
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2012-11-02T00:46:01.691625</Date>
<Author>Gregmac</Author>
</RegistrationInfo>
<Triggers>
<EventTrigger>
<Enabled>true</Enabled>
<Subscription><QueryList><Query Id="0" Path="Application"><Select Path="Application">*[System[Provider[@Name='MsiInstaller'] and EventID=1042]]</Select></Query></QueryList></Subscription>
</EventTrigger>
<CalendarTrigger>
<StartBoundary>2012-11-02T05:00:00</StartBoundary>
<Enabled>true</Enabled>
<ScheduleByDay>
<DaysInterval>1</DaysInterval>
</ScheduleByDay>
</CalendarTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>Greg</UserId>
<LogonType>InteractiveToken</LogonType>
<RunLevel>HighestAvailable</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>P3D</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>cmd</Command>
<Arguments>/c for %f in (%userprofile%\Desktop\*.lnk %userprofile%\..\Public\Desktop\*.lnk) do del "%f"</Arguments>
</Exec>
</Actions>
</Task>
Windows에서이 작업을 수행 할 수있는 방법이 있는지 모르겠지만이 기본 코드가 작동한다는 것을 알고 있습니다.
Kill("C:\Users\<name>\Desktop\*.lnk")
이렇게하면 바탕 화면의 모든 바로 가기가 자동으로 삭제됩니다.
그렇지 않으면 수동으로 삭제하는 것 외에 어떤 방법을 모르겠습니다.
(어쨌든 몇 초만 걸립니다)
만약 내가 정말 그 일을하고 싶지 않았다. @ 윌리엄이 제안한 "위험한 방법"을 사용했다.
데스크탑 폴더에 대한 사용 권한을 변경하여 자신을 비롯한 모든 사람 (및 설치 프로그램과 같은 사용자가 시작한 프로그램)이 데스크탑에 쓰지 못하도록합니다. 질문은 원래 바로 가기에 대해 "완전히 무료"라고 언급 했으므로 휴지통과 내 컴퓨터도 숨겨야합니다.