문제

나는 다음과 같은 매크로를 가지고 있습니다.

http://msdn.microsoft.com/en-us/library/bb774722(vs.85).aspx

어떻게 갈까요?

가장 쉬운 방법은 매크로를 사용하는 간단한 VB 스크립트를 작성하고 호출하는 것입니다. 그러나 나는 전적으로 VB 스크립트에 대해 단서가 없습니다. 이견있는 사람?

도움이 되었습니까?

해결책

다음 스크립트를 찾았습니다 Autohotkey 포럼에서 그들의 위대함을 통해 IRC 채널 (감사합니다 _RHYS와 TITAN)

monthNb := 3   ; How many months are displayed. Can be fetched with MCM_GETMONTHRANGE
MCM_FIRST := 0x1000
MCM_SETDAYSTATE := MCM_FIRST + 8

; MCS_DAYSTATE = 1
Gui, Add, MonthCal, +0x1 vMyCalendar
Gui, Add, Button, gBoldify w100, B
Gui Show

Gui +LastFound
guiID := WinExist()
ControlGet mcID, Hwnd, , SysMonthCal321, ahk_id %guiID%

Gosub SetDayState
Return

Boldify:
VarSetCapacity(daysBuffer, 4 * monthNb, 0)
if bOdd
{
   days = 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31
}
else
{
   days = 2,4,6,8,10,12,14,16,18,20,22,24,26,28,30
}
bOdd := not bOdd
addr := &daysBuffer + 4
Loop Parse, days, `,
{
   o1 := (A_LoopField - 1) / 8
   o2 := Mod(A_LoopField - 1, 8)
   val := *(addr + o1) | (1 << o2)
   DllCall("RtlFillMemory", "UInt", addr + o1, "UInt", 1, "UChar", val)
}
Gosub SetDayState
Return

SetDayState:
   SendMessage MCM_SETDAYSTATE, monthNb, &daysBuffer, , ahk_id %mcID%
Return

GuiClose:
GuiEscape:
ExitApp
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top