Und ProblemUser schrieb folgendes und wiess innerhalb des Threads auch nochmals darauf hin.
(Ja, ich habe nicht auf Sicherheit geachtet, im richtigen Code ist es jedoch erledigt)
Und ProblemUser schrieb folgendes und wiess innerhalb des Threads auch nochmals darauf hin.
(Ja, ich habe nicht auf Sicherheit geachtet, im richtigen Code ist es jedoch erledigt)
[Blockierte Grafik: http://www.abload.de/img/oi6n8tooqa0n.gif]
[Blockierte Grafik: http://www.abload.de/img/lachender-birthday-smif92j.gif] Happy Birthday Doc!
Was soll ich tun?
Carbon spielen ^^.
Nein ernsthaft, um welche dll geht's denn da? Hast du shellexecute mal ein workingdir mitgegeben?
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$gui = GUICreate(200, 200)
$START = GUICtrlCreateButton("S T A R T", 8, 80, 129, 41, 0)
GUICtrlSetState(-1, $GUI_DISABLE)
$Checkbox1 = GUICtrlCreateCheckbox("checkbox", 8, ![]()
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Checkbox1
If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = $GUI_CHECKED Then
GUICtrlSetState($START, $GUI_ENABLE)
ElseIf BitAND(GUICtrlRead($Checkbox1), $GUI_UNCHECKED) = $GUI_UNCHECKED Then
GUICtrlSetState($START, $GUI_DISABLE)
EndIf
EndSwitch
WEnd
Nächstes mal bitte mit vollständiger GUI posten.
Zeile 9 und 13: $START = GUICtrlCreateButton("S T A R T", 88, 224, 129, 41, 0) Du erstellst drt den Button neu.
#include <File.au3>
$password = InputBox("", "")
$file = @ScriptDir & "\test.txt"
For $i = 1 To _FileCountLines($file)
If $password = FileReadLine($file, $i) Then
MsgBox(0, 0, "Passwort existiert bereits")
Exit
EndIf
Next
MsgBox(0, 0, "Passwort wird in Datei geschrieben")
$hFile = FileOpen($file, 1)
FileWriteLine($hFile, $password)
FileClose($hFile)
z.B. in einer FOR-Schleife bis _FileCOuntLines() oder einfach _FileReadToArray(). (Ich glaube, das bereits erwähnt zu haben)
Schaust du auch ab und zu mal in die Hilfe? Du verwendest immer wieder Parameter, die es garnicht gibt.
[autoit]FileRead ( "filehandle/filename" [, count] )
[/autoit]
Schau dir StringInStr() oder _FileReadToArray() an. Oder vergleich die Zeilen in einer FOR-Schleife mit FileReadLine().
Wenn du sehen willst, ob das Passwort bereits verwendet wird dannn könntest du das mit _ArraySearch() herrausfinden.
[autoit]$aSection = IniReadSection($File, "Passwort")
[/autoit][autoit][/autoit][autoit]If $PASSWORD == "Aa" And _ArraySearch($aSection, $PASSWORD, 0,0,1,0,1,1) = -1 Then
[/autoit]
Wobei ich den Sinn dahinter nicht verstehe. Warum sollten für verschieden Benutzer nicht identische Passwörter möglich sein? Ein Authentifizizierung findet ja normalerweise in Verbindung mit einem Benutzernamen statt. Und dieser Hinweis "Dieses Passwort ist bereits vorhanden" ... also ich weiss nicht. Da muss ich dann ja nurnoch den passenden Benutzer dazu finden.
Das geht nicht. Jeder Key innerhalb einer Sektion ist einzigartig.
Kannst du mal beschreiben, was du überhaupt tun willst. Ich werd daraus nicht schlau. Was möchtest du wo "addieren"?
If $pw == "XxXx" Then
[/autoit]Ist im übrigen falsch, wenn man mal in die ini Datei schaut die er gepostet hat. Die "\" sind bereits in der ini enthalten.
Jop, stimmt. Wenn man die Augen auf macht, sieht man es :).
Run(@ComSpec & ' /c ' & 'start AcroRd32.exe /N /T "' & $ordner & $unterordner & $FileList[1] & '" "' & $drucker & '"')
[/autoit]Die _StrinBetween() in der For-Schleife sind überflüssig. Regexp gibt dir doch bereits die benötigten Informationen.
Ändere den Pattern mal um:
'<Network\sName="(.+?)"\sID="(.+?)"\sStatus="(.+?)"\s\/>'
[/autoit]
Damit findet er dann auch mehrere Netzwerke in einer Datei. Und dann schau dir das mal an:
#include <array.au3>
$sString = '<Network Name="Name" ID="XYZ" Status="status" /><Network Name="Name2" ID="xyz" Status="status2" />'
$array = StringRegExp($sString, '<Network\sName="(.+?)"\sID="(.+?)"\sStatus="(.+?)"\s\/>', 3)
_ArrayDisplay($array)
For $i = 0 To UBound($array) - 1 Step 3
$networkName = $array[$i]
$status = $array[$i + 2]
ConsoleWrite("Netzwerk: " & $networkName & @CRLF)
ConsoleWrite("Status: " & $status & @CRLF)
Next
Die Zeile ist eine 1 zu 1 Umsetzung deines CMD Befehls. Ich geh mal davon aus, das die so stimmt.
Lass dir vor dem Run() mal $ordner & '\' & $unterordner & '\' & $FileList[1] in einer MsgBox() ausgeben. Halt die Box geöffnet und schau nach, b die Date zu diesem Zeitpunkt tatsächlich am angegebenen Ort liegt.
Und poste nochmal dein aktuelles Skript.
Run(@ComSpec & ' /c ' & 'start AcroRd32.exe /N /T "' & $ordner & '\' & $unterordner & '\' & $FileList[1] & '" "' & $drucker & '"')
[/autoit]Immernoch keine Leerstellezwischen Dateipfad und Drucker.