2016-08-09 2 views
1

그래서 시계 교체 프로그램을 사용합니다. 문제는 시계에서 클릭을 도용한다는 것입니다. 따라서 알림 영역에서 시계를 클릭 할 때마다 기본 Windows 시계 위젯보다는 프로그램의 팝업 메뉴가 시작됩니다.Windows 10 기본 시계 위젯을 프로그래밍 방식으로 표시

또한 AHK ControlClickTrayClockWClass에 시도했습니다. 나는 여전히 원래 위젯을 얻지 못했다. 프로그래밍 방식으로 원래 위젯을 실행할 수있는 방법이 있습니까? 나는 Windows 10을 사용한다. 1607.

나는 RunDll, API, SendMessage 또는 다른 어떤 방법으로도 문제가 없다.

+2

이 여기 클릭을 디스패치 kludge 지원 시설입니다되지 않습니다 http://stackoverflow.com/questions/3356309/windows-7-left-click-on-clock -popup –

+0

@AlexK. 이 예제는 전혀 작동하지 않습니다. 내 이해 옆에있는 유일한 것은 (또한 작동하지 않는) 컨트롤을 클릭하는 것입니다. –

답변

0

오늘 누군가 내 질문에 대해 찬성표를 던졌습니다. 어쩌면 그들은 대답을 찾고 있을지도 모릅니다. 그때 autohotkey.com 포럼에 게시하고 거기에 대한 대답을 얻습니다.

https://autohotkey.com/boards/viewtopic.php?t=21274

ControlGet, hClock, Hwnd,, TrayClockWClass1, ahk_class Shell_TrayWnd ; https://autohotkey.com/board/topic/70770-win7-taskbar-clock-toggle/ 
if (hClock) { 
    VarSetCapacity(IID_IAccessible, 16), DllCall("ole32\CLSIDFromString", "WStr", "{618736e0-3c3d-11cf-810c-00aa00389b71}", "Ptr", &IID_IAccessible) 
    if (DllCall("oleacc\AccessibleObjectFromWindow", "Ptr", hClock, "UInt", OBJID_CLIENT := 0xFFFFFFFC, "Ptr", &IID_IAccessible, "Ptr*", accTrayClock)) 
     return 
    VarSetCapacity(variant, A_PtrSize == 8 ? 24 : 16, 0), NumPut(VT_I4 := 3, variant,, "UShort") 
    if (A_PtrSize == 4) ; https://autohotkey.com/boards/viewtopic.php?p=111355#p111355 
     DllCall(NumGet(NumGet(accTrayClock+0)+25*A_PtrSize), "Ptr", accTrayClock, "Int64", NumGet(variant, 0, "Int64"), Int64, NumGet(variant, 8, "Int64")) ; IAccessible::DoDefaultAction 
    else 
     DllCall(NumGet(NumGet(accTrayClock+0)+25*A_PtrSize), "Ptr", accTrayClock, "Ptr", &variant) ; IAccessible::DoDefaultAction 
    ObjRelease(accTrayClock) 
} 
관련 문제