-
Вот код: 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 его передаю, а выдает ?
-
> 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 там, но тоже не помогает. Как все-таки получить имя?Подскажите Плиз.
-
а что GetLastError говорит?
-
Первый параметр - хэндл процесса, а не идентификатор. Т.е. GetCurrentProcess вместо GetCurrentProcessID. Только имя возвращается в формате NTPath, а не DOSPath, если нужно преобразовать - вот пример: http://msdn2.microsoft.com/en-us/library/aa366789(VS.85).aspx
-
Сорри, не заметил [1]. Тогда см. [2]
-
Говорит, что : Том был открыть извне... Имя получить не могу. Хотя я открывал его MapViewOfFile, но и когда не открывал, тоже не мог имя получить.
-
GetMappedFileName возвращает имя файла, который был отображен, а не имя секции. Если ее вызвать для секции в файле подкачки, то она и вернет > Том был открыть извне... А чего ей еще возвращать-то?
|