Главная страница
    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.01 c
1-8501
MaG
2003-10-23 20:02
2003.11.03
Шрифт


1-8470
Vint
2003-10-24 09:49
2003.11.03
остается пустая кнопка в таскбаре


14-8671
Карелин Артем
2003-10-15 11:00
2003.11.03
Ссылки на сайты по микроконтроллерам.


14-8582
Rouse_
2003-10-15 21:39
2003.11.03
Ммм да. От алисы с косой челкой до моряка....


1-8430
alex_***
2003-10-17 14:46
2003.11.03
Отчеты в Excel





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский