마우스 위치에서 Windows 시작 메뉴를 활성화해야합니다.WIndows 시작 메뉴 표시 방법
CTRL + ESC 또는 Win 키를 특정 창에 보내고 나중에 창을 이동할 수 있다는 것을 알고 있지만 잠시 후 원래 위치에 메뉴가 표시됩니다 (단, 후크를 설치하지 않으면 잔인합니다). 작업).
일부 dll 호출을 사용하거나 쉘 또는 일부 메시지를 보내는 몇 가지 방법이 있습니다.
Ty
마우스 위치에서 Windows 시작 메뉴를 활성화해야합니다.WIndows 시작 메뉴 표시 방법
CTRL + ESC 또는 Win 키를 특정 창에 보내고 나중에 창을 이동할 수 있다는 것을 알고 있지만 잠시 후 원래 위치에 메뉴가 표시됩니다 (단, 후크를 설치하지 않으면 잔인합니다). 작업).
일부 dll 호출을 사용하거나 쉘 또는 일부 메시지를 보내는 몇 가지 방법이 있습니다.
Ty
버튼을 프로그래밍 방식으로 "누르는"경우에도 동일한 동작을합니까?
// Find the Start button
HANDLE hScreenDC = GetDC(0);
DWORD height = GetDeviceCaps(hScreenDC, VERTRES);
ReleaseDC(0, hScreenDC);
hTaskBarWnd = FindWindow("Shell_TrayWnd", 0);
hStartButtonWnd = GetWindow(hTaskBarWnd, GW_CHILD);
// Now simulate a press on the Start button
SendMessage(hButtonWnd, WM_LBUTTONDOWN,
MK_LBUTTON, LOWORD(5) + HIWORD(height - 20));
그렇지 않으면 WinSpy++을 사용하여 "Shell_TrayWnd"창을 탐색하거나 유사한 유틸리티를 사용하여 수, 아마도 시작 메뉴는 트레이 창의 자식 창입니다.
코드는 WM_LBUTTODOWN의 Lparam으로 0 (또는 작은 값, 아마도 클라이언트 영역의 버튼이어야 함)을 전달할 때만 작동합니다. 그것은 자식 창이 아닌 것 같지만 매번 다시 만들었습니다 .... – majkinetor
확실히 할 수 있습니다. (예 : Stardock의 DesktopX와 같은) 애플 리케이션이 있습니다. – majkinetor
그렇다면 종속성 워커를 사용하여 다음에 의해 사용 된 가져 오기를 검사 할 수 있습니다. DesktopX 유틸리티를 사용하면 찾고있는 API 함수가 표시 될 수 있습니다. – Gabriella
[DllImport("user32.dll", SetLastError = true)]
public static extern IntPtr FindWindow (string lpClassName, string lpWindowName);
[DllImport("user32.dll")]
public static extern bool ShowWindow (IntPtr hWnd, ShowWindowCommand nCmdShow);
int ShowCmd = 5;
int HideCmd = 0;
ShowWindow(FindWindow("DV2ControlHost", "Start menu"), ShowCmd);
적어도 Windows 7에서 트릭을해야합니다. 다시 숨기려면 "ShowCmd"대신 "HideCmd"를 사용하십시오.
저는 2 년 반 만에 아무도 시작 메뉴를 표시하는 방법을 묻지 않았습니다 (실제로 아무도 [공식, 문서화 된, 대답]를 제공하지는 않습니다.) (http : //stackoverflow.com/questions/2755202/)). 그러나 마우스 포인터가 기본 위치가 아닌 _ 시작되면 _ 시작 메뉴를 여는 방법을 묻습니다. – JdeBP