Что нового

чтение MANIFEST.MF в JAR архивах

SECTOR

Продвинутый
Сообщения
390
Репутация
57
Не могу сделать так чтоб AutoIt читал MANIFEST.MF в JAR архивах(Java приложения),
точнее определённые пункты... ;)
Я сделал форму, начало ,но дальше не могу :'( , если можете помогите пожалуйста!
Вот что я пока сделал...
Код:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <Constants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

Global $Read[6]

#Region ### START Koda GUI section ### Form=C:\Documents and Settings\1-Shot and Gone\Мои документы\AutoIt Temp\DF\MIDlet.kxf
$Form = GUICreate("MIDlet", 354, 221, 348, 236)
GUICtrlCreateLabel("Имя", 4, 4, 33, 20)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
$MIDlet_Name = GUICtrlCreateInput("", 56, 4, 293, 21)
GUICtrlCreateLabel("Версия", 4, 40, 47, 17)
GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")
$MIDlet_Version = GUICtrlCreateInput("", 56, 40, 293, 21)
GUICtrlCreateLabel("Разработчик", 4, 76, 80, 17)
GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")
$MIDlet_Vendor = GUICtrlCreateInput("", 84, 76, 265, 21)
$pSave = GUICtrlCreateButton("Сохранить", 148, 156, 97, 21, 0)
$pCancel = GUICtrlCreateButton("Отмена", 248, 156, 101, 21, 0)
$pInfoToDel = GUICtrlCreateCheckbox("Показывать инфо. перед удалением", 4, 104, 349, 17)
GUICtrlCreateLabel("Текст", 4, 128, 39, 17)
GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")
$MIDlet_Delete_Confirm = GUICtrlCreateInput("", 44, 128, 305, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
$pmFile = GUICtrlCreateMenu("Файл")
$pmOpen = GUICtrlCreateMenuItem("Открыть", $pmFile)
$pmSave = GUICtrlCreateMenuItem("Сохранить", $pmFile)
$pmOther = GUICtrlCreateMenu("Другое")
$pmMFfile = GUICtrlCreateMenuItem("*.MF из гругово файла", $pmOther)
GUISetState(@SW_HIDE)
#EndRegion ### END Koda GUI section ###


$sDialog = "Jar MANIFEST.MF editor..."
$hOpen = FileOpenDialog($sDialog, @WindowsDir & "", "JavaFile (*.jar)", 1 )
Start()


Func Start()
		GUISetState(@SW_SHOW)
		$man = $hOpen&"\META-INF\MANIFEST.MF"
		$Read[1] = FileRead($man, "MIDlet-Name:")
		MsgBox(0,"",$Read[1])
		GUICtrlSetData($MIDlet_Name,$Read[1])
EndFunc

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE, $pCancel
		Case $pmOpen
		Case $pmMFfile
		Case $pSave
		Case $pInfoToDel
	EndSwitch
WEnd


Заранее спасибо...
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Код:
$Read[1] = FileRead($man, "MIDlet-Name:")

Цитата из справки
Код:
FileRead ( filehandle or "filename" [, count] )

filehandle The handle of a file, as returned by a previous call to FileOpen. Alternatively you may use a string filename as the first parameter.
count [optional] The number of characters to read. Default read the entire file. Not optional for file in raw reading mode
MIDlet-Name: - неправильное значения для кол-ва символов для чтения
Код:
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE, $pCancel
		Case $pmOpen
		Case $pmMFfile
		Case $pSave
		Case $pInfoToDel
	EndSwitch
WEnd

ни для одного из кейсов нет действия... Что должно произойти при выполнении того или иного случая?
Хотя, возможно это лишь неполный пример с пустышками.
А вообще, JAR - это же архив. Врядли его можно напрямую читать, наверняка надо распаковывать.
Под рукой нет ни одного файла чтобы проверить :(
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1 551
Репутация
328
Код:
$man = $hOpen&"\META-INF\MANIFEST.MF"

А ты точно уверен что он рассматривает внутренности файла .jar?

Update: Да так оно и есть. Он НЕ открывает файл в файле. Т.е. предварительно с помощью Rar.exe нужно вытащить Manifest.MF а потом его открывать :smile:
 
Автор
SECTOR

SECTOR

Продвинутый
Сообщения
390
Репутация
57
Medic84 сказал(а):
Он НЕ открывает файл в файле. Т.е. предварительно с помощью Rar.exe нужно вытащить Manifest.MF а потом его открывать :smile:
Я так и подумал но всё равно спасибо... :smile:
 
Верх