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

Вниз

Сменить ресурс в EXE   Найти похожие ветки 

 
antonn ©   (2011-06-21 22:54) [0]

Есть программа, загружена в поток (stream), в ней нужно добавить/изменить ресурс, как? :)
Начал смотреть примеры, везде BeginUpdateResource() который требует файла на диске, файла нет. Могу нужную мне информацию преобразовать в формат res-файлов (опять таки они тоже в потоке), как их "внедрить" в нужную мне программу? При этом чтобы было потокобезопасно.

PS кросспостинг :)


 
Игорь Шевченко ©   (2011-06-21 23:15) [1]

Сохранить stream в файл, сказать BeginUpdateResource/UpdateResource/EndUpdateResource, загрузить из файла в stream

?


 
antonn ©   (2011-06-21 23:16) [2]


> Сохранить stream в файл

без сохранения в файл


 
Игорь Шевченко ©   (2011-06-21 23:18) [3]

antonn ©   (21.06.11 23:16) [2]

Написать свой аналог вышеперечисленных функций, в принципе сложного нет, но велосипед-с


 
antonn ©   (2011-06-21 23:20) [4]

Вот я и надеюсь что такой аналог уже написан, мало ли какие подводные камни там будут и сколько времени это займет.


 
Игорь Шевченко ©   (2011-06-21 23:26) [5]

вот сюда глянь

http://www.wilsonc.demon.co.uk/delphi_2006.htm

особенно в http://www.wilsonc.demon.co.uk/files/d10/ResourceUtils100.zip


 
Andy BitOff ©   (2011-06-21 23:27) [6]

Антон, наверняка этот процесс [1] займет менее секунды, так чего беспокоиться-то? Сохранил, изменил, саписал, стрер.


 
antonn ©   (2011-06-21 23:39) [7]

это вебсервер, многопоточный, у него и так достаточно чего покрутить на дисках :) и располагается он отнюдь не на серверном железе, и стоит на нем прекраснейший антивирь от МС, который при создании/копировании файла очень даже отчетливо подзатупляет систему (больше чем на секунду, и это в режиме пользователя, когда я архив распаковываю). И костыль по сути получается, таки :) не нужен же мне файл на диске, я его отдать должен браузеру, предварительно сунув внутрь нужный ресурс


 
Игорь Шевченко ©   (2011-06-21 23:45) [8]


> не нужен же мне файл на диске, я его отдать должен браузеру,
>  предварительно сунув внутрь нужный ресурс


EXEшник ? Браузеру ?

Call me paranoid...


 
antonn ©   (2011-06-21 23:56) [9]


> EXEшник ? Браузеру ?

да, с последующим запуском.
Игорь, очень тебя прошу - не телепатируй, не порть впечатление о себе


 
antonn ©   (2011-06-22 01:44) [10]

еще постестирую, но кажется с TPEResourceModule все получилось, спасибо :)


 
Andy BitOff ©   (2011-06-22 10:47) [11]


> Игорь Шевченко ©   (21.06.11 23:45) [8]

Может нужно при клике на download в зависимости от опций на странице отдать нужный файл. Вот он, видимо, и хочет собрать его на лету.


 
antonn ©   (2011-06-22 12:33) [12]

Вообще нужно запустить программу у пользователя с параметрами, из браузера. Но это нельзя (просто нельзя и все :) учитывая все геморрои разных браузеров ). Поэтому пишу лаунчер, который читает ресурс внутри себя (в ресурсе прописаны параметры запуска) и запускает с ними программу у пользователя (если находит ее, она может быть не установлена). Пользователю лишь нужно щелкнуть "скачать" и запустить. Плюс нужно смотреть есть у текущего юзера необходимые группы прав в АктивДиректори.
если интересно, то сама задача тут: http://www.php.ru/forum/viewtopic.php?t=33781


 
Cobalt ©   (2011-06-24 15:09) [13]

Боже мой, боже ты мой, какое нагромождение...
если по исходным данным: ( http://www.php.ru/forum/viewtopic.php?t=33781 )

Есть сервер со сканером и веб-мордой

Как я понял, эту (или другую) якобы программу надо запускать на сервере с определенным параметром?

Тогда просто в веб-сервер добавляешь cgi-bin, если надо, с парольной авторизацией (допустим, https чтобы не внедрять в cgi-bin свою парольную проверку)
Он-то и будет запускать прогу с параметром.

Если же ты хочешь, чтобы программа запускалась не на серваке, а на другом компе, на котором читается инфа с веб-сервера, то проще это дело мониторить через программу, в которой парсится html (или xml) и по щелчку пользователя запускается программа с нужными параметрами (при необходимости - скачивается с сервака)


 
antonn ©   (2011-06-24 17:21) [14]


> Как я понял, эту (или другую) якобы программу надо запускать
> на сервере с определенным параметром?

Нет, нужно запустить программу кликнув по ссылке html-странички отданной сервером-сканером. На любой машине, без установки "лишнего" софта.
Сервер самописный, нет в нем никаких cgi-bin :)

Собственно задача решена, для удаленного администрирования найденых компов нужны две программы (dwr/rdp и внутрикорпоративная спецпрога). Написал лаунчер, в ресурсы которого помещается конфиг (режим работы, имя компьютера, логин/пароль, метод авторизации, конфиг шифруется (вообще все сжимается и шифруется, но не суть :))), а в случае со спецсофтов и сама эта спецпрограммка. На страничке ссылки "запустить удаленку" и "открыть конфигуратор", при первом в лаунчер зашивается информация для коннекта DWR, во втором параметры коннекта и сама спецпрога. Лаунчер скачивается и сразу запускается (пользователем) из диалога загрузки. Запускается ДВР или спецпрога извлеченная в temp.
Ну и плюс, красоты ради, окошко на винапи выводится через любую мной updatelayeredwindow, с анимацией (лаунчер производит все операции с запуском/распаковкой в другом потоке), и так же меняется иконка и пара картинок :) 200кб вышло, для интранета, даже с областью, вполне пренебрежительный размер.

ЗЫ хоть кому-то рассказать, а то все пользующие видят только вебморду и вообще в этом "ни бум-бум" =)


 
antonn ©   (2011-06-24 17:50) [15]


> через любую мной updatelayeredwindow

любимую :)

http://antonn.com/xlam/pos_launcher_ani.gif


 
димка на   (2011-06-25 18:32) [16]

на крайняк можно не в ресурс писать а в конец ехе файла. потом считать.


 
antonn ©   (2011-06-26 00:38) [17]

еще больший изврат чем патчить выделенное заранее место по массив в коде



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

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

Наверх




Память: 0.51 MB
Время: 0.008 c
15-1308584554
alexdn
2011-06-20 19:42
2011.10.16
Хост + ms sql


15-1308984778
oleg1963lora
2011-06-25 10:52
2011.10.16
Хост в 40 Гб бесплатно на 48 часов. Возможно ли это?


2-1309002914
Тимофей Ю.
2011-06-25 15:55
2011.10.16
неправильно выбран тип числа


1-1269019209
DmitriyG.
2010-03-19 20:20
2011.10.16
Изменение DecimalSeparator


15-1308742325
>|<
2011-06-22 15:32
2011.10.16
Печать наклейки на USB-принтере