Hallo liebe AutoITer,
ich habe folgendes Problem:
Innerhalb eines GUI verwende ich eine InputBox. In diese kann/soll der Anwender einen bestimmten Wert eingeben der dann an weitere Funktionen übergeben werden und dann damit weiter gearbeitet werden soll.
Natürlich soll der Anwender ohne die Anwendung zu schließen und wieder zu öffnen, den Wert verändern können und mehrere Abfragen nacheinander durchführen können.
Aktuell klappt das ganze leider nur einmal.
Ändere ich den Wert in der Inputbox und führe die Abfrage erneut aus, wird die Variable nicht verändert weitergegeben.
Wie gehe ich das am Besten an?
Hier mal der derzeitige Code:
Code
#include <GUIConstants.au3>
#NoTrayIcon
Opt("GUIOnEventMode", 1)
; GUI
$mainwindow = GUICreate("ServiceInfo", 550, 400)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
GUISetFont (9)
$tab3=GUICtrlCreateTab (-1, -1, 533, 350)
$tab3a=GUICtrlCreateTabitem ("Drucker")
local $sComputer
Global $computer = "WDEST"
$sComputer = GUICtrlCreateInput($computer, 20, 25, 200, 30)
$tabAbfragen=GUICtrlCreateButton ("Abfragen", 220, 25, 100, 30)
GUICtrlSetOnEvent($tabAbfragen, "Abfragen")
;MsgBox(0, "", GUICtrlRead($sComputer))
func printerInfo()
$standardprinter = RegRead("\\" & GUICtrlRead($sComputer) & "\" & "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\windows", "Device")
$standardprinter = StringSplit($standardprinter, ",")
$standardprinter = $standardprinter[1]
GUICtrlCreateLabel ( "Standarddrucker: ", 20, 60 )
GUICtrlCreateLabel ( $standardprinter, 220, 60 )
GUICtrlCreateLabel ( "Installierte Drucker: ", 20, 100 )
GUISetFont (9)
GUICtrlCreateList("", 20, 120, 350, 200)
For $i = 1 To 1000
$reg = RegEnumVal("\\" & GUICtrlRead($sComputer) & "\" & "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices", $i)
If @error = -1 Then ExitLoop
GUICtrlSetData(-1, $reg, $standardprinter)
Next
$tabtestdruck=GUICtrlCreateButton ("Testdruck", 400, 90, 100, 30)
GUICtrlSetOnEvent($tabtestdruck, "Testdruck")
$tabdruckereinstellung=GUICtrlCreateButton ("Einstellungen", 400, 140, 100, 30)
GUICtrlSetOnEvent($tabdruckereinstellung, "Druckereinstellung")
$tabdruckereigenschaft=GUICtrlCreateButton ("Eigenschaften", 400, 190, 100, 30)
GUICtrlSetOnEvent($tabdruckereigenschaft, "DruckerEigenschaft")
$tabdruckerfenster=GUICtrlCreateButton ("Warteschlange", 400, 240, 100, 30)
GUICtrlSetOnEvent($tabdruckerfenster, "DruckerFenster")
$tabdruckerordner=GUICtrlCreateButton ("Druckerordner", 400, 290, 100, 30)
GUICtrlSetOnEvent($tabdruckerordner, "druckerordner")
$tabbeenden=GUICtrlCreateButton ("Beenden", 164,360, 100, 30)
GUICtrlSetOnEvent($tabbeenden, "Beenden")
EndFunc
GUISetState(@SW_SHOW)
While 1
Sleep(500)
WEnd
Func druckerordner()
Run("rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL PrintersFolder")
EndFunc
Func Testdruck()
$drucker=GUICtrlRead ( 8 )
$instring = StringInStr ( $drucker, "\\")
If $drucker == "" Then
MsgBox(16,"TestDruck", "Es wurde kein Drucker ausgewählt!")
ElseIf $instring == 0 Then
RunWait( "rundll32 printui.dll,PrintUIEntry /n""\\" & GUICtrlRead($sComputer) & "\" & $drucker & """ /k" )
MsgBox(64, "TestDruck", "Der TestDruck wurde an den Drucker """ & $drucker & """ abgeschickt!" & @CRLF & "Bitte überprüfen Sie den Ausdruck.")
Else
RunWait( "rundll32 printui.dll,PrintUIEntry /n " & $drucker & " /k" )
MsgBox(64, "TestDruck", "Der TestDruck wurde an den Drucker """ & $drucker & """ abgeschickt!" & @CRLF & "Bitte überprüfen Sie den Ausdruck.")
EndIf
EndFunc
Func DruckerFenster()
$drucker=GUICtrlRead ( 8 )
$instring = StringInStr ( $drucker, "\\")
If $drucker == "" Then
MsgBox(16,"Drucker-Warteschlange", "Es wurde kein Drucker ausgewählt!")
ElseIf $instring = 0 Then
RunWait( "rundll32 printui.dll,PrintUIEntry /n""\\" & GUICtrlRead($sComputer) & "\" & $drucker & """ /o" )
Else
RunWait( "rundll32 printui.dll,PrintUIEntry /n " & $drucker & " /o" )
EndIf
EndFunc
Func DruckerEigenschaft()
$drucker=GUICtrlRead ( 8 )
$instring = StringInStr ( $drucker, "\\")
If $drucker == "" Then
MsgBox(16,"Drucker-Eigenschaften", "Es wurde kein Drucker ausgewählt!")
ElseIf $instring = 0 Then
RunWait( "rundll32 printui.dll,PrintUIEntry /n""\\" & GUICtrlRead($sComputer) & "\" & $drucker & """ /p" )
Else
RunWait( "rundll32 printui.dll,PrintUIEntry /n " & $drucker & " /p" )
EndIf
EndFunc
Func DruckerEinstellung()
$drucker=GUICtrlRead ( 8 )
$instring = StringInStr ( $drucker, "\\")
If $drucker == "" Then
MsgBox(16,"Drucker-Einstellungen", "Es wurde kein Drucker ausgewählt!")
ElseIf $instring = 0 Then
RunWait( "rundll32 printui.dll,PrintUIEntry /n""\\" & GUICtrlRead($sComputer) & "\" & $drucker & """ /e" )
Else
RunWait( "rundll32 printui.dll,PrintUIEntry /n " & $drucker & " /e" )
EndIf
EndFunc
Func Abfragen()
;MsgBox(0, "", GUICtrlRead($sComputer))
printerInfo()
EndFunc
Func CLOSEClicked()
Exit
EndFunc
Func Beenden ()
Exit
EndFunc
Alles anzeigen
Ich hoffe wie immer auf eure Unterstützung.