Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.14;
Скачать: CL | DM;

Вниз

Нельзя ли передать приложению данные не в виде файла, а потоком   Найти похожие ветки 

 
TStas ©   (2006-04-02 23:08) [0]

ПРимер:
PlaySound("CANCEL", HINSTANCE, SND_RESOURCE); //Работающий код, здесь функции передается именно поток взятый из ресурса
А с другими приложениями так нельзя?


 
Eraser ©   (2006-04-02 23:13) [1]


> TStas ©   (02.04.06 23:08)

SND_MEMORY


 
Leonid Troyanovsky ©   (2006-04-02 23:40) [2]


> TStas ©   (02.04.06 23:08)  

> А с другими приложениями так нельзя?


Можно, если они загрузят оный ресурс, скажем, LoadLibraryEx.
Ну, или, наверное, сделают [1] из проекции файла, доступной
в другом приложении.

--
Regards, LVT.


 
Германн ©   (2006-04-03 01:29) [3]


> TStas ©   (02.04.06 23:08)  
>
> ПРимер:
> PlaySound("CANCEL", HINSTANCE, SND_RESOURCE); //Работающий
> код, здесь функции передается именно поток взятый из ресурса
> А с другими приложениями так нельзя?
>

Тут данные для функции беруться из ресурса.

А вот сабжу этот пример никак не соответствует. Даже если приложение умеет выполнять [2].


 
TStas ©   (2006-04-03 02:53) [4]

Я понимаю, что приложения по-разному с файлами обращаются. Например WSCript запросто  сделает харакири: он ОДИН раз рабрал весь код, а потом его выполняет. Ясно, что МП4 такая фишка не проойдет, но с кем-то и как-то можно передать поток. Из ресурса он загрузился, но ресурс-то в экзешнике был, разве он не поток TResourceStream?


 
Leonid Troyanovsky ©   (2006-04-03 11:33) [5]


> TStas ©   (03.04.06 02:53) [4]

> фишка не проойдет, но с кем-то и как-то можно передать поток.
>  Из ресурса он загрузился, но ресурс-то в экзешнике был,
>  разве он не поток TResourceStream?


Нет, конечно. Ресурс имеет свой формат, а TResourceStream -
это дельфийский объект, позволяющий обращаться с ним как
с потоком.

Для того, чтобы можно было воспользоваться ресурсом чужого
экзешника, нужно загрузить его себе LoadLibraryEx, ну, а,
потом попытаться использовать его хендл вместо Hinsatance.

Многие вещи, как, скажем, LoadBitmap не проходят.
Тогда можно попробывать вытащить ресурс в TMemoryStream,
а далее - SND_MEMORY.

Другие варианты передачи требуемого подразумевают
кооперацию этих приложений, например, IPC.

--
Regards, LVT.


 
TStas ©   (2006-04-03 12:53) [6]

Вот читаю книгу по виндам, только начал, но понял, что фактически приложению передается не сам файл, что непонятно что на самом  деле, а ХЕНДЛ на него - сполне внятная для виндов вещь. Вот и на STream каким-то, не знаю пока каким, образм хендл получить и его вручить приложению


 
Leonid Troyanovsky ©   (2006-04-03 18:09) [7]


> TStas ©   (03.04.06 12:53) [6]

> вещь. Вот и на STream каким-то, не знаю пока каким, образм
> хендл получить и его вручить приложению


Забудь про TStream, его не передашь.
Можно передать хендл проекции файла: DuplicateHandle + передать
значение хендла в другой процесс, а затем, уже там, MapViewOfFile
и читать оттуда, как из памяти.

Ну, или выдрать из этого экзешника требуемый ресурс (редактором
ресурсов) сохранить его в файл и прицепить его к своему приложению.

--
Regards, LVT.


 
TStas ©   (2006-04-04 19:32) [8]

То есть просто пустой поток объявить, не создаваить его и присвоитьь хендле?


 
Fay ©   (2006-04-04 20:33) [9]

2 TStas ©   (04.04.06 19:32) [8]
В смысле? >8-0


 
Германн ©   (2006-04-05 01:57) [10]


> Leonid Troyanovsky ©   (03.04.06 18:09) [7]
> Забудь про TStream, его не передашь.

Забудь также и про поток. Он тут совершенно ни при чём.
Продолжай читать книгу. Дальше может поймёшь лучше.



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

Текущий архив: 2006.05.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.039 c
4-1140431669
Wolfram
2006-02-20 13:34
2006.05.14
Как отловить нажатие alt


11-1126077378
Kozz
2005-09-07 11:16
2006.05.14
Кто-нибудь делал анимационную иконку в трее ?


11-1126114007
KirillT
2005-09-07 21:26
2006.05.14
Открытие програмным путем общего доступа к папке на своей машине


15-1145445960
Некто_
2006-04-19 15:26
2006.05.14
Проигрыватель жжостких дисков =)))


2-1145838896
Bratskiy
2006-04-24 04:34
2006.05.14
Резервное копирование базы данных