Stefan
Yes Yes
Danke Vielmals !!!
Stefan
Yes Yes
Danke Vielmals !!!
Es erscheint schon ein MsgBox aber inhaltlos.... Jetz sieht doch das so gut aus aber es will einfach nicht klappen.
Für weitere gute ratschläge bin ich natürlich sehr dankbar.
Danke
MC
Hallo Zusammen
Währe wirklich angewiesen für eine kurz Hilfe, weshalb wird mir hier kein output.txt ertstellt.
RunWait('dsget.exe user "CN=Muster Hans,OU=Users,OU=123,DC=Company,DC=ord -memberof">output.txt')
Runwait(@comspec & ' /c ' & 'c:\windows\system32\dsget.exe user "CN=Muster Hans,OU=Users,OU=123,DC=Company,DC=ord" -memberof>output.txt'), @SW_MAXIMIZE)
und hier klappts auch nicht.
[autoit]
ShellExecuteWait('c:\windows\system32\dsget.exe', 'user "CN=Muster Hans,OU=Users,OU=123,DC=Company,DC=ord -memberof">output.txt')
Wenn ich die "CMD" zeile im DOS fenster ausführe so funktioniert es !
Danke
MC
Danke euch vielmals !,
habe gesehen wo mein Fehler war, wollte dennoch Xenos Version in mein bestehendes Script implemetieren aber bekomme immer den Fehler "Func - EndFunc" eigentlich Schad. mhm
Hallo zusammen,
Möchte die Ausgabe einer Dos Anwendung abfangen, habe hier ein Skript das schon in die richtige richtung rennt dennoch
ist mir nicht klar weshalb es davor ein leeres Fenster ausgibt und erst im nachhinein den gewünschten wert meldet.
Die Anwendung "Date.exe" habe ich nur benützt weil er auf jedem M$ auffindbar ist.
#include<Constants.au3>
$foo=Run(@ComSpec & " /c " & 'date /t', "", @SW_HIDE,$STDOUT_CHILD)
While 1
$line=StdoutRead($foo)
If @error Then ExitLoop
MsgBox(0,"date:",$line)
Wend
Besten dank Oscar !
Würde dies noch gerne verstehen, werde nochmals nachschauen "StringRegExpReplace"
MC
Hallo Zusammen
Möchte die IP Adresse vergleichen, Wenn diese der erwartung entspricht gehts weiter
im Text sonst exit, habe ein kleines Muster hingebracht, dies lauft aber nur wenn ich
die komplette "IP" angebe, Da ich in einem DHCP Netzwerk bin müsste es doch möglich
sein nur mit den ersten drei "digits" zu vergleichen.
Danke für die Hilfe
MC
$ip = StringSplit(@ipaddress1, ",")
[/autoit] [autoit][/autoit] [autoit]MsgBox(0, "" ,"" & $ip)
[/autoit] [autoit][/autoit] [autoit]If $ip[1] = "10.1.0.," Then
MsgBox(1, "", "Correct")
Else
MsgBox(1, "", "Incorrect")
exit
Endif
Thanks ... Thanks !!! Jupiii.
![]()
AutoBert Danke dir vielmals ![]()
Warum muss ich 2 -3 mal die Buttons meiner Anwendung betätigen damit diese reagieren
habe ich noch weitere fehler in meinem Script ?.
Besten und vielendank !
Hallo Zusammen
Habe in der Zwischenzeit einiges im AutoIT dazu gelernt. Wie Z.b. auch ein Array in der
benutzerdefinierten [Sektion] ich auslesen kann, dennoch besteht der Fehler im Code das die
„MAC Adresse“ der gewählten [Sektion] nicht vergleicht und nicht gefunden wird.
Dass Ziel währe:
- Benutzer wählt sein Laptop Modell Z.b.“Z60M„, OK
- Dies wird überprüft mit der dazugehörenden MAC Adresse in der Sektion [Z60M], TEILS
- Der Code fährt dann weiter wenn Sektion [Z60M] eine Übereinstimmung gefunden wurde., STOP
- Wenn dies nicht der fall ist bricht Programm ab und beendet sich. OK
Was momentan nicht korrekt abläuft ist die Überprüfung der MAC Adresse in der [Sektion]
dennoch sehe ich das meine abfrage der Sektion sich in der korrekten spalte bewegt.
Denn vergleich ist mir aber noch nicht ganz klar und währe deshalb um Rat und Hilfe
wirklich sehr dankbar und angewiesen.
Bin überzogen das sich mein Fehler in der Region [66-107] befindet.
Danke für eure Hilfe
MC
CODE:
#Include <array.au3>
#include <file.au3>
#include <GUIConstantsEx.au3>
Opt('MustDeclareVars', 1)
Example()
Func Example()
Local $aboutitem, $helpmenu, $n1, $n2, $msg, $font, $var, $cfgfile, $ip, $s
Local $file, $cfgfile, $filelist, $exititem, $section, $msgbox, $restore
;/ MAC TEIL
Local $filename, $source_filename, $found, $array, $text, $macs, $filearray, $y, $j, $section1
GUICreate("Info Fenster - Restore now", 300, 300) ; Fenster Balken
[/autoit] [autoit][/autoit] [autoit]$filelist = GUICtrlCreateMenu("&File")
$exititem = GUICtrlCreateMenuItem("Exit", $filelist)
$helpmenu = GUICtrlCreateMenu("&?")
$aboutitem = GUICtrlCreateMenuItem("&About", $helpmenu)
$font = "Arial"
GUISetFont(11, 400, 3, $font) ; Font
GUICtrlCreateLabel("Wählen Sie das passende Image", 11, 30)
$n1=GUICtrlCreateCombo("", 10, 50)
[/autoit] [autoit][/autoit] [autoit]$section=IniReadSection("laptop.ini", "section")
For $i=1 To UBound($section)-1
GuiCtrlSetData($n1, IniRead("laptop.ini", "section", $i, ""))
Next
$n2 = GUICtrlCreateButton("Wiederherstellen", 10, 110, 120)
[/autoit] [autoit][/autoit] [autoit]DriveMapAdd("r:", "\\xyz\e$\xyz\Data\images\PC_laptops\laptop vat", 0, "login", "")
[/autoit] [autoit][/autoit] [autoit]GUICtrlSetState(-1, $GUI_FOCUS) ; the focus is on this button
GUISetState()
Do
$msg = GUIGetMsg()
Switch $msg
;Case $exititem
Case $aboutitem
GUISetFont(14, 400, 1, $font)
GUICtrlCreateLabel(""&Chr(10)&Chr(10)&""&Chr(10)&"Version 0.5", 10, 180, 320)
Case $exititem
;Case $exititem, $GUI_EVENT_CLOSE
Exit
EndSwitch
;ExitLoop
$ip=StringInStr(@IPAddress1,"192.168")
$msg = GUIGetMsg()
If $msg = $n2 Then
$msgbox=MsgBox(1, "Achtung !","Das Laptop model lautet: "&GuiCtrlRead($n1)&Chr(10)&"Die zugewiesene IP-Adresse lautet: "&@IPAddress1&Chr(10)&Chr(10)&"Klicken Sie < OK > zum Starten der Wiederherstellung "&Chr(10)&"Klicken Sie < Abbrechen > zum Abbrechen der Auswahl") ; anzeige gewähltes Image
; START MAC
$filename = "ipconfig.txt"
; mit ipconfig Mac auslesen
[/autoit] [autoit][/autoit] [autoit]RunWait(@ComSpec & " /c ipconfig /all > " & $filename, "", @SW_HIDE)
Dim $array
_FileReadToArray($filename, $array)
$text = _ArrayToString($array, ";")
msgbox(1, "", GuiCtrlRead($n1)) ; uberprüfung des gewählten laptop
[/autoit] [autoit][/autoit] [autoit]$section1 = IniReadSection("laptop.ini", ""&GuiCtrlRead($n1)&"" )
For $z=1 To UBound($section1)-1
msgbox(1, "", $z) ; Only for TEST
Next
$macs = StringRegExp($text, "(..-..-..-..-..-..)", 3)
msgbox(1, "", $text)
Dim $filearray
[/autoit] [autoit][/autoit] [autoit]For $y=0 To UBound($filearray)-1
For $j=0 to ubound($macs)-1
if stringinstr($filearray[$y],$macs[$j]) Then
$found = $macs[$j]
ExitLoop
EndIf
Next
Next
; Ausgabe
If $found <> "" Then
MsgBox(0, "MAC-Adresse gefunden", "Ihre MAC-Adresse wurde gefunden ("&$found&")")
Else
MsgBox(0, "MAC-Adresse nicht gefunden", "Ihre MAC-Adresse wurde nicht gefunden.")
FileDelete($filename)
Exit
EndIf
; temporäre Datei löschen
FileDelete($filename)
; STOP MAC
if $msgbox = 2 Then Exit
[/autoit] [autoit][/autoit] [autoit]DriveMapAdd("r:", "\\xyz\e$\xyz\Data\images\PC_laptops\laptop vat", 0, "login", "")
Sleep(Random(1000, 3000))
$cfgfile = FileOpen("b:\"&GUICtrlRead($n1)&".cfg", 1)
FileWriteLine($cfgfile,"; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *")
FileWriteLine($cfgfile,"; * -- Restore Script for Laptop.ini | Time "&@HOUR&":"&@MIN&":"&@SEC&" ---> Datum "&@MDAY&"."&@MON&"."&@YEAR&" -- *")
FileWriteLine($cfgfile,"; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *")
FileWriteLine($cfgfile, "mouse=no")
FileWriteLine($cfgfile, "filesystem=ntfs")
FileWriteLine($cfgfile, "disk=0")
FileWriteLine($cfgfile, "main_part=1")
FileWriteLine($cfgfile, "def_level=6")
FileWriteLine($cfgfile, "quit=nobadsector")
FileWriteLine($cfgfile, "automatic_naming=yes")
FileWriteLine($cfgfile, "file=r:\"&GUICtrlRead($n1))
FileClose($cfgfile)
Sleep(Random(1000, 2000))
$file = FileOpen("b:\Restoremenow.cmd", 1)
FileWriteLine($file, "REM * * * * * * * * * * * * * * * * * * * * * * *")
FileWriteLine($file, "REM * --- Zeit " & @HOUR & ":" &@MIN & ":" &@SEC &" -> Datum "& @MDAY & "." & @MON & "." & @YEAR & " --- *")
FileWriteLine($file, "REM * * * * * * * * * * * * * * * * * * * * * * *")
FileWriteLine($file, "x:\programs\imager\spartwin.ex_e -r -f b:\"& GUICtrlRead($n1) &".cfg")
FileClose($file)
[/autoit] [autoit][/autoit] [autoit]Sleep(Random(1000, 2000))
[/autoit] [autoit][/autoit] [autoit]RunWait("b:\Restoremenow.cmd", "", @SW_MAXIMIZE)
[/autoit] [autoit][/autoit] [autoit];Run("b:\Restoremenow.cmd", "", @SW_MAXIMIZE)
FileMove("b:\"&GUICtrlRead($n1)&".cfg", "b:\"&GUICtrlRead($n1)&".txt")
FileMove("b:\Restoremenow.cmd", "b:\Restoremenow.txt")
MsgBox(0, "Finish Restore", "Restore konnte erfolgreich zurück gesichert werden.")
Exit
;FileDelete("b:\Restoremenow.cmd")
;DriveMapDel("r:")
EndIf
Until $msg = $GUI_EVENT_CLOSE
EndFunc ;==>End Example
hier mein Laptop.ini
[section]
1=IBM_Muster
2=IBM_Z60M
3=IBM_X200
4=IBM_X40
5=IBM_X41
[IBM_Muster]
1=00-0C-29-3B-99-E9
2=00-0C-29-C2-1E-3F
3=00-00-00-C0-00-00
[IBM_Z60M]
1=00-16-36-0B-63-9A
2=00-00-00-C0-00-00
[IBM_X200]
1=00-00-00-00-00-00
2=00-00-00-00-00-00
[IBM_X40]
1=00-0A-E4-3E-30-13
2=00-00-00-00-00-00
[IBM_X41]
1=00-16-D3-33-C3-47
2=00-00-00-00-00-00
3=00-00-00-00-00-00
4=00-00-00-00-00-00
5=00-00-00-00-00-00
6=00-00-00-00-00-00
7=00-00-00-00-00-00
8=00-00-00-00-00-00
Alles anzeigen
Danke Danke euch vielmals ....
![]()
Hallo Zusammen
Bin auf der suche nach einer Anwendung die nach den definierten MAC-Adressen in
einem ini file ausschau halten würde (min. 20 Mac Adressen). Wenn diese eine
Adresse mit dem im ini file übereinstimmen würde so fährt die Anwenung weiter,
ansonst würde sich diese Anwednug schliessen. Zur Information das INI file wird
im vorhinein schon mal benützt von einer anderen Array Abfrage es sollte somit
so bestehen bleiben.
Habe hier auf AutoIt einen Code gefunden der meiner Idee sehr nahe kommt dennoch
aber bei mir nicht funktioniert, es erscheint immer die Meldung
"Ihre MAc Adresse wurde nicht gefunden".
Ich währe wirklich froh um hilfe, und möchte mich schon im vorhinein bedanken.
MC
#include <array.au3>
#include <file.au3>
$filename = "C:\ipconfig.txt"
$source_filename = "C:\laptop.ini"
Global $found = ""
; Macs auslesen
RunWait(@ComSpec & " /c ipconfig /all > " & $filename, "", @SW_HIDE)
Dim $array
_FileReadToArray($filename, $array)
$text = _ArrayToString($array, ";")
$macs = StringRegExp($text, ":\s((?:\A\A-){5}\A\A);", 3)
_ArrayDisplay($macs, "Macs")
; Macs vergleichen
Dim $filearray
_FileReadToArray($source_filename, $filearray)
;~ _ArrayDisplay($filearray, "filearray")
For $i = 1 To UBound($filearray)-1
$filearray_splitted = StringSplit($filearray[$i], ":")
For $j = 0 To UBound($macs)-1
If $filearray_splitted[3] = $macs[$j] Then
$found = $macs[$j]
ExitLoop
EndIf
Next
Next
; Ausgabe
If $found <> "" Then
MsgBox(0, "MAC-Adresse gefunden", "Ihre MAC-Adresse wurde gefunden ("&$found&")")
Else
MsgBox(0, "MAC-Adresse nicht gefunden", "Ihre MAC-Adresse wurde nicht gefunden.")
EndIf
; temporäre Datei löschen
FileDelete($filename)
und mein Laptop.ini sieht so aus
[section]
1=IBM_Z60
1=IBM_Z70
2=IBM_Z80
usw
[mac]
1=00-13-E8-ED-66-AD
2=00-1E-37-16-DD-49
3=00-1C-26-D5-D0-3C
usw
Exgüsi, Sorry, Wie muss ich den Code nun richtig hinstellen ?.
momentan habe ich dies so gemacht und diese mit $section und Ubound währe sicher noch die bessere lösung.
Thanks
[autoit]
$n1 = GUICtrlCreateCombo("", 11, 30)
;For $i=1 To IniRead("laptops.ini","global", "anzahl",1)
$sections=IniReadSection("laptop.ini", "section")
$anzahl=UBound($sections), GUICtrlRead($anzahl) & IniRead("laptop.ini","section",$anzahl, ""))
;GUICtrlSetData($n1, IniRead("laptops.ini","laptops", $i, ""))
Next
[section]
1=ibm_z70m
2=ibm_z71m
3=ibm_z72m
4=ibm_z73m
5=ibm_z74m
6=ibm_z75m
Hallo und Danke für deine schnelle Antwort L3viathan2142 !
Habe diese beiden strings dem Code hinzugefügt zuerst mal einzeln, 1) u 2) und nun beide zusammen, leider geht die auswahlfunktion
nicht und der zweite teil will auch nicht ganz hinhauen, wollte dich anfragen wie dies aus deiner seite aussieht ?.
Danke für deine Unterstützung.
MC
[autoit]#include <GUIConstantsEx.au3>
Opt('MustDeclareVars', 1)
Example()
Func Example()
Local $menu1, $n1, $n2, $msg, $font, $var, $i
GUICreate("Info Fenster") ; Fenster Balken
[/autoit][autoit][/autoit][autoit]$font = "Arial"
GUISetFont(10, 400, 1, $font) ; will display underlined characters
GUICtrlCreateLabel("Wählen Sie das passende Image", 11, 10)
$menu1 = GUICtrlCreateMenu("About")
$n1 = GUICtrlCreateCombo("", 11, 30)
For $i=1 To IniRead("C:\temp\laptops.ini", "global", "anzahl", 1)
[/autoit][autoit][/autoit][autoit]GUICtrlSetData($n1, IniRead("C:\temp\laptops.ini","", $i, "")
[/autoit][autoit][/autoit][autoit]Next
[/autoit][autoit][/autoit][autoit];$var = IniRead("C:\Temp\myfile.ini", "section2", "key", "NotFound")
;MsgBox(4096, "Result", $var)
;GUICtrlSetData(-1, "Laptop Z60m|Laptop Z61m|Laptop Z62m|Laptop Z63m", "leer")
$n2 = GUICtrlCreateButton("Wiederherstellen", 10, 110, 120)
GUICtrlSetState(-1, $GUI_FOCUS) ; the focus is on this button
GUISetState()
Do
;$msg = GUIGetMsg()
; If $msg = $n2 Then
; MsgBox(0, "Ausgewähltes Image .. ", GUICtrlRead($n1)) ; anzeige gewähltes Image
; MsgBox(0, "blabla", & $n1 &)
; run("c:\temp\ti_cons.exe", (& $n1 &) , @SW_MAXIMIZE)
; Switch GUIGetMsg()
Case $n2
MsgBox(0, "Ausgewähltes Image .. ", GUICtrlRead($n1)) ; anzeige gewähltes Image
; If GUICtrlRead($n1) <> "" Then Run("C:\Temp\ti_cons.exe " & GUICtrlRead($n1));ausführen
IniWrite("c:\temp\laptops.ini","global","aktuell",GUICtrlRead($n1));oder in die Ini-Datei schreiben
Case $GUI_EVENT_CLOSE
;Exit
;EndSwitch
EndIf
Until $msg = $GUI_EVENT_CLOSE
EndFunc ;==>End Example
Laptops.ini
[autoit]
[global]
anzahl=ibm_z70m
anzahl=ibm_z71m
anzahl=ibm_z72m
Hallo zusammen
Bin blutiger anfänger der Skriptsprache AutoIT dennoch gefällt mir dieses skripting immer mehr.
Hätte hier zwei anliegen dich ich anders gelöst hätte aber mein momentanes skripting
know-how lässt zu wünschen übrig. Deshalb bin ich auf eure ratschläge und hilfe wirklich
angewiesen, und somit widme mich mal diesem Forum. Für hilfe stellungen möchte ich mich
schon jetzt bedanken, denn auch ich kann hier noch hilfe gebauchen.
Danke
MC
1 ) Hier habe ich ein auswahlmenü erstellt
GUICtrlSetData(-1, "Laptop Z60m|Laptop Z61m|Laptop Z62m|Laptop Z63m", "leer")
möchte aber erreichen das die erwähnten Laptops aus einem "Laptopconfig.ini" file kommen würden,
somit könnte mein geräte zuwachs erweitert werden ohne das ich mein script neu kompilieren müsste.
2 ) Ich möchte erreichen das wenn zb. "Laptop Z60m" ausgewählt würde dies in eine variable
geschrieben würde "($n1)" und in ein existierendes externes files geschrieben würde.
oder wenn möglich wie in meinem demo bespiel das aber nicht korrekt lauft
run("c:\temp\ti_cons.exe", (& $n1 &) , @SW_MAXIMIZE)
gerne lege ich hier noch mein bios jetzt erstelltes Skript bei und freue mich auf eure antworten
#include <GUIConstantsEx.au3>
Opt('MustDeclareVars', 1)
Example()
Func Example()
Local $menu1, $n1, $n2, $msg, $font, $var
GUICreate("Info Fenster") ; Fenster Balken
$font = "Arial"
GUISetFont(10, 400, 1, $font)
GUICtrlCreateLabel("wählen Sie das passende Image", 11, 10)
$menu1 = GUICtrlCreateMenu("About")
$n1 = GUICtrlCreateCombo("", 11, 30)
;$var = IniRead("C:\Temp\myfile.ini", "section2", "key", "NotFound")
; MsgBox(4096, "Result", $var)
GUICtrlSetData(-1, "Laptop Z60m|Laptop Z61m|Laptop Z62m|Laptop Z63m", "leer")
$n2 = GUICtrlCreateButton("Wiederherstellen", 10, 110, 120)
GUICtrlSetState(-1, $GUI_FOCUS) ; the focus is on this button
GUISetState()
Do
$msg = GUIGetMsg()
If $msg = $n2 Then
MsgBox(0, "Ausgewähltes Image .. ", GUICtrlRead($n1)) ; anzeige gewähltes Image
;MsgBox(0, "blabla", & $n1 &)
run("c:\temp\ti_cons.exe", (& $n1 &) , @SW_MAXIMIZE)
EndIf
Until $msg = $GUI_EVENT_CLOSE
EndFunc ;==>End Example