Получение пути к документам из реестра

Тема в разделе "WASM.BEGINNERS", создана пользователем KondraT, 19 мар 2008.

  1. KondraT

    KondraT Member

    Публикаций:
    0
    Регистрация:
    22 янв 2006
    Сообщения:
    175
    Загружаю свою длл с помощью winlogon\notify.
    В реестре ставлю такие параметры:
    ..
    Impersonate = 1
    Logon=myproc
    ..
    myproc, в свою очередь, запускает приложение, которое должно считывать путь к "Мои документы" того юзера что залогинился. Путь получаю через реестр - значение Personal.
    Создал юзера с правами 'Пользователь', читаю ветку реестра и получаю путь к документам администратора, а не текущего юзера.
    Каким образом мне получить нужный путь? И процесс почему-то запускается под NT AUTHORITY\SYSTEM при любых значениях Impersonate.
     
  2. KondraT

    KondraT Member

    Публикаций:
    0
    Регистрация:
    22 янв 2006
    Сообщения:
    175
    Я так понимаю, что моё приложение запускается под тем же юзером что и винлогон - NT AUTHORITY\SYSTEM, но почему он не запускает под текущим юзером при Impersonate=1?

    Народ, подскажите что я не так делаю. Может я не правильно понимаю значение Impersonate?

    Вот кусок из ДЛЛ:
    Код (Text):
    1.            .data
    2.            open db 'open', 0
    3.            fil db 'C:\WINDOWS\notepad.exe', 0
    4.            stinfo STARTUPINFO <>
    5.            prinfo PROCESS_INFORMATION <>
    6.            ...
    7.  
    8.            .code
    9.     mov stinfo.cb, sizeof stinfo
    10.     invoke ShellExecute, 0, addr open, addr fil, 0, 0, SW_SHOWDEFAULT
    11.            invoke CreateProcess, 0, addr fil, 0, 0, 0, 0, 0, 0, addr stinfo, addr prinfo - пробую через создание процесса - тоже самое.