Что нового

Сохранение ресурсов в исполняемом файле

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Подскажите,что не так сделал? не сохраняет ресурс в exe, или процесс должен сначала завершиться?

Код:
#include <GUIConstantsEx.au3>
#include <WinAPI.au3>
#include <Process.au3>

$hInstance = _WinAPI_GetModuleHandle(0)

$hForm = GUICreate("Res",120,100)
$Label = GUICtrlCreateLabel(_WinAPI_LoadString($hInstance, 6021),10,10,100,20)
$Input = GUICtrlCreateInput("",10,40,100,20)
$Enter = GUICtrlCreateButton("Save",10,70,100,20)
GUISetState()

While 1
	Switch GUIGetMsg()
		Case -3
			Exit
		Case $Enter
            $Read = GUICtrlRead($Input)	
			If $Read <> "" Then
				FileWrite("String.rc","STRINGTABLE" & @CRLF & _
                                      "LANGUAGE 25, 1" & @CRLF & _
									  "{" & @CRLF & _
                                      '6021, "' & $Read & '"' & @CRLF & _
									  "}")
				_RunDos("ResHacker.exe -add %out% %out% String.rc STRINGTABLE Русский")					  
			EndIf						  
	EndSwitch
WEnd
 

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Это типо оформленный компилятор?;)


Добавлено:
Сообщение автоматически объединено:

Щас сделаю тебе компилятор оформленный, жди... :smile:


Добавлено:
Сообщение автоматически объединено:

Это типо компилятор:
Код:
#include <Process.au3>
_RunDOS('@echo off'&@CRLF&'AutoIt3Wrapper.exe /in 1.au3'&@CRLF&'del ResHacker.ini'&@CRLF&'del ResHacker.log')


А вот это надо в самого начало скрипта:
Код:
#Region AutoIt3Wrapper
#AutoIt3Wrapper_Icon=KMOON.ICO ;Иконка
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Res_Description=NightSky ;имя программы
#AutoIt3Wrapper_Res_Fileversion=1.0.0.8 ;версия
#AutoIt3Wrapper_Res_Language=1033 ;лютше оставь так
#AutoIt3Wrapper_Run_Au3check=n ;сам не знаю, но не трогаю)
#EndRegion AutoIt3Wrapper


А вот если тебе нужно какойто ресурс засунуть то пользуйся: FileInstall(). Распоковывай во временную директорию и используй файл, после использавания удаляй файл...
:IL_AutoIt_1:
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
В смысле оформленный компилятор?
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Ganibal95 Ты похоже не понял, мне ресурс нужно добавить, сома программа будет скомпилирована, пишешь в input и она сохраняет в себе ресурс и после обновления или перезагрузки программы, то что сохранилось выводится в Label


Добавлено:
Сообщение автоматически объединено:

Программа будет скомпилирована, а ресурсы будут добавлятся по ходу её выполнения, всё остальное я уже прочитал, везде ресурсы добавляются при компиляции...
 

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Viktor1703
А тебе нужно добовлять ресурсы уже в скомпилированном файле? :-\
 

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
тогда незнаю :'(


Добавлено:
Сообщение автоматически объединено:

Возможно несохраняется потому что процесс используется! :scratch:


Добавлено:
Сообщение автоматически объединено:

А что делает эта команда?
_RunDos("ResHacker.exe -add %out% %out% String.rc STRINGTABLE Русский")
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Возможно, буду пробывать, но я по моему нашёл решение, только протестировать надо, сделаю и напишу результат и пример


Добавлено:
Сообщение автоматически объединено:

Всё, сделал, правда через Restorator 2007, но работает...

Главный скрипт:
Код:
#include <GUIConstantsEx.au3>
#include <WinAPI.au3>

FileDelete(@ScriptDir & "\String.rc")
DirRemove(@ScriptDir & "\Restorator 2007",1)

$hInstance = _WinAPI_GetModuleHandle(0)

$hForm = GUICreate("Res",120,100)
$Label = GUICtrlCreateLabel(_WinAPI_LoadString($hInstance, 6021),10,10,100,20)
$Input = GUICtrlCreateInput("",10,40,100,20)
$Enter = GUICtrlCreateButton("Save",10,70,100,20)
GUISetState()

While 1
	Switch GUIGetMsg()
		Case -3
			Exit
		Case $Enter
            $Read = GUICtrlRead($Input)	
			If $Read <> "" Then
				FileWrite(@ScriptDir & "\String.rc","STRINGTABLE"    & @CRLF & _
                                       "LANGUAGE 25, 1" & @CRLF & _
									   "{"              & @CRLF & _
                                       '6021, "' & $Read & '"' & @CRLF & _
									   "}")
				$iPid = Run(@ScriptDir & "\writeres.exe", "", @SW_HIDE, 1)
			    StdinWrite($iPid, @ScriptName)
				Exit
			EndIf						  
	EndSwitch
WEnd


Консольный скрипт:
Код:
#include <Process.au3>

$sRead = ""

While 1
	Sleep(10)
	
	$sRead &= ConsoleRead()
	If $sRead Then
		_RunDos("Restorator.exe -open " & $sRead & " -assign String.rc -nobackup -save  -exit")
		Run($sRead)
		ExitLoop
	$sRead = ""
	
	EndIf
WEnd


Но открывается окно ресторатора, хотелось бы через ресурс хакер
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Если я не ошибаюсь, то ResourceHacker не понимает .rc файлы через командную строку, только скомпилированные ресурсы (.res).


Добавлено:
Сообщение автоматически объединено:

Я когда-то что-то подобное уже писал... здесь.
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Очень плохо, тогда я не смогу вставлять свою строку
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724

Siroga00VII

Siroga
Сообщения
33
Репутация
-2
:( :(
Как сохранить Пароль в Dll файл там есть "Строковая таблица"
загружаю:
;D
Код:
#include <WinAPI.au3>
$hInstance = _WinAPI_LoadLibraryEx(@ScriptDir & "\LIBRARY.dll", $LOAD_LIBRARY_AS_DATAFILE)

$sText = _WinAPI_LoadString($hInstance, "1")
MsgBox(64,"",$sText)

а как его туда сохранить?
:scratch: :-\ :-\
 

Astel064

Помог мой пост, ставь +!
Сообщения
276
Репутация
51
Если речь зашла о переносном компиляторе, то тебе сюда...
P.S. Писал исключительно для себя, поэтому прошу особо не критиковать ;D
 

Siroga00VII

Siroga
Сообщения
33
Репутация
-2
Надо добавить стоку в LIBRARY.dll ;D


Добавлено:
Сообщение автоматически объединено:

Как использовать UPX 3.07w? :-X
 
Верх