Beiträge von WhiteLion
-
-
-
-
-
-
ja stimmt hier ist er:
aber beim einpacken gehts auch nicht, also versuch mal ein verzeichnis mit 100 mb oder so zu packen/crypten .... hier aber nochmal ein .v-file:
http://www.mediafire.com/?ifjf6ikus3zhh7p -
Ich hab jetzt folgends, was auch mit kleineren dateinen funktioniert ... leider stürzt es mit der fehlermeldung: "...funktioniert nicht mehr "ab, sobald ich eine größere datei konvertieren möchte evtl kann ja mal jemand einen blick drauf werfen .....
PS: ich habe die .dlls und alles was zum testen benötigt wird, angehängt.Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;~ #include <AVIConstants.au3>
;~ #include <ButtonConstants.au3>
;~ #include <EditConstants.au3>
;~ #include <GUIConstantsEx.au3>
;~ #include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <File.au3>
;~ #include <GUIConstants.au3>
;~ #include <GuiListView.au3>
;~ #include <GuiImageList.au3>
;~ #include <Constants.au3>
;~ #include <inet.au3>
;~ #include <GuiEdit.au3>
;~ #include <GuiStatusBar.au3>
;~ #include <ScrollBarConstants.au3>
#include <sendmessage.au3>
#include <string.au3>
#include <Zip32.au3>FileInstall("zip32.dll", @ScriptDir & "\zip32.dll")
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
FileInstall("unzip32.dll", @ScriptDir & "\unzip32.dll")
Global $destdirectory, $sourcefile, $sourcedirtozip, $destzipname, $timestring
_StatsSaver()Func _StatsSaver() ; StatsSaver GUI
[/autoit] [autoit][/autoit] [autoit]
$h10Gui = GUICreate("Stats Unpacker V0.01", 200, 200, -1, -1, $WS_MINIMIZEBOX)
;$Label61 = GUICtrlCreateLabel("Thanx for idea to ", 40, 70)
;GUICtrlCreatePic(@TempDir & "\logo.jpg", 10, 10, 425, 55)
$QuitStats = GUICtrlCreateButton("X", 179, 0, 15, 15, 0)
$RestoringStats = GUICtrlCreateButton("Restore Stats", 10, 120, 100, 15, 0)
$SaveStats = GUICtrlCreateButton("Save Stats", 10, 140, 100, 15, 0)
GUISetState(@SW_SHOW)While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Sleep(20)
Switch $nMsg
Case $QuitStats
GUIDelete($h10Gui)
ExitLoop
Case $RestoringStats
$sourcefile = FileOpenDialog("Select a vfile (.v archive)", @ScriptDir, "vfiles (*.v)")
if $sourcefile <> "" Then
$splitted = StringSplit($sourcefile,"\")
_ArrayDisplay($splitted)
_checkifstatsbackupexists2()
$createdir = StringTrimRight($splitted[$splitted[0]], 2)
MsgBox(0,"",$createdir)
DirCreate(@ScriptDir & "\extracted-vfiles\" & $createdir)
$decoded = _Decodefile($sourcefile)
FileWrite(@ScriptDir & "\extracted-vfiles\"&$createdir&"-decoded.v", $decoded)
_unpack(@ScriptDir & "\extracted-vfiles\"&$createdir&"-decoded.v", @ScriptDir & "\extracted-vfiles\"&$createdir)
EndIf
Case $SaveStats
$sourcefile = FileSelectFolder("Select a directroy where vfiles where extracted", @ScriptDir)
if $sourcefile <> "" Then
$splitted = StringSplit($sourcefile,"\")
$savedir = $splitted[$splitted[0]]
_checkifstatsbackupexists()
_pack($sourcefile, @ScriptDir & "\vfiles\"&$savedir&"-packed.v")
$s_FileName = @ScriptDir & "\vfiles\"&$savedir&"-packed.v"
$encoded = _Encodefile($s_FileName)
FileWrite(@ScriptDir & "\vfiles\"&$savedir&".v", $encoded)
EndIf
EndSwitch
WEnd
EndFunc ;==>_tatsSaverFunc _unpack($sourcefile, $destdirectory)
[/autoit] [autoit][/autoit] [autoit]
_UnZip_Init("_UnZIP_PrintFunc", "UnZIP_ReplaceFunc", "_UnZIP_PasswordFunc", "_UnZIP_SendAppMsgFunc", "_UnZIP_ServiceFunc")
_UnZIP_SetOptions()
_UnZIP_Unzip($sourcefile, $destdirectory)
If @error Then
MsgBox(16, "Error", "Restorings stats and Archive unpacking error")
Else
MsgBox(64, "Success", "Restoring stats and archive unpacking successful")
EndIf
EndFuncFunc _pack($sourcedirtozip, $destzipname)
[/autoit] [autoit][/autoit] [autoit]
_Zip_Init("_ZIPPrint", "_ZIPPassword", "_ZIPComment", "_ZIPProgress")
If @error Then
MsgBox(16, "Error", "Zip32.dll did not initialize")
Exit
EndIf
; Global $sDate = 0, $sEncrypt = 0, $sSys = 1, $sEmptyFolder = 0, $sExcludeDate = 0, $sIncludeDate = 0, $sJunkDir = 0, $sMove = 0, $sUpdate = 0,
; $sFresh = 0, $sLatestTime = 0, $sComment = 0, $sPrivilege = 1, $sRecurse = 1, $sLevel = 9_ZIP_SetOptions(0,0,1,0,0,0,1)
[/autoit] [autoit][/autoit] [autoit]
If @error Then
MsgBox(16, "Error", "Options sets error")
Exit
EndIf_ZIP_Archive($destzipname, $sourcedirtozip)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
If @error Then
MsgBox(16, "Error", "Saving stats and archive creating error")
Else
MsgBox(64, "Success", "Saving stats and archive creating successful")
EndIf
EndFuncFunc _checkifstatsbackupexists()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
if DirGetSize(@ScriptDir & "\vfiles") = -1 then DirCreate(@ScriptDir & "\vfiles")
EndFuncFunc _checkifstatsbackupexists2()
[/autoit] [autoit][/autoit] [autoit]
if DirGetSize(@ScriptDir & "\extracted-vfiles") = -1 then DirCreate(@ScriptDir & "\extracted-vfiles")
EndFuncFunc _createtimestring()
[/autoit] [autoit][/autoit] [autoit]
Global $timestring = ("__date_"&@MON&"_"&@MDAY&"_"&@YEAR&"__time_"&@HOUR&"_"&@MIN&"_"&@SEC)
EndFunc;==========================# ZIP Dll-callback functions #======================================
[/autoit] [autoit][/autoit] [autoit]
Func _ZIPPrint($sFile, $sPos)
ConsoleWrite("!> _ZIPPrint: " & $sFile & @LF)
EndFuncFunc _ZIPPassword($sPWD, $sX, $sS2, $sName)
[/autoit] [autoit][/autoit] [autoit]
Local $iPass = InputBox("Archive encrypting set", "Enter the password", "", "", 300, 120)
If $iPass = "" Then Return 1
Local $PassBuff = DllStructCreate("char[256]", $sPWD)
DllStructSetData($PassBuff, 1, $iPass)
EndFuncFunc _ZIPComment($sComment)
[/autoit] [autoit][/autoit] [autoit]
Local $iComment = InputBox("Archive comment set", "Enter the comment", "", "", 300, 120)
If $iComment = "" Then Return 1
Local $CommentBuff = DllStructCreate("char[256]", $sComment)
DllStructSetData($CommentBuff, 1, $iComment)
EndFunc;~ Func _ZIPProgress($sName, $sSize)
[/autoit] [autoit][/autoit] [autoit]
;~ ;Return 1 for abort the zip!
;~ $CurZipSize += Number($sSize)
;~ Local $iPercent = Round(($CurZipSize / $UnCompSize * 100))
;~ GUICtrlSetData($progress, $iPercent)
;~ GUICtrlSetData($edit, $sName & @CRLF, 1)
;~
;~ ConsoleWrite("!> Name: " & $sName & @LF)
;~ EndFunc;==========================# UnZIP Dll-callback functions #========================================
[/autoit] [autoit][/autoit] [autoit]
Func _UnZIP_PrintFunc($sName, $sPos)
ConsoleWrite("---> _UnZIP_PrintFunc: " & $sName & @LF)
EndFuncFunc UnZIP_ReplaceFunc($sReplace)
[/autoit] [autoit][/autoit] [autoit]
If MsgBox(4 + 32, "Overwrite", "File " & $sReplace & " is exists." & @LF & "Do you want to overwrite all file?") = 6 Then
Return $IDM_REPLACE_ALL
Else
Return $IDM_REPLACE_NONE
EndIf
EndFuncFunc _UnZIP_PasswordFunc($sPWD, $sX, $sS2, $sName)
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite("!> UnZIP_PasswordFunc: " & $sPWD & @LF)
Local $iPass = InputBox("Password require", "Enter the password for decrypt", "", "", 300, 120)
If $iPass = "" Then Return 1
Local $PassBuff = DllStructCreate("char[256]", $sPWD)
DllStructSetData($PassBuff, 1, $iPass)
EndFuncFunc _UnZIP_SendAppMsgFunc($sUcsize, $sCsize, $sCfactor, $sMo, $Dy, $sYr, $sHh, $sMm, $sC, $sFname, $sMeth, $sCRC, $fCrypt)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;ConsoleWrite("!> _UnZIP_SendAppMsgFunc: " & $sUcsize & @LF)
EndFuncFunc _Encodefile($s_FileName)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$s_FileName = FileOpen($s_FileName, 16)
$s_FileName = FileRead($s_FileName)
Local $a_AArr = StringSplit($s_FileName,"")
For $i = 2 To UBound($a_AArr) -1
Switch $a_AArr[$i]
Case "0"
$a_AArr[$i] = "5"
Case "1"
$a_AArr[$i] = "4"
Case "2"
$a_AArr[$i] = "7"
Case "3"
$a_AArr[$i] = "6"
Case "4"
$a_AArr[$i] = "1"
Case "5"
$a_AArr[$i] = "0"
Case "6"
$a_AArr[$i] = "3"
Case "7"
$a_AArr[$i] = "2"
Case "8"
$a_AArr[$i] = "D"
Case "9"
$a_AArr[$i] = "C"
Case "A"
$a_AArr[$i] = "F"
Case "B"
$a_AArr[$i] = "E"
Case "C"
$a_AArr[$i] = "9"
Case "D"
$a_AArr[$i] = "8"
Case "E"
$a_AArr[$i] = "B"
Case "F"
$a_AArr[$i] = "A"
EndSwitch
Next
Return Binary(_ArrayToString($a_AArr,"",1))
EndFuncFunc _Decodefile($s_FileName)
[/autoit]
$s_FileName = FileOpen($s_FileName, 16)
$s_FileName = FileRead($s_FileName)
Local $a_AArr = StringSplit($s_FileName,"")
For $i = 2 To UBound($a_AArr) -1
Switch $a_AArr[$i]
Case "5"
$a_AArr[$i] = "0"
Case "4"
$a_AArr[$i] = "1"
Case "7"
$a_AArr[$i] = "2"
Case "6"
$a_AArr[$i] = "3"
Case "1"
$a_AArr[$i] = "4"
Case "0"
$a_AArr[$i] = "5"
Case "3"
$a_AArr[$i] = "6"
Case "2"
$a_AArr[$i] = "7"
Case "D"
$a_AArr[$i] = "8"
Case "C"
$a_AArr[$i] = "9"
Case "F"
$a_AArr[$i] = "A"
Case "E"
$a_AArr[$i] = "B"
Case "9"
$a_AArr[$i] = "C"
Case "8"
$a_AArr[$i] = "D"
Case "B"
$a_AArr[$i] = "E"
Case "A"
$a_AArr[$i] = "F"
EndSwitch
Next
Return Binary(_ArrayToString($a_AArr,"",1))
EndFunc -
danke für die antwort ... leider funktionierte das script aus einigen gründen nicht...
ich habs so weit geändert, bis auf eine entscheidene kleinigkeit bei der ich nicht weiter komme.
und zwar encodiere ich KEINE text-dateien, sondern binärdateien.
das haut natürlich mit "StringFromASCIIArray" nicht hin .... ich weiss aber auch nicht wies gehen soll.
[autoit]Func _Encodefile($s_FileName)
[/autoit]
$s_FileName = FileOpen($s_FileName, 16)
$s_FileName = FileRead($s_FileName)
MsgBox(0,"1", $s_FileName)
Local $a_AArr = StringToASCIIArray($s_FileName)
_ArrayDisplay($a_AArr)
For $i = 0 To UBound($a_AArr) -1
$a_AArr[$i] = $a_Chiff[$a_AArr[$i]]
Next
_ArrayDisplay($a_AArr)
Return StringFromASCIIArray($a_AArr,"")
EndFunc -
also mir geht es gar nciht darum, dass ich etwas selber schützen möchte, sondern um eine bestehende chiffrierung von spieledateinen.... leider sind die dinger auch bis zu 500MB groß .... trotzdem würde ich es gerne hinbekommen .... leider weiss ich wirklich nicht wie ich das einigermaßen performant tun kann....
-
-
hi leute, ich brauch mal wieder guten rat ....
ich hab ein problem mit dem ver/entschlüsseln von dateien auf hex-basis.
und zwar habe ich eine tabelle für jedes der 256 hex-zeichen die ich durch ein anderes
hex-zeichen ersetzen muss... leider sind die dateinen verdammt groß und so wie ich das mache, gehts
schon mit kleineren dateinen sau-lahm ...Spoiler anzeigen
[autoit]
[/autoit]
;Verschlüsseln :
Func _Encodefile($string)
If $string = "" Then Return ""
Local $sfa
$len = StringLen($string)
$a = StringToASCIIArray($string)
for $c = 0 to $len -1
if hex($a[$c]) = 00 Then $a[$c] = 55
if hex($a[$c]) = 01 Then $a[$c] = 54
if hex($a[$c]) = 02 Then $a[$c] = 57
;...usw bis 255
Next
Return _ArrayToString($a)
EndFunc
;das ganze wollte ich auch wieder umgekehrt machen ....hier die tablelle...
evtl. checkt ihr ja den algo... ich leider nur im ansatz, deswegen mach ichs halt so.Spoiler anzeigen
Code
Alles anzeigen0: 01 54 1: 02 57 2: 03 56 3: 04 51 4: 05 50 5: 06 53 6: 07 52 7: 08 5D 8: 09 5C 9: 0A 5F 10: 0B 5E 11: 0C 59 12: 0D 58 13: 0E 5B 14: 0F 5A 15: 10 45 16: 11 44 17: 12 47 18: 13 46 19: 14 41 20: 15 40 21: 16 43 22: 17 42 23: 18 4D 24: 19 4C 25: 1A 4F 26: 1B 4E 27: 1C 49 28: 1D 48 29: 1E 4B 30: 1F 4A 31: 20 75 32: 21 74 33: 22 77 34: 23 76 35: 24 71 36: 25 70 37: 26 73 38: 27 72 39: 28 7D 40: 29 7C 41: 2A 7F 42: 2B 7E 43: 2C 79 44: 2D 78 45: 2E 7B 46: 2F 7A 47: 30 65 48: 31 64 49: 32 67 50: 33 66 51: 34 61 52: 35 60 53: 36 63 54: 37 62 55: 38 6D 56: 39 6C 57: 3A 6F 58: 3B 6E 59: 3C 69 60: 3D 68 61: 3E 6B 62: 3F 6A 63: 40 15 64: 41 14 65: 42 17 66: 43 16 67: 44 11 68: 45 10 69: 46 13 70: 47 12 71: 48 1D 72: 49 1C 73: 4A 1F 74: 4B 1E 75: 4C 19 76: 4D 18 77: 4E 1B 78: 4F 1A 79: 50 05 80: 51 04 81: 52 07 82: 53 06 83: 54 01 84: 55 00 85: 56 03 86: 57 02 87: 58 0D 88: 59 0C 89: 5A 0F 90: 5B 0E 91: 5C 09 92: 5D 08 93: 5E 0B 94: 5F 0A 95: 60 35 96: 61 34 97: 62 37 98: 63 36 99: 64 31 100: 65 30 101: 66 33 102: 67 32 103: 68 3D 104: 69 3C 105: 6A 3F 106: 6B 3E 107: 6C 39 108: 6D 38 109: 6E 3B 110: 6F 3A 111: 70 25 112: 71 24 113: 72 27 114: 73 26 115: 74 21 116: 75 20 117: 76 23 118: 77 22 119: 78 2D 120: 79 2C 121: 7A 2F 122: 7B 2E 123: 7C 29 124: 7D 28 125: 7E 2B 126: 7F 2A 127: 80 D5 128: 81 D4 129: 82 D7 130: 83 D6 131: 84 D1 132: 85 D0 133: 86 D3 134: 87 D2 135: 88 DD 136: 89 DC 137: 8A DF 138: 8B DE 139: 8C D9 140: 8D D8 141: 8E DB 142: 8F DA 143: 90 C5 144: 91 C4 145: 92 C7 146: 93 C6 147: 94 C1 148: 95 C0 149: 96 C3 150: 97 C2 151: 98 CD 152: 99 CC 153: 9A CF 154: 9B CE 155: 9C C9 156: 9D C8 157: 9E CB 158: 9F CA 159: A0 F5 160: A1 F4 161: A2 F7 162: A3 F6 163: A4 F1 164: A5 F0 165: A6 F3 166: A7 F2 167: A8 FD 168: A9 FC 169: AA FF 170: AB FE 171: AC F9 172: AD F8 173: AE FB 174: AF FA 175: B0 E5 176: B1 E4 177: B2 E7 178: B3 E6 179: B4 E1 180: B5 E0 181: B6 E3 182: B7 E2 183: B8 ED 184: B9 EC 185: BA EF 186: BB EE 187: BC E9 188: BD E8 189: BE EB 190: BF EA 191: C0 95 192: C1 94 193: C2 97 194: C3 96 195: C4 91 196: C5 90 197: C6 93 198: C7 92 199: C8 9D 200: C9 9C 201: CA 9F 202: CB 9E 203: CC 99 204: CD 98 205: CE 9B 206: CF 9A 207: D0 85 208: D1 84 209: D2 87 210: D3 86 211: D4 81 212: D5 80 213: D6 83 214: D7 82 215: D8 8D 216: D9 8C 217: DA 8F 218: DB 8E 219: DC 89 220: DD 88 221: DE 8B 222: DF 8A 223: E0 B5 224: E1 B4 225: E2 B7 226: E3 B6 227: E4 B1 228: E5 B0 229: E6 B3 230: E7 B2 231: E8 BD 232: E9 BC 233: EA BF 234: EB BE 235: EC B9 236: ED B8 237: EE BB 238: EF BA 239: F0 A5 240: F1 A4 241: F2 A7 242: F3 A6 243: F4 A1 244: F5 A0 245: F6 A3 246: F7 A2 247: F8 AD 248: F9 AC 249: FA AF 250: FB AE 251: FC A9 252: FD A8 253: FE AB 254: FF AA 255: 00 55
danke im voraus
-
danke dir .... sehr hilfreich!
-
ich würde mich über ein beispiel freuen, denn ich verstehe noch nicht so ganz wie man das anwendet....
wie liest du denn sachen direkt vom speicher ? - heisst es, dass du z.B. ein mp3 direkt von dort abspielst ??
wenn dem nicht so ist, und ich es doch vorher auf die festplatte auslagern muss um es dann mit den autoit-eigenen funktionen abspielen/verwenden zu können, dann erkläre mir bitte den unterschied/sinn zu fileinstall.
danke & lg
-
danke für die zahlreichen antworten und bemühungen
ich hab die erste lösung verwendet... auch wenn ich es erst gerne so gehabt hätte wie gefragt ...
es hat zumindest einfach und den zweck erfüllt.im moment arbeite ich gerade an einer übersetzung eines php-scriptes für gamestats... falls jemand diesbezüglich noch autoit-lösungen kennt...
-
ich habe ein string/pfad vergleichs problem.
wenn ich mir den pfad eines prozesses zurückgeben (funktion) lasse, erhalte ich z.B.
C:\Programme\Steam\steamapps\common\Call of Duty 4\
diesen string vergleiche ich mit dem hinterlegten regkeypfad, der aber wiederum so aussieht:
c:\program files\steam\SteamApps\common\call of duty 4\das programm ist also vorhanden bzw installiert, aber mein stringvergleich schlägt fehl, da
ich immer den link zum verzeichnis der "program files" bekomme... d.h.
je nach sprache kann das auch "programmi" / "programme" / "programma" oder wie auch immer sein.deswegen suche ich eine automatisierbare möglichkeit rauszubekommen wie bei unterschiedlichen
sprachen dieser link ins programm-verzeichnis heisst um in dann zu ersetzen und vergleichen zu können.ich hoffe, dass ich ihr versteht, was ich meine...
hat jemand eine idee wie ich das hin bekomme ?
EDIT: hier mal als script-beispiel-problem:
[autoit]
$path und $reg sind nicht beeinflussbar und hier nur beispielhaft vorgegeben!
[/autoit][autoit][/autoit][autoit]
$path = "C:\Programme\Steam\steamapps\common\Call of Duty 4\"
$reg = "c:\program files\steam\SteamApps\common\call of duty 4\"
if StringLower($path) = StringLower($reg) then msgbox(0, "ok", "das spiel ist installiert");lösungsansatz:
[/autoit]
if StringInStr($path, "Programme") then StringReplace($path, "Programme", "program files")
;nur das "Programme" hier immer mit dem verzeichnis-link der jeweiligen sprache ersetzt werden muss. -
super, danke ihr beiden ... damit komme ich auf jeden fall weiter
-
hallo meine guten
ich stehe mal wieder vor einem ungelöstem problem:
ich habe eine liste von all meinen netzwerkadaptern siehe bild:
http://puu.sh/78cDich bin mit meinem laptop ständig unterwegs und hänge mal am WLAN und mal
über kabel am internet... ich frage mich ob es eine möglichkeit gibt, automatisch
den netzwerkadapter herauszufinden, der gerade angeschlossen ist bzw über den
meine daten fließen.weiss jemand rat ?
-
1000 dank!!! du hast mich mal wieder gerettet ... und ich hatte schon einen horror mich durch dieses script schlagen zu müssen .... wusste nicht das netstat auch prozessbezogen arbeiten kann....
hast was gut bei mir !!
-
hab meinen fehler gefunden, da ich $rcon=1 als funktionsparameter übergeben habe, wurde daraus ein bool .... der hat dann in die falsche routine geführt
-
das php script hat ein freund mit dem ich im gespräch bin. er hat mir versichter, dass er mit dieser zeichenkette eine antwort per php auf dem server bekommt.
edit: hier ein auszug:
Code
Alles anzeigen$fp = fsockopen("udp://$server", $port, $errno, $errstr); stream_set_timeout($fp, 1, 0); stream_set_blocking($fp, true); // fwrite($fp, "\xFE\xFD\x09PiNG\xFF\xFF\xFF\x01"); echo "1: ". fread($fp, 4096); echo "\n"; //$string = chr($i)."\xfd\x09STATUS"; $string = chr($i); // $string = "\x57"; server fwrite($fp, $string); echo "i$i: [$string]". fread($fp, 4096); echo "\n";