Ohne Dein Script wird Dir sicher niemand weiterhelfen können. ![]()
Beiträge von Oscar
-
-
Dein Hintergrundbild überdeckt alle Control-Elemente. Du musst dieses disablen:
[autoit]GuiCtrlSetState(-1,$GUI_DISABLE)
[/autoit]
[autoit]
unter die Zeile 56.
Außerdem würde ich Dir raten für die Inidatei eine Variable anzulegen, statt jedes Mal (@ScriptDir & "\data\config.ini") zu schreiben.
Also:Global $sInifile = @ScriptDir & "\data\config.ini"
[/autoit]
[autoit]
und dann:$Version = IniRead($sInifile, "Program-Info", "Version", "default")
[/autoit]
das hat den Vorteil, dass Du bei einer späteren Änderung nur an einer Stelle die Änderung vornehmen musst. -
Oder man benutzt ExpandVarStrings:
[autoit]
[/autoit]
Opt('ExpandVarStrings', 1)
$vpnconnectusername = 'USERNAME'
$vpnconnectpassword = '123456'
ConsoleWrite('$vpnconnectusername$ $vpnconnectpassword$' & @CR)
Dann muss am Ende des Variablennamens aber noch ein Dollarzeichen stehen. -
Warum eigentlich eine Inidatei?
Es ist so viel einfacher ein Listview direkt in eine Textdatei zu schreiben bzw. daraus zu lesen.
Aber auch hier fehlt Dein Script. -
Du hast vergessen Dein Script zu posten...

-
Wenn hier als Beispiel ebay verwendet wird und daraufhin entsprechende Tips (Scripte) gepostet werden, dann ist genau dieser Anwendungsfall gegen die AGB von ebay und somit gegen unsere Forenregeln. Ganz egal, ob es dann nicht für die ebay-Seite benutzt wird. Es könnte benutzt werden und das reicht schon.
Ich stimme also hier mit Bugfix überein und ich hätte den Thread auch geschlossen. -
[verschoben nach Hilfe & Unterstützung]
-
alpines: Das stimmt schon, aber der Weg, den er eingeschlagen hat ist sowas von umständlich und fehleranfällig, dass man ihn schon auf bessere Wege hinweisen muss.

-
Hier mal eine alternative MAC-Abfrage:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <Array.au3>$aMAC = _GetMACAddress()
[/autoit] [autoit][/autoit] [autoit]
_ArrayDisplay($aMAC)Func _GetMACAddress()
[/autoit]
Local $sMAC = ''
Local Const $wbemFlagReturnImmediately = 0x10, $wbemFlagForwardOnly = 0x20
Local $objWMIService = ObjGet('winmgmts:\\localhost\')
Local $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionStatus=2', 'WQL', $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
If IsObj($colItems) Then
For $objItem In $colItems
$sMAC &= $objItem.MACAddress & @CR
Next
$sMAC = StringTrimRight($sMAC, 1)
Return SetError(0, 0, StringSplit($sMAC, @CR))
Else
Return SetError(1, 0, 0)
EndIf
EndFunc ;==>_GetMACAddress -
Wenn Du die Funktion "_FileCryptSave" zum speichern verwendest, dann liegt die Textdatei doch verschlüsselt vor.
Und mit "_FileCryptRead" lädst Du die Datei in Dein Script. Wenn Du das richtige (beim speichern benutzte) Passwort übergibst, dann erhälst Du die Datei als entschlüsselten String. Ist doch ganz simpel.
-
Eine einfache XOR-Verschlüsselung reicht in den meisten Fällen auch aus. Hier mal meine Variante mit Speicher- und Ladefunktion:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
$sText = FileRead(@ScriptDir & '\!cryptfile.txt') ; Beispieltext zum verschlüsseln$sPass = 'kEqW1bJkhpJ73x01k3039uN1jh7pzKpHMZsXeqp6bGWGLZWeuV2ZJh6883OJ3hI7' ; Passwort zum verschlüsseln
[/autoit] [autoit][/autoit] [autoit]
$sFilename = @ScriptDir & '\!cryptfile.cr' ; Pfad + Dateiname für die verschlüsselte Datei_FileCryptSave($sText, $sPass, $sFilename) ; Text verschlüsseln und abspeichern
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$sPass = 'abcdefgh' ; Passwort zum entschlüsseln (hier extra falsch eingegeben, um zu zeigen, dass dann der Text nicht richtig entschlüsselt wird)
[/autoit] [autoit][/autoit] [autoit]
$sFilename = @ScriptDir & '\!cryptfile.cr' ; Pfad + Dateiname für die zu entschlüsselnde DateiMsgBox(0, 'Falsches Passwort:', _FileCryptRead($sPass, $sFilename)) ; Datei laden, entschlüsseln und anzeigen
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$sPass = 'kEqW1bJkhpJ73x01k3039uN1jh7pzKpHMZsXeqp6bGWGLZWeuV2ZJh6883OJ3hI7' ; Passwort zum entschlüsseln (jetzt mit richtigem Passwort)
[/autoit] [autoit][/autoit] [autoit]
$sFilename = @ScriptDir & '\!cryptfile.cr' ; Pfad + Dateiname für die zu entschlüsselnde DateiMsgBox(0, 'Richtiges Passwort:', _FileCryptRead($sPass, $sFilename)) ; Datei laden, entschlüsseln und anzeigen
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _FileCryptSave($sText, $sPass, $sFile)
[/autoit] [autoit][/autoit] [autoit]
Local $hFile = FileOpen($sFile, 2 +
If $hFile = -1 Then Return SetError(1, 0, 0)
FileWrite($hFile, StringToBinary(_StringEncryptXOR($sText, $sPass)))
FileClose($hFile)
EndFunc ;==>_FileCryptSaveFunc _FileCryptRead($sPass, $sFile)
[/autoit] [autoit][/autoit] [autoit]
Local $hFile = FileOpen($sFile, 0), $sOut
If $hFile = -1 Then Return SetError(1, 0, 0)
$sOut = _StringEncryptXOR(FileRead($hFile), $sPass)
FileClose($hFile)
Return $sOut
EndFunc ;==>_FileCryptReadFunc _StringEncryptXOR($sText, $sPass)
[/autoit]
If $sPass = '' Or $sText = '' Then Return SetError(1, 0, 0)
Local $iTextChar, $iPos, $iPassChar, $iLen = StringLen($sPass)
For $i = 1 To StringLen($sText)
$iTextChar = Asc(StringMid($sText, $i, 1))
$iPos = Mod($i - 1, $iLen) + 1
$iPassChar = Asc(StringMid($sPass, $iPos, 1))
$sText = StringReplace($sText, $i, Chr(BitXOR($iTextChar, $iPassChar)), 1)
Next
Return $sText
EndFunc ;==>_StringEncryptXOR -
-
Hmm...bei mir wird das aber korrekt dargestellt:
Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. Woran soll denn das sonst liegen?

-
Das ist bei mir (Win7, 64 Bit / AutoIt 3.3.8.1) nicht so. Welche AutoIt-Version und Windowsversion benutzt Du?
-
Wieso? Das wird doch bei den meisten Kalendern so dargestellt, dass das dann die 1. Woche des Folgejahres ist.
-
Hier mal ein einfaches Kalenderprogramm:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <ComboConstants.au3>
#include <Date.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>Global $sMonthNames = 'Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember'
[/autoit] [autoit][/autoit] [autoit]
Global $aMonthNames = StringSplit($sMonthNames, '|')
Global $aWeekDays = StringSplit('Mo,Di,Mi,Do,Fr,Sa,So', ',')
Global $aIDDays[42]
Global $aIDWeekNr[6]
$hGui = GUICreate('Kalender', 640, 300)
$idMonth = GUICtrlCreateCombo('', 10, 28, 150, 32, $CBS_DROPDOWNLIST)
GUICtrlSetData(-1, $sMonthNames, $aMonthNames[@MON])
GUICtrlSetFont(-1, 12, 600, 0, 'Tahoma', 4)
For $i = 1 To 7
GUICtrlCreateLabel($aWeekDays[$i], 174 + $i * 40, 28, 32, 22, $SS_CENTER)
GUICtrlSetFont(-1, 14, 400, 0, 'Arial', 4)
GUICtrlSetBkColor(-1, 0x4444AA)
GUICtrlSetColor(-1, 0xFFFFFF)
Next
For $i = 0 To 5
$aIDWeekNr[$i] = GUICtrlCreateLabel('', 160, 68 + $i * 40, 32, 22, $SS_CENTER)
GUICtrlSetFont(-1, 14, 400, 0, 'Arial', 4)
GUICtrlSetBkColor(-1, 0x4444AA)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetState(-1, $GUI_HIDE)
For $j = 0 To 6
$aIDDays[$i * 7 + $j] = GUICtrlCreateLabel('', 214 + $j * 40, 68 + $i * 40, 32, 22, $SS_CENTER)
GUICtrlSetFont(-1, 14, 400, 0, 'Arial', 4)
Next
Next
GUISetState()
_SetCalendar(@YEAR, @MON)While True
[/autoit] [autoit][/autoit] [autoit]
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $idMonth
$sMonth = GUICtrlRead($idMonth)
For $i = 1 To $aMonthNames[0]
If $sMonth = $aMonthNames[$i] Then _SetCalendar(@YEAR, $i)
Next
EndSwitch
WEndFunc _SetCalendar($iYear, $iMon)
[/autoit]
Local $iDaysInMonth = _DateDaysInMonth($iYear, $iMon), $iDayInMonth = 0
Local $iDayOfWeek = _DateToDayOfWeekISO($iYear, $iMon, 1)
For $i = 0 To 5
GUICtrlSetState($aIDWeekNr[$i], $GUI_HIDE)
GUICtrlSetData($aIDWeekNr[$i], '')
Next
For $i = 0 To 41
GUICtrlSetData($aIDDays[$i], '')
Next
For $i = 0 To 5
For $j = 0 To 6
If $iDayOfWeek - 1 <= $i * 7 + $j Then
$iDayInMonth += 1
GUICtrlSetState($aIDWeekNr[$i], $GUI_SHOW)
GUICtrlSetData($aIDWeekNr[$i], _WeekNumberISO($iYear, $iMon, $iDayInMonth))
GUICtrlSetData($aIDDays[$i * 7 + $j], $iDayInMonth)
GUICtrlSetColor($aIDDays[$i * 7 + $j], 0x000000)
EndIf
If _DateToDayOfWeekISO($iYear, $iMon, $iDayInMonth) = 7 Then
GUICtrlSetFont($aIDDays[$i * 7 + $j], 14, 800, 0, 'Arial', 4)
GUICtrlSetColor($aIDDays[$i * 7 + $j], 0xFF2222)
EndIf
If $iDayInMonth >= $iDaysInMonth Then ExitLoop 2
Next
Next
EndFunc -
Und falls Du dann noch Hilfe brauchst, dann bitte mit einem Beispiel (wie sieht das Array vorher aus, wie soll es als Ergebnis aussehen).
-
Ich habe auch mal ein Logo erstellt:
Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. vor dem Header-Hintergrund sieht es dann so aus:
Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. -
@YaeroxXO: Wenn schon zu Fuß, dann doch nicht so umständlich.
[autoit]
[/autoit]
Global $aMonthDay[13] = [12, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
ConsoleWrite('Aktueller Monat: ' & $aMonthDay[@MON] & @CR) -
Vielleicht so:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GuiButton.au3>
#include <EditConstants.au3>
#include <GUIConstants.au3>
#include <File.au3>Global $Form1 = GUICreate('Test', 440, 220, -1, -1)
[/autoit] [autoit][/autoit] [autoit]Global $button = GUICtrlCreateButton('', 400, 0, 40, 40, $BS_ICON)
[/autoit] [autoit][/autoit] [autoit]
_GUICtrlButton_SetImage(-1, "shell32.dll", 135, True)Global $edit[7]
[/autoit] [autoit][/autoit] [autoit]
$edit[0] = GUICtrlCreateInput('', 115, 20, 60, 18, $ES_CENTER)
$edit[1] = GUICtrlCreateInput('', 175, 20, 60, 18, $ES_CENTER)
$edit[2] = GUICtrlCreateInput('', 115, 40, 60, 18, $ES_CENTER)
$edit[3] = GUICtrlCreateInput('', 175, 40, 60, 18, $ES_CENTER)
$edit[4] = GUICtrlCreateInput('', 115, 60, 60, 18, $ES_CENTER)
$edit[5] = GUICtrlCreateInput('', 175, 60, 60, 18, $ES_CENTER)
$edit[6] = GUICtrlCreateInput('', 115, 80, 60, 18, $ES_CENTER)GUICtrlCreateLabel('Tisch 1:', 15, 22)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateLabel('Tisch 2:', 15, 42)
GUICtrlCreateLabel('Tisch 3:', 15, 62)
GUICtrlCreateLabel('Tisch 4:', 15, 82)GUISetState()
[/autoit] [autoit][/autoit] [autoit]
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
_END()
Case $button
_read()
EndSwitch
WEndFunc _read()
[/autoit] [autoit][/autoit] [autoit]
Local $sFilename = @ScriptDir & '\new.txt', $iRandom, $aTable[UBound($edit)]
For $i = 0 To UBound($aTable) - 1
GUICtrlSetData($edit[$i], '')
$aTable[$i] = $i
Next
If FileExists($sFilename) Then
$aGuest = StringSplit(FileRead($sFilename), @CRLF, 3)
For $i = 0 To UBound($aGuest) - 1
$iRandom = Random(0, UBound($aTable) - 1 - $i, 1)
GUICtrlSetData($edit[$aTable[$iRandom]], $aGuest[$i])
$aTable[$iRandom] = $aTable[UBound($aTable) - 1 - $i]
Next
EndIf
EndFunc ;==>_readFunc _END()
[/autoit]
Exit
EndFunc ;==>_END