Egy NEM titkosított ZIP fájlba van három szöveges írásvédett fájl. Hogyan írhatok bele?
Szeretnék különböző módosításokat végezni egy-egy játékba(bf2,bf2142,stb), és ezt ingyen szeretném terjeszteni. Ezek nem mod fájlok, hanem speciális programok. Egy egyszerű példa: az M.I játékosainak írja át a nevét B.Békáról Player 001-re. És hasonlók. Csakhogy ezek a txt fájlok írásvédettek és még egy NEM titkosítót ZIP fájlba is vannak. Egy olyan VBS fájt szeretnék csinálni, ami ezt a problémát orvosolja. Tehát egy olyan VBS fájt szeretnék kérni tőletek, ami gond nélkül bele tud írni egy olyan írásvédett txt fájlba, ami egy zip fájlba van csomagolva. Nem szorosan ide tartozik, de elmondom hogy a kész programot a FreePascal programmal csinálnám meg. A VBS fájlokat is ő fogja megcsinálni egy temp mappába, elindítani, lefuttatni, aztán meg törölni. De mindenféleképpen VBS fájlba szeretném megírni az író programokat, mert ezeket másra is szeretném használni, ami a pascallal nem vonható össze. NEM BAJ hogy ha olyan a program hogy: 1 kicsomagolja egy temp mappába a zip fájt, 2 leszedi a titkosítást róluk/ másolatot készít, beleírja a szükséges dolgokat és végül meg újra ellátja a módosítót fájlokat írásvédettséggel(ez nagyon fontos!-ellenkező esetbe nem működik vagy felülírja a játék) és végül meg becsomagolja újra zip fájlba. Bár gondolom hogy ennél ezerszer rövidebben is meg lehet oldani.
Egy példa: (a fájl neve: egerkeeee.VBS)
strFolder = "C:\Battlefield a legjobb gamma"
set objFSO = createobject("Scripting.FileSystemObject")
if objFSO.FolderExists(strFolder) = False then
objFSO.CreateFolder strFolder
wscript.echo "Elkeszult a mapppppppppa :)"
else
wscript.echo "A mapppppppppa mar letezik."
end if
A válaszokat előre is nagyon szépen köszönöm.
Írásvédett txt fájlba akkor lehet beleírni ha levesszük róla az írásvédettséget, utána beleírnunk, elmentjük és visszarakjuk rá az írásvédettséget.
Ez nem bohóskodás. És igen tudom hogy hogyan lehet egy text fájt csinálni, beleírni és utána meg írásvédetté tenni. De nem értitek a kérdést?
Itt van a konkrét kérdésem:
Itt van egy sima ZIP fájl:
E:\Program Files\Electronic Arts\Battlefield 2142\mods\bf2142\Levels\Belgrade\server.zip
Ebbe a ZIP fájlba van sok minden de nekem csak a "Overgrowth.con" része kell. Ez egy TXT fájl, szöveges fájl, tökmindegy hogy mi, értelmezi a szövegszerkesztő. Az a gond hogy egy ZIP fájlba van. Ha nem abba lenne akkor össze vissza tudnám törni, de így nem. Sőt a dúrba az hogy még a 7-zip program se tud beleírni, de mondjuk ez nem névadó hogy az mit tud, vagy sem. Ezt az egész dolgot nevetve megoldom MANUÁLISAN. De én egy programot szeretnék írni ami ezt megoldja. Azért szeretném ezt a programot megírni hogy aki a családtagjának tartja a Battlefield játékokat, annak folyjon a nyála iránta és 1 kattintással teljesen egyéni tudja alakítani az imádott gammáját. Csináltam már a bf2142-höz egy programot. Mint tudjátok ez a rész megkeseríti a játékosok életét, mivel offline módba nem lehet offline profilt csinálni benne, ezért nem lehet a botok ellen játszani offline módba. Ezért én kis sajtos egérke készítettem egy programot ami egy ezredmásodperc alatt kész egy egyéni névvel ellátott profilt, nett nélkül, ea profil nélkül, offline módba, offline játszáshoz. De ez csak egy aprócska dolog ahhoz képest amit akarok csinálni. Csak egy apró kis dolog kéne ahhoz hogy több tíz ezer játékost elérjek. TERMÉSZETESEN nektek is ingyen odaadnám a programokat amiket készítek erre.
Tehát a kérdés:
Egy programot akarok készíteni. A dolgokat nem manuálisan akarom elkészíteni, mert ha a nettre kéne raknom bizonyos dolgok manuális megoldását, akkor az egy biblia hosszúságú lenne, ezért egyszerűbb az ha egy 100kb program mindent megcsinál. Egy zip fájlba van egy pár szöveges fájl, bele akarok írni úgy hogy nem én csinálom ezt hanem egy vbs amit meghívok egy pascal programból. Ennyi. Egy egy emberke azt mondta hogy ez amolyan f.marcell-es dolog. Nem hiszem el hogy el kéne mennem oda hogy zavarjam ilyen apró dolgokkal, van neki ezer dolga. Meg amúgy se ismerem annyi. Kérlek szépen titeket, ha van olyan ismerősötök aki egy picit mélyebben benne van a dolgokba, kérlek szépen hogy szóljatok neki. Nem csak nekem segítenétek ezzel. Hisz a mai napig tízezrek játszanak a régebbi, még botokat támogató bf gammákkal. És cserébe más programokhoz is csinálnék kisebb kisegítő programocskákat.
"Amúgy nem tudom mi akar ez lenni, de eléggé bohóckodásnak hangzik!"
Ja jó most eset le a mondatod hogy miért írtad ezt. A példa vbs kódom az csak azért írtam meg hogy lássátok milyen egy minden nélkül futó vbs kód. Ilyet szeretnék csinálni, csak az már zip-be nyúl, beleír és kész.
"Először készítsd el a szöveges fájlokat, aztán csomagold be és tedd írásvédetté."
Ne haragudjatok, nagyon lassú a felfogásom. Ez a mondat most eset le: NEM a zip fájl titkosított, hanem a benne lévő szöveges fájlok. Tehát a zip fájllal akármit lehet csinálni, akármikor. De a benne lévő fájlokkal már nem, jelen tudásom szerint.
Megoldottam, megoldották. Bár reménykedtem benne hogy egy pár soros lesz, de nem, és ráadásul most látom át hogy egy újabb egy hetes projektbe kezdhetek bele.
Íme a vbs kód:
Zip kicsomagolása, háttérbe:
Option Explicit
Extract "C:\Program Files\Electronic Arts\Battlefield 2142\mods\bf2142\Levels\Belgrade\server.zip", "C:\eger"
Sub Extract( ByVal myZipFile, ByVal myTargetDir )
Dim intOptions, objShell, objSource, objTarget
Set objShell = CreateObject( "Shell.Application" )
Set objSource = objShell.NameSpace( myZipFile ).Items( )
Set objTarget = objShell.NameSpace( myTargetDir )
intOptions = 256
objTarget.CopyHere objSource, intOptions
Set objSource = Nothing
Set objTarget = Nothing
Set objShell = Nothing
End Sub
Zip-be csomagolása, félig meddig háttérbe, mert egy ablak a végén felugrik, de ezt lehet orvosolni:
Option Explicit
Dim arrResult
arrResult = ZipFolder( "C:\eger", "C:\server.zip" )
If arrResult(0) = 0 Then
If arrResult(1) = 1 Then
WScript.Echo "Done; 1 empty subfolder was skipped."
Else
WScript.Echo "Done; " & arrResult(1) & " empty subfolders were skipped."
End If
Else
WScript.Echo "ERROR " & Join( arrResult, vbCrLf )
End If
Function ZipFolder( myFolder, myZipFile )
Dim intSkipped, intSrcItems
Dim objApp, objFolder, objFSO, objItem, objTxt
Dim strSkipped
Const ForWriting = 2
intSkipped = 0
If Right( myFolder, 1 ) <> "\" Then
myFolder = myFolder & "\"
End If
On Error Resume Next
Set objFSO = CreateObject( "Scripting.FileSystemObject" )
Set objTxt = objFSO.OpenTextFile( myZipFile, ForWriting, True )
objTxt.Write "PK" & Chr(5) & Chr(6) & String( 18, Chr(0) )
objTxt.Close
Set objTxt = Nothing
If Err Then
ZipFolder = Array( Err.Number, Err.Source, Err.Description )
Err.Clear
On Error Goto 0
Exit Function
End If
Set objApp = CreateObject( "Shell.Application" )
For Each objItem in objApp.NameSpace( myFolder ).Items
If objItem.IsFolder Then
Set objFolder = objFSO.GetFolder( objItem.Path )
If objFolder.Files.Count + objFolder.SubFolders.Count = 0 Then
intSkipped = intSkipped + 1
Else
objApp.NameSpace( myZipFile ).CopyHere objItem
End If
Else
objApp.NameSpace( myZipFile ).CopyHere objItem
End If
Next
Set objFolder = Nothing
Set objFSO = Nothing
If Err Then
ZipFolder = Array( Err.Number, Err.Source, Err.Description )
Set objApp = Nothing
Err.Clear
On Error Goto 0
Exit Function
End If
intSrcItems = objApp.NameSpace( myFolder ).Items.Count
Do Until objApp.NameSpace( myZipFile ).Items.Count + intSkipped = intSrcItems
WScript.Sleep 200
Loop
Set objApp = Nothing
If Err Then
ZipFolder = Array( Err.Number, Err.Source, Err.Description )
Err.Clear
On Error Goto 0
Exit Function
End If
On Error Goto 0
If intSkipped = 0 Then
strSkipped = ""
Else
strSkipped = "skipped empty subfolders"
End If
ZipFolder = Array( 0, intSkipped, strSkipped )
End Function
De a válaszokat azért köszönöm.
Ha nem nagy reklám, akkor nézzétek meg ezt az oldalt:
Itt van minden ami vbs.
És szeretitek ti az opera böngészőt? Aki erre azt mondja hogy nem, akkor annak megsúgok egy titkot:
A legújabb Opera böngészőben van egy apró... kis szolgáltatás... VPN! Ja igen, korlátlan... Nem tudom hogy ezt meddig fogja csinálni, de jelenleg ingyenes és korlátlan VPN-t azt az opera böngésző támogatja, ha a privát részére megyünk, és a címsor bal oldalán található VPN szócskára kattintunk. Ott kiválasztjuk hogy épp hol "nem" vagyunk... és mehet az anonim webezés :)
Na minden jót mindenkinek.
Töltsd le a HxD-t.
Azzal bármibe belepiszkálhatsz, teljesen manuális.
Vigyázz vele, mert nem "szórakozik"! Ahol és amit mutat, ott és azt csinálja! "Live"!
Javaslom, hogy csak másolatban "matass" vele!
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!