Конференция "WinAPI" » PostMessage и UAC [D7]
 
  • istok (26.04.11 15:52) [0]
    Win 7, UAC,
    из процесса запущенного под юзером вызываю PostMessage чтобы послать мессагу в окно запущенное под SYSTEM. PostMessage  возвращает false, getlasterror=5

    окошко для получения сообщений создаётся так:

    function CreateInVisibleWindow(const WndClass: string; Method: TWndMethod): HWND;
    var
     UtilWindowClass: TWndClass;

     function AllocateWnd(Method: TWndMethod): HWND;
     var
       TempClass: TWndClass;
       ClassRegistered: Boolean;
     begin
       UtilWindowClass.hInstance := HInstance;
     {$IFDEF PIC}
       UtilWindowClass.lpfnWndProc := @DefWindowProc;
     {$ENDIF}
       ClassRegistered := GetClassInfo(HInstance, UtilWindowClass.lpszClassName,
         TempClass);
       if not ClassRegistered or (TempClass.lpfnWndProc <> @DefWindowProc) then
       begin
         if ClassRegistered then
           Windows.UnregisterClass(UtilWindowClass.lpszClassName, HInstance);
         Windows.RegisterClass(UtilWindowClass);
       end;
       Result := CreateWindowEx(WS_EX_TOOLWINDOW, UtilWindowClass.lpszClassName,
         '', WS_POPUP {!0}, 0, 0, 0, 0, 0, 0, HInstance, nil);
       if Assigned(Method) then
         SetWindowLong(Result, GWL_WNDPROC, Longint(MakeObjectInstance(Method)));
     end;

    begin
     with UtilWindowClass do
     begin
       style := 0;
       lpfnWndProc := @DefWindowProc;
       cbClsExtra := 0;
       cbWndExtra := 0;
       hInstance := 0;
       hIcon := 0;
       hCursor := 0;
       hbrBackground := 0;
       lpszMenuName := nil;
       lpszClassName := PChar(WndClass);
     end;

     Result := AllocateWnd(Method);

    end;



    в PostMessage хендл окна правильный.

    вопрос - как под uac отправить мессагу из юзерского uac окна в окно процесса под system ?
  • istok (26.04.11 16:02) [1]
    +1: если юзерский процесс запустить под admin, то всё равно та же ошибка при postmessage
  • istok (26.04.11 16:06) [2]
    +1: без UAC всё работает отлично
  • istok (26.04.11 16:14) [3]
    похоже что выход в юзе ChangeWindowMessageFilterEx для принимающего окна...
  • istok (26.04.11 16:17) [4]
    да, помогло.. тема закрыта)
 
Конференция "WinAPI" » PostMessage и UAC [D7]
Есть новые Нет новых   [134431   +13][b:0][p:0.002]