Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.11.03;
Скачать: [xml.tar.bz2];

Вниз

Как объявоть переменную(указатель) для всех процессов   Найти похожие ветки 

 
Maksimius   (2003-10-11 18:57) [0]

Как объявоть переменную(указатель) для всех процессов запущенных в системе?


 
Nikolay M.   (2003-10-11 19:05) [1]

Как ты себе это представляешь? :)


 
Digitman   (2003-10-12 13:04) [2]

никак. понятия "переменная"и "указатель" строго индивидуальны для каждого конкретного приложения (процесса)

если же речь таки идет просто о неких общедоступных глобальных данных то задача может быть решена как минимум двумя способами :

1. окну верхнего уровня, создаваемого неким процессом некоего приложения, задается св-во SetWindowWord/Long(GWL_USERDATA). Тогда все прочие процессы прочих приложений, имеющие доступ к дисктопу данного окна, находят это окно по имени/классу и считывают/перезаписывают это св-во

2. одним из процессов некоего приложения создается именованый FileMap-объект (см. CreateFileMapping). Прочие процессы прочих приложений получают доступ к глоб.данным с пом. (OpenFileMapping / MapViewOfFile)


 
default   (2003-10-12 13:10) [3]

никак


 
SammIk   (2003-10-13 21:17) [4]

Внедрение в процесс, это описано у рихтора и в нете


 
Songoku   (2003-10-13 22:17) [5]

Используй обьекты ядра!


 
y-soft   (2003-10-14 06:50) [6]

Вопрос неправильно сформулирован, в такой формулировке ответ однозначный - никак. Если же говорить о передаче данных между процессами (в том числе и интерпретируемых процессами как указатели), то решений много. Кроме 2-х, указанных уважаемым Digitman ©, часто используется доступ через общие Dll, WM_COPYDATA etc...


 
Mike Kouzmine   (2003-10-14 10:13) [7]

Songoku © (13.10.03 22:17) [5] То есть "ядерные объекты".


 
Иван Шихалев   (2003-10-14 12:07) [8]


> часто используется доступ через общие Dll


Не получится. Общие DLL не дают общих данных.


 
Юрий Федоров   (2003-10-14 13:28) [9]

>>Иван Шихалев © (14.10.03 12:07) [8]
Почему же ?
Delphi1, 16-бит, и вперед :-))


 
y-soft   (2003-10-14 14:39) [10]

>Иван Шихалев © (14.10.03 12:07) [8]

Возможно Вы не о том подумали, но вот пример из руководства Тодд Миллер и Девид Пауэл "Использование Delphi 3" "Диалектика", 1997 (привожу дословно). Это простая оболочка над FileMapping:


library ShareHeap

uses
Forms, SysUtils, Windows;

const
Key : string = "_GMem";
MaxSize = $FFFF;
var
hObjHand : THandle;
pGMem : pointer;

procedure UnMapMemory;
begin
if assigned(pGMem) then
begin
UnMapViewOfFile(pGMem);
pGMem := nil;
end;

if hObjHand > 0 then
CloseHandle(hObjHand);

hObjHand := 0;
end;

procedure MapMemory(dwAllocSize : DWORD);
begin
hObjHand := CreateFileMapping(MAXDWORD,nil,PAGE_READWRITE,0,dwAllocSize,PChar(Key));
if hObjHand = 0 then
Raise Exception.Create("Could not create file-mapping object");

pGMem := MapViewOfFile(hObjHand,FILE_MAP_WRITE,0,0,1);
if not assigned(pGMem) then
begin
UnMapMemory;
raise Exception.Create("Could not map file");
end;
end;

procedure DllMain(dwReason : DWORD);
begin
case dwReason of
dll_Process_Attach:
begin
pgMem := nil;
hObjHand := 0;
MapMemory(MaxSize);
end;
dll_Process_Detach:
UnMapMemory;
end;
end;

function GetGBlock : pointer; stdcall;
begin
Result := pGMem;
end;

exports
GetGBlock;

begin
DllProc := @DllMain;
DllMain(dll_Process_Attach);
end.


 
Иван Шихалев   (2003-10-14 14:43) [11]


> Возможно Вы не о том подумали, но вот пример из руководства
> Тодд Миллер и Девид Пауэл "Использование Delphi 3" "Диалектика",
> 1997 (привожу дословно). Это простая оболочка над FileMapping:


Да уж, я совсем не о том подумал.



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2003.11.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.009 c
14-8644
Gorlum
2003-10-14 15:03
2003.11.03
Спрайты


1-8339
Sadya
2003-10-23 17:44
2003.11.03
Не могу открыть файл - его уже используют


1-8432
Dolphin
2003-10-22 08:48
2003.11.03
Нормальный вид строк From, To, Subject из EML и MSG


6-8558
Kremen
2003-09-08 17:13
2003.11.03
Как узнать ip-адрес компьютера своего?


1-8438
undert
2003-10-14 22:55
2003.11.03
Rave PDF Render





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский