Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.95/22: Рейтинг темы: голосов - 22, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 71

Извлечение .exe из ресурса

31.12.2012, 00:45. Показов 5164. Ответов 48
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите извлеч екзешку на компютер пожалуста.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.12.2012, 00:45
Ответы с готовыми решениями:

Извлечение EXE Файла из ресурса .dres
Решил написать простенький, свой первый проект - но столкнулся с проблемой (Не извлекает запакованный Файл) 1. Я загрузил EXE файл в...

Извлечение строк из ресурса
Не могу понять как вытащить из файла ресурсов строку из таблицы frmAbout.Caption = LoadResString(101) Вытаскивает "О...

Замена ресурса в *.EXE и т.д.
Всем привет! Помогите решить такой вопрос, как заменить ресурс в скомпилированном приложении? Например есть ресурс типа Bitmap с...

48
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,532
Записей в блоге: 1
31.12.2012, 02:40
можно подробнее, откуда её извлечь и зачем?
0
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 71
31.12.2012, 13:31  [ТС]
У меня одна програма вшыта в другую через ресурсы. И мне нужно ее скопировать на диск с типа установки
0
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
31.12.2012, 14:40
Я бы с этим не мучался. Ведь хрен знает как она там зашита. Но есть один подход, которым меня часто спасал в такой ситуации. Просто, чтобы запустить этот exe его нужно сначало куда-то извлечь. Обычно это пихается в temp. Но пожно посмотреть путь к файлу через диспетчер задач и оттуда его тырнуть.
0
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 71
31.12.2012, 20:21  [ТС]
Ето я вшыл одну прогу в другую и мне нужно ту прогу которая в етой проге закинуть на диск С
0
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
01.01.2013, 00:43
WinApi в помощь
0
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 71
01.01.2013, 01:00  [ТС]
та я то вкурсе а какие функции то брать?
0
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
01.01.2013, 14:22
Вот проект смотри - запускаешь Project1 и на диск "С" извлекается программа с именем - "1" .
Вложения
Тип файла: rar Project1.rar (22.6 Кб, 65 просмотров)
0
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 71
01.01.2013, 16:14  [ТС]
А в FindResource первым оператором что давать? Я пробовал NULL неработает?
0
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
01.01.2013, 16:23
Вот это надо передавать - HINSTANCE hInstance – дескриптор экземпляра приложения. Этот дескриптор содержит адрес начала кода программы в ее адресном пространстве. Дескриптор hInstance чаще всего требуется функциям, работающим с ресурсами программы.
1
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 71
01.01.2013, 16:39  [ТС]
а что передать? У меня консольное приложениебез кнопок?
0
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
01.01.2013, 16:56
Цитата Сообщение от slavikg Посмотреть сообщение
а что передать? У меня консольное приложениебез кнопок?
Найди свой дескриптор приложение HWND по нему найди HINSTANCE и его передавай
0
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
01.01.2013, 17:11
Вот сделал для вас консольное приложение с извлечением программы на диск С
Вложения
Тип файла: rar Project1.rar (121.6 Кб, 34 просмотров)
0
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 71
01.01.2013, 17:38  [ТС]
У меня еррор можете посмотреть что не так? Может неправильно .exe добавляю или не тот проект создал?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
// setup.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "setup.h"
#include<Windows.h>
#include <windowsx.h>
#include <cstdlib>
 
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
 
 
// Единственный объект приложения
 
CWinApp theApp;
 
using namespace std;
 
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
    ShowWindow(GetConsoleWindow(),SW_HIDE);
    int nRetCode = 0;
 
    HMODULE hModule = ::GetModuleHandle(NULL);
 
    if (hModule != NULL)
    {
        // инициализировать MFC, а также печать и сообщения об ошибках про сбое
        if (!AfxWinInit(hModule, NULL, ::GetCommandLine(), 0))
        {
            // TODO: измените код ошибки соответственно своим потребностям
            _tprintf(_T("Критическая ошибка: сбой при инициализации MFC\n"));
            nRetCode = 1;
        }
        else
        {
            // TODO: Вставьте сюда код для приложения.
        }
    }
    else
    {
        // TODO: Измените код ошибки соответственно своим потребностям
        _tprintf(_T("Критическая ошибка: неудачное завершение GetModuleHandle\n"));
        nRetCode = 1;
    }
 
 
    HKEY hkey1;//hkey2;
    //m_dwMaxFileSize = 16 * 1024;
    //LPCWSTR subkey;
    //unsigned char windir[100];
    //unsigned char szStr[10]={'"','C',':'};
    //szStr[0]='"'; szStr[1]='\0'; 
    //strcat((char*)windir,"C:\Windows\Starter.exe /minimized /regrun");
    //strcat((char*)windir,'\0');
    _TCHAR szTestString[] = _T("C:\\Windows\\Starter.exe /minimized /regrun");
    if(RegOpenKeyEx(HKEY_CURRENT_USER,TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Run"),0,KEY_ALL_ACCESS | KEY_WOW64_64KEY,&hkey1)== ERROR_SUCCESS)
        //RegSetValueEx(hkey1,L"Slavikg2",0,REG_SZ,(PBYTE)"C:\Windows\Starter.exe /minimized /regrun",200);//(PBYTE)
        RegSetValueEx(hkey1,L"Slavikg",0,REG_SZ,(BYTE*)szTestString,sizeof(szTestString)+1);
    RegCloseKey(hkey1);
    
    ///////////////////////////////////////////////////////////////////////
    //      Пробуєм вивести екзешку
    //HINSTANCE hInst=NULL;
    int Error = 0 ;
    
    HWND hwnd;
 
HINSTANCE hInst;
    
    hwnd = GetForegroundWindow();
    
   hInst = GetWindowInstance(hwnd);
    
 
HRSRC hResInfo = ::FindResource(hInst, MAKEINTRESOURCE(IDR_EXE3), RT_RCDATA);
                HGLOBAL hRes = ::LoadResource(hInst, hResInfo);
                LPVOID memRes = ::LockResource(hRes);
                DWORD sizeRes = ::SizeofResource(hInst, hResInfo);
 
                HANDLE hFile = ::CreateFile(TEXT("C:\\1.exe"), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
                DWORD dwWritten = 0;
               Error = ::WriteFile(hFile, memRes, sizeRes, &dwWritten, NULL);
                ::CloseHandle(hFile);
    
    if(Error!=0){
                 cout<<"Ok\n";
                 
                 }
                 
else{
     
     cout<<"Error\n";
     
     }
     
     system("PAUSE");
 
 
    //////////////////////////////////////////////////////////////////////
    return nRetCode;
}
0
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
01.01.2013, 19:01
что за ошибка , я же не телепат !
0
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 71
01.01.2013, 19:26  [ТС]
Ошибки некакой. Выводит ошибка cout<<"Error\n";
0
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
01.01.2013, 19:30
Ты рессурсы создал правельно ? приложение которое ты посылаешь в ресурсы называется так же как и у меня в программе - 1.exe , да и ещё ты посмотри у тебя основное приложение увеличилось в размере , на столько сколько занимает программа встраимоваемая в ресурс.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
01.01.2013, 20:22
slavikg, поясни ещё раз у тебя есть сторонняя программа из которой хочешь извлечь ресурс?Тогда нагугли себе любой редактор ресурсов - их в интернете как компоста на колхозном поле. Если же ты пишешь свой софт из которого нужно что то извлечь - то добавляй экзешник как Insert Resourse->Other file и твой экзешник станет ничем иным как набором байт в одной из секций приложений упаковщика. Т.е эти самые байты потом выкладывай на HDD да называй как хочешь. Так можно вшить и xls и jpg да всё что угодно. Вот тебе линк на wav в ресурсах посомтри да по аналогии для exe сотвори.
Ошибка AfxGetResourceHandle
0
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 71
01.01.2013, 20:42  [ТС]
А как правильно ресурс создать я в вижулал студио. В самой программе не дает сделать должен в папке проекта в файл ресурса добавлять
0
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
01.01.2013, 20:58
Цитата Сообщение от slavikg Посмотреть сообщение
А как правильно ресурс создать
А что же ты тему то тогда создавал , как извлеч из рессурсов ,если не знаешь как туда запихнуть !!!!!!!!!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.01.2013, 20:58
Помогаю со студенческими работами здесь

Запуск файла exe из ресурса
Привет, возможно запустить файл в формате .exe из ресурса или аналогичным способом, но не выгружая из программы? нахожу варианты только...

Ошибки при запуске EXE из ресурса
Имеется WinForms приложение (Test.exe) у которого в ресурсах &quot;WindowsFormsApplication1.exe&quot;. Ресурс помечен как &quot;Внедренный&quot;....

Удаление ресурса из Агент Mail.Ru exe
Есть файл EXE Агента Mail.Ru, но при установке помимо агента ставиться ещё куча ненужных дополнений, возможно ли отредактировать файл EXE...

Как запустить .exe программу из ресурса?
У меня есть в ресурсе .exe программа... Как мне ее запустить из ресурса?

Как заставить exe приложение работать файлом из ресурса?
мой exe приложения через OpenFileDialog работает но надо чтоб работаль Файлом из ресурса пример OpenFileDialog dialog =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru