Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.025 c
2-1145626164
suharew
2006-04-21 17:29
2006.05.14
Запись в Com порт в шестнадцатеричном формате


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


15-1145002989
Cashmare
2006-04-14 12:23
2006.05.14
Эта странная вода


2-1145867869
Keks
2006-04-24 12:37
2006.05.14
Всплывающие сообщения


9-1129620790
greg123
2005-10-18 11:33
2006.05.14
Помогите создать алгоритм генерации случайных чисел




   Наверх