Главная страница
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.036 c
15-1145424688
Mozart
2006-04-19 09:31
2006.05.14
не могу установить Zyxel U1496E


2-1146116795
makvell
2006-04-27 09:46
2006.05.14
Прогресс


15-1145286125
Yegorchic
2006-04-17 19:02
2006.05.14
Дневники


6-1137758006
Юрий Ж.
2006-01-20 14:53
2006.05.14
[?]Служба сообщений


8-1134758124
Джон
2005-12-16 21:35
2006.05.14
Как заставить TMediaPlayer воспроизводить видео?