Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как получить имя Mapped файла по его Handle [D7, WinXP]


MFN+ ©   (2008-01-01 18:25:00) 

Вот код:
var
c:cardinal;
a:array[0..255]of char;
p:pointer;
begin
p:=windows.MapViewOfFile(MappedHandle,FILE_MAP_READ,0,0,1);
GetMappedFileName(getcurrentprocessid,p,a,sizeof(a));
showmessage(a);
end;

есть хендл - MappedHandle его передаю, а выдает ?


ага   (2008-01-02 12:42:00) [1]

GetMappedFileName возвращает имя файла, который был отображен, а не имя секции. Если ее вызвать для секции в файле подкачки, то она и вернет > Том был открыть извне...А чего ей еще возвращать-то?


MFN+   (2008-01-02 06:14:00) [2]

Говорит, что : Том был открыть извне...
Имя получить не могу.
Хотя я открывал его MapViewOfFile, но и когда не открывал, тоже не мог имя получить.


Ins   (2008-01-01 23:39:00) [3]

Сорри, не заметил [1]. Тогда см. [2]


Ins   (2008-01-01 23:35:00) [4]

Первый параметр - хэндл процесса, а не идентификатор. Т.е. GetCurrentProcess вместо GetCurrentProcessID. Только имя возвращается в формате NTPath, а не DOSPath, если нужно преобразовать - вот пример:
http://msdn2.microsoft.com/en-us/library/aa366789(VS.85).aspx


MetalFan   (2008-01-01 19:10:00) [5]

а что GetLastError говорит?


MFN+   (2008-01-01 18:41:00) [6]


> varc:cardinal;a:array[0..255]of char;p:pointer;beginp:=windows.
> MapViewOfFile(MappedHandle,FILE_MAP_READ,0,0,1);GetMappedFileName( getcurrentp rocessid,
> p,a,sizeof(a));showmessage(a);end;


ошибочка, GetCurrentProcess там, но тоже не помогает.
Как все-таки получить имя?Подскажите Плиз.


Наверх

Титульная страница Поиск, карта сайта Написать письмо