Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > как узнать в какой папке "находится пользователь"


Автор: RaIDeR 31.7.2005, 23:00
Сабж smile

Автор: Yanis 31.7.2005, 23:12
Что значит "находится"?

Автор: RaIDeR 31.7.2005, 23:17
Это значит узнать путь к папке в которой работает юзер.

Автор: FRAGNATIC 1.8.2005, 00:23
хм а как насчёт того что юзер может юзать тотал командэр или FAR или ешё чёнить?
а то что юзер сразу может открыть хоть 10 папок сворачивая окна с открытыми папками?
ток если брать да смотреть заголовки открытых и свернутых окон!
Ну или отлавливать чтонить типа создание\удаление\редактирование\ файла ! Переход по коталогу к следушей папке! если такое возмоно)
но эт уже те в раздел ВинАПИ )

Автор: <Spawn> 1.8.2005, 04:27
Если имеется ввиду текущая папка, то GetCurrentDir, GetCurrentDirectory

Автор: Bes 1.8.2005, 06:53
...или заголовок активного окна?... тогда это может быть не только папка

Автор: Song 1.8.2005, 09:43
ExtractFilePath(ParamStr(0))

Автор: RaIDeR 1.8.2005, 16:25
GetCurrentDir, GetCurrentDirectory, ExtractFilePath(ParamStr(0)) - всё эти ф-ции возвращают путь
к той папке в которой находиться исполняемый файл !
А мне же нужно знать: "путь к папке в которой работает юзер" smile

Может можно отловить открытие/обращение к папкам ? Будь то far или Total Commander ... хоть CMD smile

Автор: Гость_man 1.8.2005, 16:36
Чем не подходит?
Delphi6 TShellChangeNotifier


Автор: Гость_man 1.8.2005, 16:54
Если нужно для всех процессов, то WinNT = ReadDirectoryChangesW

Автор: RaIDeR 1.8.2005, 17:01
А как с пощью ShellChangeNotifier узнать путь к той папке в которой работает юзер ?
-----
Добавлено @ 17:09
Цитата

ReadDirectoryChangesW(
HANDLE hDirectory, // handle to the directory to be watched
....

Но для того чтобы получить хэндл папки нужно создать ёё, есть ли способы получить хэндл уже созданной папки?

Автор: Guest 1.8.2005, 17:16
Код

Remarks

To obtain a handle to a directory, use the CreateFile function with FILE_FLAG_BACKUP_SEMANTICS as follows:

hDir = CreateFile (
          DirName,                       // pointer to the file name
          FILE_LIST_DIRECTORY,           // access (read-write) mode
          FILE_SHARE_READ|FILE_SHARE_DELETE,  // share mode
          NULL,                               // security descriptor
          OPEN_EXISTING,                      // how to create
          FILE_FLAG_BACKUP_SEMANTICS,         // file attributes
          NULL                           // file with attributes to copy

        );


Автор: Гость_man 1.8.2005, 17:16
все есть в хелпах, я же дал функцию, осталось только F1 нажать...

Автор: RaIDeR 1.8.2005, 17:51
F1 Я нажал уже давно, вот только понять толком ничё не могу smile
Люди плиз приведите пример как нужно использовать ф-цию ReadDirectoryChangesW smile

Автор: Song 2.8.2005, 08:25
Цитата(RaIDeR @ 1.8.2005, 17:25)
А мне же нужно знать: "путь к папке в которой работает юзер"

А что это такое?
где он с ней работает? Может в быть в проводнике? Может быть в фаре? или ещё как-то "работает" ? smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)