[Blockierte Grafik: https://www2.pic-upload.de/img/34663327/Unbenannt.png]
Das ist mein Output in MsgBox Form, so hätte ich den gerne abgearbeitet wenn ich Install drücke. Ist das möglich oder habe bin ich das Ganze falsch angegangen??
[Blockierte Grafik: https://www2.pic-upload.de/img/34663327/Unbenannt.png]
Das ist mein Output in MsgBox Form, so hätte ich den gerne abgearbeitet wenn ich Install drücke. Ist das möglich oder habe bin ich das Ganze falsch angegangen??
Call($main[1])
MsgBox($MB_OK,"Rs",$main[1])
zeigt mir zB die richtige gewünschte Funktion an, passiert aber trotzdem nichts...
Also anscheinend hatte ich zuerst irgendwo nen typo drin. Inzwischen gibt es keinen Fehler (mehr). Wie gesagt: Wenn ich ArrayToString() in eine MessageBox packe sehe ich alles wie ich es gerne hätte. Ohne MsgBox passiert da aber nichts. Zumindest eine darauf folgende MsgBox hinter dem ArrayToString() wird wieder angezeigt. Es passiert also nichts mit dem ArrayToString Output bzw. es wird nicht ausgeführt...
Wenn ich nach der ArrayToString() eine MsgBox anzeigen lasse taucht diese auch auf, ddaher gehe ich davon aus dass es nicht so funktioniert mit der Funktion bzw. der zusammenstellung, wie ich es mir erhofft hatte...
alpines Ich habe eine extra .au3 mit den ganzen Funktionen erstellt, darin nutze ich #RequireAdmin.
mein Script mit GUI sieht jetzt so aus:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <MsgBoxConstants.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiButton.au3>
#include <MIPS_autoconf_win10_1709_x64_en.au3>
#Region ### START Koda GUI section ### Form=c:\users\admin\downloads\koda_1.7.2.0\forms\form2.kxf
$Form2 = GUICreate("About", 945, 696, 561, 213)
GUISetIcon("D:\006.ico")
$GroupBox1 = GUICtrlCreateGroup("", 16, 24, 377, 97)
$Image1 = GUICtrlCreatePic("C:\Users\admin\Pictures\logo.jpg", 24, 40, 193, 65, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Label1 = GUICtrlCreateLabel("MIPS AutoInstaller 0.9", 232, 48, 109, 17)
$Label2 = GUICtrlCreateLabel("Windows 10 x64-EN Build 1709", 232, 72, 154, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("Install", 736, 592, 75, 25)
$Checkbox1 = GUICtrlCreateCheckbox("disable UAC", 48, 168, 177, 17)
GUICtrlSetTip(-1, "for actual platform installations, you have to disable the Windows User Account Control (UAC)")
$Checkbox2 = GUICtrlCreateCheckbox("Use small taskbar icons", 48, 190, 177, 17)
GUICtrlSetTip(-1, "Enable Use small taskbar buttons")
$Checkbox3 = GUICtrlCreateCheckbox("combine when taskbar is full", 48, 212, 177, 17)
GUICtrlSetTip(-1, "Change `Taskbar buttons` to 'Combine when taskbar is full'")
$Checkbox4 = GUICtrlCreateCheckbox("system icon clock off", 48, 234, 177, 17)
GUICtrlSetTip(-1, "Navigate to 'Turn system icons on or off' and disable everything except network and power")
$Checkbox5 = GUICtrlCreateCheckbox("system icon volume off", 48, 256, 177, 17)
GUICtrlSetTip(-1, "Navigate to 'Turn system icons on or off' and disable everything except network and power")
$Checkbox6 = GUICtrlCreateCheckbox("system icon network on", 48, 278, 177, 17)
GUICtrlSetTip(-1, "Navigate to 'Turn system icons on or off' and disable everything except network and power")
$Checkbox7 = GUICtrlCreateCheckbox("system icon notification center off", 48, 300, 177, 17)
GUICtrlSetTip(-1, "Navigate to 'Turn system icons on or off' and disable everything except network and power")
$Checkbox8 = GUICtrlCreateCheckbox("show task view button off", 48, 322, 177, 17)
GUICtrlSetTip(-1, "Rightclick taskbar and uncheck 'Show Task View button', 'Show Windows Ink Workspace button', 'Show touch keyboard button'")
$Checkbox9 = GUICtrlCreateCheckbox("windows ink workspace button off", 48, 344, 177, 17)
GUICtrlSetTip(-1, "Rightclick taskbar and uncheck 'Show Task View button', 'Show Windows Ink Workspace button', 'Show touch keyboard button'")
$Checkbox10 = GUICtrlCreateCheckbox("touch keyboard button off", 48, 366, 177, 17)
GUICtrlSetTip(-1, "Rightclick taskbar and uncheck 'Show Task View button', 'Show Windows Ink Workspace button', 'Show touch keyboard button'")
$Checkbox11 = GUICtrlCreateCheckbox("unpin windows store", 48, 388, 177, 17)
GUICtrlSetTip(-1, "Unpin windows store from taskbar")
$Checkbox12 = GUICtrlCreateCheckbox("import no pins startmenu layout", 48, 410, 177, 17)
GUICtrlSetTip(-1, "click start and unpin all tiles")
$Checkbox13 = GUICtrlCreateCheckbox("always show menu on", 48, 432, 177, 17)
GUICtrlSetTip(-1, "Enable 'Always show menue'")
$Checkbox14 = GUICtrlCreateCheckbox("show hidden files folders on", 48, 454, 177, 17)
GUICtrlSetTip(-1, "Enable 'Show hidden files, folders and drives'")
$Checkbox15 = GUICtrlCreateCheckbox("hide extensions for known file types off", 48, 476, 209, 17)
GUICtrlSetTip(-1, "Disable 'Hide extensions for known file types'")
$Checkbox16 = GUICtrlCreateCheckbox("hide protected operating system files", 48, 498, 201, 17)
GUICtrlSetTip(-1, "Disable 'Hide protected operating system files (Recommended)'")
$Checkbox17 = GUICtrlCreateCheckbox("disable sharing wizard", 48, 520, 177, 17)
GUICtrlSetTip(-1, "Disable 'Use Sharing Wizard (Recommended)'")
$Checkbox18 = GUICtrlCreateCheckbox("remote assistance", 48, 542, 177, 17)
$Checkbox19 = GUICtrlCreateCheckbox("RDP", 48, 564, 177, 17)
GUICtrlSetTip(-1, "Enable RDP:")
$Checkbox20 = GUICtrlCreateCheckbox("NetUser kiosk", 48, 586, 177, 17)
GUICtrlSetTip(-1, "Windows 10 AutoLogon:")
$Checkbox21 = GUICtrlCreateCheckbox("install ShutUp10", 48, 608, 177, 17)
GUICtrlSetTip(-1, "-Run Shutup10 and import the config file ")
$Checkbox22 = GUICtrlCreateCheckbox("Reboot", 48, 630, 177, 17)
GUICtrlSetTip(-1, "Restart Windows to enable configuration.")
$Group1 = GUICtrlCreateGroup("MIPS Installation Part 01", 16, 144, 377, 521)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Checkbox23 = GUICtrlCreateCheckbox("set best performance", 435, 47, 177, 17)
GUICtrlSetTip(-1, "Change performance settings to best performance:")
$Checkbox24 = GUICtrlCreateCheckbox("enable admin shares", 435, 69, 177, 17)
GUICtrlSetTip(-1, "Enable Admin Shares(This should give you access to c$ and admin$)")
$Checkbox25 = GUICtrlCreateCheckbox("allow file sharing", 435, 91, 177, 17)
GUICtrlSetTip(-1, "Allow file sharing")
$Checkbox26 = GUICtrlCreateCheckbox("show hidden files folders drives on", 435, 113, 177, 17)
$Checkbox27 = GUICtrlCreateCheckbox("hide extensions for known file types off", 435, 135, 249, 17)
$Checkbox28 = GUICtrlCreateCheckbox("disable sharing wizard", 435, 157, 177, 17)
$Checkbox29 = GUICtrlCreateCheckbox("dont display last user", 435, 179, 177, 17)
GUICtrlSetTip(-1, "Do not Display the last user name at windows logon:")
$Checkbox30 = GUICtrlCreateCheckbox("disable media playback", 435, 201, 177, 17)
GUICtrlSetTip(-1, "Disable 'Media Features'")
$Checkbox31 = GUICtrlCreateCheckbox("disable windows media player", 435, 223, 177, 17)
$Checkbox32 = GUICtrlCreateCheckbox("enable telnet", 435, 245, 177, 17)
GUICtrlSetTip(-1, "Enable 'Telnet Client'")
$Checkbox33 = GUICtrlCreateCheckbox("foreground lock timeout", 435, 267, 177, 17)
$Checkbox34 = GUICtrlCreateCheckbox("dont show error", 435, 289, 177, 17)
GUICtrlSetTip(-1, "Disable Windows Error Popups")
$Checkbox35 = GUICtrlCreateCheckbox("disable windows recovery", 435, 311, 177, 17)
GUICtrlSetTip(-1, "Disable Windows startup recovery")
$Checkbox36 = GUICtrlCreateCheckbox("enable ping from other network", 435, 333, 177, 17)
GUICtrlSetTip(-1, "Enable Ping from other network")
$Checkbox37 = GUICtrlCreateCheckbox("disable bluetotth", 435, 355, 209, 17)
GUICtrlSetTip(-1, "Disable Wifi and bluetooth")
$Checkbox38 = GUICtrlCreateCheckbox("disable WiFi", 435, 377, 201, 17)
GUICtrlSetTip(-1, "Disable Wifi and bluetooth")
$Checkbox39 = GUICtrlCreateCheckbox("disable automatic crash recovery", 435, 399, 177, 17)
GUICtrlSetTip(-1, "Configure Internet options (important even if you dont use IE)")
$Checkbox40 = GUICtrlCreateCheckbox("enable allow active content", 435, 421, 177, 17)
GUICtrlSetTip(-1, "Configure Internet options (important even if you dont use IE)")
$Checkbox41 = GUICtrlCreateCheckbox("disable telemetry", 435, 443, 177, 17)
$Checkbox42 = GUICtrlCreateCheckbox("enable remote UAC", 435, 465, 177, 17)
$Checkbox43 = GUICtrlCreateCheckbox("open command window here", 435, 487, 177, 17)
$Checkbox44 = GUICtrlCreateCheckbox("set unidentified network private", 435, 509, 177, 17)
GUICtrlSetTip(-1, "Set Work network as default for unknown and known networks")
$Checkbox45 = GUICtrlCreateCheckbox("set identified network private", 435, 530, 177, 17)
GUICtrlSetTip(-1, "Set Work network as default for unknown and known networks")
$Checkbox46 = GUICtrlCreateCheckbox("disable NCSI", 435, 552, 177, 17)
GUICtrlSetTip(-1, "Disable Windows Internet Connection test (NCSI)")
$Checkbox47 = GUICtrlCreateCheckbox("turn system icons on off", 435, 574, 177, 17)
$Checkbox48 = GUICtrlCreateCheckbox("personalize start", 435, 596, 177, 17)
GUICtrlSetTip(-1, " Configure start menu")
$Checkbox49 = GUICtrlCreateCheckbox("delete all desktop shortcuts", 435, 618, 177, 17)
$Group2 = GUICtrlCreateGroup("MIPS Installation Part 02", 416, 24, 273, 641)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Checkbox50 = GUICtrlCreateCheckbox("install Notepad++", 722, 47, 177, 17)
$Checkbox51 = GUICtrlCreateCheckbox("install 7zip", 722, 69, 177, 17)
$Checkbox52 = GUICtrlCreateCheckbox("install UVNC", 722, 91, 177, 17)
$Checkbox53 = GUICtrlCreateCheckbox("install Apache", 722, 113, 177, 17)
$Checkbox54 = GUICtrlCreateCheckbox("install Chrome", 722, 135, 185, 17)
$Checkbox55 = GUICtrlCreateCheckbox("install Acrobat Reader", 722, 157, 177, 17)
$Checkbox56 = GUICtrlCreateCheckbox("install Java", 722, 179, 177, 17)
$Checkbox57 = GUICtrlCreateCheckbox("install Inkscape", 722, 201, 177, 17)
$Checkbox58 = GUICtrlCreateCheckbox("install iRotate", 722, 223, 177, 17)
$Checkbox59 = GUICtrlCreateCheckbox("install Cygwin", 722, 245, 177, 17)
$Checkbox60 = GUICtrlCreateCheckbox("install Image Magick", 722, 267, 177, 17)
$Group3 = GUICtrlCreateGroup("3rd Party", 712, 24, 209, 281)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Radio1 = GUICtrlCreateRadio("CUSS Setup", 712, 320, 113, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Global $i=0
Global $i2=0
Global $main[140]
Global $currentFunc
Switch $nMsg
Case $Radio1
_GUICtrlButton_SetCheck($Checkbox1,$BST_CHECKED)
_GUICtrlButton_SetCheck($Checkbox2,$BST_CHECKED)
...gekürzt weil zu lang...
_GUICtrlButton_SetCheck($Checkbox58,$BST_CHECKED)
_GUICtrlButton_SetCheck($Checkbox59,$BST_CHECKED)
_GUICtrlButton_SetCheck($Checkbox60,$BST_CHECKED)
Case $Button1
If (BitAnd(GUICtrlRead($Checkbox1),$GUI_CHECKED) = $GUI_CHECKED) Then
$main[$i] = "$currentFunc = 'disableUAC'"
$i = $i+1
$main[$i] = "_disableUAC()"
$i = $i+1
EndIf
If (BitAnd(GUICtrlRead($Checkbox2),$GUI_CHECKED) = $GUI_CHECKED) Then
$main[$i] = "$currentFunc = 'setUseSmallTaskbarIcons'"
$i = $i+1
$main[$i] = "_setUseSmallTaskbarIcons()"
$i = $i+1
EndIf
...gekürzt weil zu lang...
If (BitAnd(GUICtrlRead($Checkbox59),$GUI_CHECKED) = $GUI_CHECKED) Then
$main[$i] = "$currentFunc = 'installCygwin'"
$i = $i+1
$main[$i] = "_installCygwin()"
$i = $i+1
EndIf
If (BitAnd(GUICtrlRead($Checkbox60),$GUI_CHECKED) = $GUI_CHECKED) Then
$main[$i] = "$currentFunc = 'installImageMagick'"
$i = $i+1
$main[$i] = "_installImageMagick()"
$i = $i+1
EndIf
_ArrayToString($main,@CRLF)
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Alles anzeigen
Jetzt passiert nichts mehr wenn ich auf den Button drücke...
hallo zusammen,
danke für deinen Tip Kanashius leider hilft mir auch dieser nicht weiter bei meinem nächsten problem:
Ich habe ja zuvor alle If bedingungen auf Button1 durchgefragt und abschließend mir dann alle nötigen funktionen testweise als msg box ausgeben lassen:
Das funktionierte auch ganz gut. Jetzt dachte ich eigentlich, ich lasse die MsgBox einfach weg und führe ArraytoString wie angegeben direkt aus und alle meine Funktionen werden nacheinander ausgeführt. Statt dessen bekomme ich einen Fehler: "Illegal text at the end of statement (one statement per line" in Zeile 6000 usw.
mit F5 habe ich folgenden Output:
>"C:\Program Files (x86)\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Users\admin\Desktop\AutoInstall\menutest2.au3"
>Exit code: 0 Time: 1.604
kann das so überhaupt funktionieren? Oder gibt es eine elegantere Lösung als ArrayToString um alle aktivierten Funktionen abzulaufen??
Gruß
Normalerweise schaue ich mir die Meldungen schon an, nur wenn auf line 3000 schlag mich tot verwiesen wird tue ich mich etwas schwer die genaue zeile zu finden
OK die expression musste einfach nur direkt hinter dem switch folgen, dann gehts. ich bekomme aber immer noch nach dem buttonpress ein error unknown function. hier mal das komplette aktuelle script: EDIT: Es fehlte ein $ in der MsgBox Funktion ($MB_OK). Vielen Dank für eure Geduld und Hilfe, hier noch mal das bisherige Ergebnis für Leute mit den gleichen Fragen:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <MsgBoxConstants.au3>
#Region ### START Koda GUI section ### Form=C:\Users\xxxxx\Downloads\koda_1.7.2.0\Forms\Form2.kxf
$Form2 = GUICreate("About", 707, 545, 271, 238)
GUISetIcon("D:\006.ico")
$GroupBox1 = GUICtrlCreateGroup("", 40, 24, 609, 121)
$Image1 = GUICtrlCreatePic("", 48, 40, 105, 97, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Label1 = GUICtrlCreateLabel("MIPS AutoInstaller 0.9", 192, 48, 109, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("Install", 288, 440, 75, 25)
$Group1 = GUICtrlCreateGroup("", 48, 168, 257, 217)
$Checkbox1 = GUICtrlCreateCheckbox("Use small taskbar icons", 64, 208, 169, 17)
$Checkbox2 = GUICtrlCreateCheckbox("set system icon clock off", 64, 256, 169, 17)
$Checkbox3 = GUICtrlCreateCheckbox("set system icon net on", 64, 280, 169, 17)
$Checkbox9 = GUICtrlCreateCheckbox("add CMD to context", 64, 232, 169, 17)
$Checkbox10 = GUICtrlCreateCheckbox("UAC deaktivieren", 64, 184, 169, 17)
GUICtrlSetTip(-1, "test hint")
$Checkbox16 = GUICtrlCreateCheckbox("set system icon notification center off", 64, 328, 233, 17)
$Checkbox17 = GUICtrlCreateCheckbox("set system icon power on", 64, 304, 169, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Global $i=0
Global $main[3]
Switch $nMsg
Case $Button1
If (BitAnd(GUICtrlRead($Checkbox1),$GUI_CHECKED) = $GUI_CHECKED) Then
$main[$i] = "_setUseSmallTaskbarIcons()"
$i = $i+1
$setUseSmallTaskbarIcons=1
EndIf
If (BitAnd(GUICtrlRead($Checkbox2),$GUI_CHECKED) = $GUI_CHECKED) Then
$main[$i] = "_setSystemIconClockOff()"
$i = $i+1
$setSystemIconClockOff=1
EndIf
If (BitAnd(GUICtrlRead($Checkbox3),$GUI_CHECKED) = $GUI_CHECKED) Then
$main[$i] = "_setSystemIconPowerOn()"
$i = $i+1
$setSystemIconPowerOn=1
EndIf
MSgBox(MB_OK,"Result",_ArrayToString($main,@CRLF,0,2))
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Alles anzeigen
While 1
$nMsg = GUIGetMsg()
Global $i=0
Global $main[3]
Switch
$nMsg
Case $Button1
If (BitAnd(GUICtrlRead($Checkbox1),$GUI_CHECKED) = $GUI_CHECKED) Then
$main[$i] = _setUseSmallTaskbarIcons()
$i = $i+1
$setUseSmallTaskbarIcons=1
EndIf
If (BitAnd(GUICtrlRead($Checkbox2),$GUI_CHECKED) = $GUI_CHECKED) Then
$main[$i] = _setSystemIconClockOff()
$i = $i+1
$setSystemIconClockOff=1
EndIf
If (BitAnd(GUICtrlRead($Checkbox3),$GUI_CHECKED) = $GUI_CHECKED) Then
$main[$i] = _setSystemIconPowerOn()
$i = $i+1
$setSystemIconPowerOn=1
EndIf
MSgBox(MB_OK,"Result",_ArrayToString($main,@CRLF,0,2))
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Alles anzeigen
error in expression. Irgendwie steig ich da nicht so richtig hinter. Auch googlen und manual bringt mich da nicht weiter: welche expression ist denn gemeint?? Es geht um Line 3228 dabei hab ich die gar nicht, schätze also irgendwo tief in den included .au3s ist der Fehler. Und sorry aber ich hab ehrlich gesagt bisher keine Skripte mit Switch case geschrieben
alpines Das wirft bei mir jetzt doch noch Fragen auf:
- Funktioniert es überhaupt hinter einem Case eine If Bedingung zu setzen oder meinst du genau das mit "Wert ausgeben"?
- Ich überlege gerade ob es eventuell nur mit cases&bitand funktioniert bzw. wie du zuerst erwähnt hattest mit if bedingungen und nur für den button einen case. Jetzt habe ich auch noch die Überlegung dass ja evtl jemand einen Haken setzt und wieder entfernt. Da funktioniert das doch gar nicht wie ich es geplant hatte mit $i+1?! Muss ich dann auch cases für das entfernen eines Hakens setzen?
Hallo zusammen,
ich habe das in der while Schleife mal so gelöst:
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case
If (BitAnd(GUICtrlRead($Checkbox1),$GUI_CHECKED) = $GUI_CHECKED) Then
$main[$i] = _setUseSmallTaskbarIcons()
$i = $i+1
EndIf
Case
If (BitAnd(GUICtrlRead($Checkbox2),$GUI_CHECKED) = $GUI_CHECKED) Then
$main[$i] = _setSystemIconClockOff()
$i = $i+1
EndIf
Case
If (BitAnd(GUICtrlRead($Checkbox3),$GUI_CHECKED) = $GUI_CHECKED) Then
$main[$i] = _setSystemIconPowerOn()
$i = $i+1
EndIf
Case
If $Button1 = 1 Then
MsgBox($MB_SYSTEMMODAL, "Items 1-7", _ArrayToString($main,@CRLF,0,5))
EndIf
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Alles anzeigen
ich erhalte bei Ausführung nur ein error in expression. Das auf Knopfdruck beispielhaft eine MsgBox auftaucht und mir die korrekten Funktionen ausspuckt ist sehr provisorisch gehalten.
Hallo zusammen,
ich automatisiere zur Zeit eine Windows Installationsroutine und es gibt viele kleine Zwischenschritte bei der Konfiguration von Windows & 3rd party Installationen. Diese ganzen Schritte habe ich jetzt in jeweils eigenen Funktionen programmiert, z.B.
_disableUAC()
_installWinSCP()
...
Bis jetzt habe ich alles gerade benötigte ausgeklammert. Jetzt möchte ich dafür eine GUI erstellen und habe mit Koda mir schon ein wenig das Layout erstellt:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### ...\Form2.kxf
$Form2 = GUICreate("About", 707, 545, 271, 238)
GUISetIcon("D:\006.ico")
$GroupBox1 = GUICtrlCreateGroup("", 40, 24, 609, 121)
$Image1 = GUICtrlCreatePic("", 48, 40, 105, 97, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Label1 = GUICtrlCreateLabel("MIPS AutoInstaller 0.9", 192, 48, 109, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("Install", 288, 440, 75, 25)
$Group1 = GUICtrlCreateGroup("", 48, 168, 257, 217)
$Checkbox6 = GUICtrlCreateCheckbox("Use small taskbar icons", 64, 208, 169, 17)
$Checkbox7 = GUICtrlCreateCheckbox("set system icon clock off", 64, 256, 169, 17)
$Checkbox8 = GUICtrlCreateCheckbox("set system icon net on", 64, 280, 169, 17)
$Checkbox9 = GUICtrlCreateCheckbox("add CMD to context", 64, 232, 169, 17)
$Checkbox10 = GUICtrlCreateCheckbox("deactivate UAC", 64, 184, 169, 17)
GUICtrlSetTip(-1, "test hint")
$Checkbox16 = GUICtrlCreateCheckbox("set system icon notification center off", 64, 328, 233, 17)
$Checkbox17 = GUICtrlCreateCheckbox("set system icon power on", 64, 304, 169, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Alles anzeigen
Ich stehe jetzt allerdings auf dem Schlauch: Ich möchte dass die GUI je nach gewählten checkboxen eine Reihe jeweiliger Funktionen nach drücken auf Install ausführt. Wie mache ich das am besten? Eine String variable erstellen, alle Funktionsnamen als string anhängen, String variable als main-Funktion ausführen? Oder doch irgendwie ein Array von Funktionsnamen erstellen und dann mit einer main Funktion abarbeiten??
Da fehlt mir wohl irgendwie gerade ein wenig Kreativität Ich wünsche erstmal ein schönes Wochenende!
Gruß
Danke für den Link. Jetzt kann ich auch nach vollziehen was in der gefunden Funktion überhaupt abläuft.
Ich habe jetzt die Funktion schon benutzt und das klappte ganz gut daher belasse ich es wohl dabei. Proxy befindet sich übrigens nicht auf dem Host sondern (irgendwo) im Firmennetz
Hallo,
ich habe da doch noch ein Problem mit diesem Projekt. Ich habe jetzt schön die ganze Logik für meinen Kunden geschrieben. Allerdings bekomme ich im Netz des Kunden immer auf meine XML Requests "0" zurück. Ich gehe stark davon aus, dass deren Proxy dafür verantwortlich ist, finde aber bisher keine Lösung für mein Problem.
Ich fand diese Funktion für Proxys im Netz:
$hSession = _WinHttpOpen("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0")
_SetProxy($ProxyIP, $hSession)
Func _SetProxy($ProxyIP, $Session)
Local $tWINHTTP_PROXY_INFO[2] = [DllStructCreate("DWORD dwAccessType;ptr lpszProxy;ptr lpszProxyBypass;"), DllStructCreate('wchar proxychars[' & StringLen($ProxyIP) + 1 & ']; wchar proxybypasschars[10]')]
DllStructSetData($tWINHTTP_PROXY_INFO[0], "dwAccessType", $WINHTTP_ACCESS_TYPE_NAMED_PROXY)
DllStructSetData($tWINHTTP_PROXY_INFO[0], "lpszProxy", DllStructGetPtr($tWINHTTP_PROXY_INFO[1], 'proxychars'))
DllStructSetData($tWINHTTP_PROXY_INFO[0], "lpszProxyBypass", DllStructGetPtr($tWINHTTP_PROXY_INFO[1], 'proxybypasschars'))
DllStructSetData($tWINHTTP_PROXY_INFO[1], "proxychars", $ProxyIP)
DllStructSetData($tWINHTTP_PROXY_INFO[1], "proxybypasschars", "localhost")
_WinHttpSetOption($Session, $WINHTTP_OPTION_PROXY, $tWINHTTP_PROXY_INFO[0])
EndFunc ;==>_SetProxy
Alles anzeigen
Unter den Windows IPv4 Einstellung wurde als Gateway der Proxy gesetzt. Der DNS Server allerdings ist eine andere IP. In Firefox werden die Systemeinstellung für Proxys verwendet.
Ich setze $ProxyIP = GatewayIP, habe aber in diesem Fall den Verdacht, dass das nicht reicht, da ja noch ein anderer DNS Server in den Eigenschaften des Interfaces angegeben ist. Liege ich da richtig? Falls ja, hat da jemand nen Tip wie ich das richtig konfiguriere?
was evtl auch helfen würde, wenn ich per winHTTP ebenfalls die Proxysettings des Systems nutzen könnte
e: OK, auch das ist gelöst. Bei mir war es der falsche Port. Darauf bin ich wie folgt gekommen:
Mit dieser Funktion kann man die System Proxy Settings auslesen:
; Gets proxy settings from Windows registry
#include <MsgBoxConstants.au3>
Local $sProxyServer = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyServer")
Local $sProxyOverride = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyOverride")
MsgBox($MB_SYSTEMMODAL, "Proxy", $sProxyServer & @CRLF & $sProxyOverride)
Alles anzeigen
Damit bekommt man dann alles angezeigt was man braucht.
Hey alpines, vielen Dank nochmal, ich finde das auf jeden Fall nicht selbstverständlich und diese Woche war ein wenig viel Stress da ist man wohl nochmal doppelt dankbar wenn man den Wald vor lauter Bäumen nicht mehr sieht.
Ich habe mich heute wieder mal mit dem Thema auseinandergesetzt und der Fehler saß mal wieder vor dem Bildschirm Genauer gesagt: man sollte die Fehlermeldung für voll nehmen, ich hatte mich tatsächlich probiert mit falschem Username zu connecten. Das konnte ich dann herausfinden über die Testschnittstelle von afterbuy. Für alle Menschen, die mal auf das gleiche Problem stoßen und sich fragen wo und wieso:
Die Testschnittstelle findet ihr hier:
https://api.afterbuy.de/afterbuy/ABInterfaceTest.aspx
Username/Pass sind die gleichen wie die Logindaten für afterbuy, NICHT der Interface Name den man beantragt!
Mein genutzter Testcode: (e: klappt übrigens sowohl mit als auch ohne 443 parameter)
#include "WinHttp.au3"
Opt("MustDeclareVars", 1)
; Use real data for authentication
Global $sDomain = "api.afterbuy.de"
Global $sPage = "afterbuy/ABInterface.aspx"
Global $sAdditionalData = "<Request><AfterbuyGlobal><PartnerID>PARTNERID</PartnerID><PartnerPassword>PARTNERPASSWORT</PartnerPassword><UserID>AFTERBUYLOGIN</UserID><UserPassword>AFTERBUYLOGINPASSWORT</UserPassword><CallName>GetAfterbuyTime</CallName><DetailLevel>0</DetailLevel><ErrorLanguage>DE</ErrorLanguage></AfterbuyGlobal><RequestAllItems>0</RequestAllItems><DataFilter><Filter><FilterName>DateFilter</FilterName><FilterValues><DateFrom>30.03.2017 08:00:00</DateFrom><DateTo>30.03.2017 12:00:00</DateTo><FilterValue>AuctionEndDate</FilterValue><FilterValue>FeedbackDate</FilterValue></FilterValues></Filter><Filter><FilterName>OrderID</FilterName><FilterValues><FilterValue>43151135</FilterValue></FilterValues></Filter><Filter><FilterName>RangeID</FilterName><FilterValues><ValueFrom>1</ValueFrom><ValueTo>999999999</ValueTo></FilterValues></Filter><Filter><FilterName>DefaultFilter</FilterName><FilterValues><FilterValue>InvoicePrinted</FilterValue></FilterValues></Filter></DataFilter></Request>"
; Initialize and get session handle
Global $hOpen = _WinHttpOpen()
; Get connection handle
Global $hConnect = _WinHttpConnect($hOpen, $sDomain)
; SimpleSSL-request it...
Global $sReturned = _WinHttpSimpleSSLRequest($hConnect, "POST", $sPage, Default, $sAdditionalData)
; Close handles
_WinHttpCloseHandle($hConnect)
_WinHttpCloseHandle($hOpen)
; See what's returned
MsgBox(0, "Returned", $sReturned)
Alles anzeigen
Hey, ich wollte mich gerade ans sniffen machen da kam ein Kunde mit dringender bitte bis Montag früh. Ich muss das Thema erstmal auf Eis legen. Ich melde mich aber mit nem Sniff zurück! Danke bis hier hin für deine Mühe, ich würde mich ja per Button bedanken oder liken aber wenn ich anderweitig mich revanchieren kann sag mir das bitte!
Gruß
So steht es in der example der Hilfe für _WinHttpSimpleSSLRequest. Ich habs aber mal geändert:
Bekomme aber leider die gleiche Rückmeldung. Eine Frage zu der Formatierung des Strings:
Muss ich nach einem Gleichheitszeichen, bsplw. im Passwort, mit =" & "... arbeiten oder müsste das von einem Anführungszeichen bis zum letzten durchgängig schreibbar sein?
e: habs ausprobiert und scheint irrelevant zu sein
Ich habe noch mal ein wenig an den Formaten probiert und bin jetzt an folgendem Punkt angelangt: Ich habe AdditionalData wie folgt:
Global $sAdditionalData = "<AfterbuyGlobal><PartnerID>" & "1111111" & "</PartnerID><PartnerPassword>" & "aJwy6vmamAVEddhq=SYkkGMf" & "</PartnerPassword><UserID>" & "102244_abcdef" & "</UserID><UserPassword>" & "NJby6vjknguviZTCEdZhq=SYkkGMf" & "</UserPassword><CallName>" & "GetSoldItems" & "</CallName><DetailLevel>" & "0" & "</DetailLevel><ErrorLanguage>DE</ErrorLanguage></AfterbuyGlobal>"
Login/Pass sind geändert bzw. ungültig gemacht und dienen nur zur Veranschaulichung. Ich nutze das dann alles so:
; SimpleSSL-request it...
Global $sReturned = _WinHttpSimpleSSLRequest($hConnect, "POST", $sPage, Default, $sAdditionalData, Default, Default, 1)
; Close handles
_WinHttpCloseHandle($hConnect)
_WinHttpCloseHandle($hOpen)
Wobei ich mit dem Parameter 1 am Ende von _WinHttpSimpleSSLRequest UTF-8 Kodierung bezwecke. Ich erhalte aber immer nur folgenden Return:
Ich schlussfolgere dass ich beim übergeben irgendwas falsch mache.