[코드] 섹션에서 Inno Setup을 사용하여 바탕 화면을 새로 고칠 수 있습니까?Inno 설치 화면 새로 고침
SendMessage를 사용하거나 어떻게 든 SHChangeNotify를 사용 하시겠습니까?
[코드] 섹션에서 Inno Setup을 사용하여 바탕 화면을 새로 고칠 수 있습니까?Inno 설치 화면 새로 고침
SendMessage를 사용하거나 어떻게 든 SHChangeNotify를 사용 하시겠습니까?
Windows API에서 함수를 호출하려면 적절한 DLL에서 함수를 호출하면됩니다. 파스칼 DLL 구문은 here으로 문서화되어 있습니다. SHChangeNotify
함수에 대한 문서는 MSDN에서 평소대로 찾을 수 있습니다. 이 함수는 Shell32.dll
에 있습니다 (놀랄 일이 아닙니다!).
[Code]
const
SHCNE_ASSOCCHANGED = $08000000;
SHCNF_IDLIST = $00000000;
procedure SHChangeNotify(wEventID: integer; uFlags: cardinal; dwItem1, dwItem2: cardinal);
external '[email protected] stdcall';
procedure SendChangeNotification;
begin
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0);
end;
이제 당신은 event function에서 예를 들어, 어디서나 당신이 좋아 SendChangeNotification
를 호출 할 수 있습니다.
업데이트
텍스트는 위의 "[코드] 섹션에 이노 설정을 사용하여 바탕 화면을 새로 고침 '하는 방법, 귀하의 질문에 대답을 제공합니다. 하지만 Inno Setup을 사용하면 자동으로 바탕 화면을 새로 고칠 수 있다는 것을 알고 있습니까? 간단히 작성하십시오
ChangesAssociations=yes
[Setup]
섹션에 작성하십시오.
답장을 보내 주셔서 감사합니다. 그러나 어떻게 작동합니까? 내가 노력하고있는 순간 : 외부 'SHChangeNotify (0x8000000, 0x1000, 0, 0) @ Shell32.dll stdcall'; 하지만 구문 오류가 발생합니다. –
@ s0mmer : 올바른 구문이 아닙니다. 첫째, 함수의 선언은 서명이 무엇인지, 함수가 어디에 위치하는지 (외부 인 경우)를 서술해야합니다. 함수를 호출 할 때 넣는 인수! 또한 MSDN은'SHCNE_ASSOCCHANGED'가'$ 1000'이 아닌 'SHCNF_IDLIST'와 함께 사용되어야한다고 말합니다. –
완벽한! 고마워요! –