Hi Bitnugger,
stimmt, bei Windows 10 ist das ganze ein wenig anders gestaffelt...auf dem Rechner bzw. den Rechnern, auf denen das ganze laufen soll, ist Windows 7 installiert
Hi Bitnugger,
stimmt, bei Windows 10 ist das ganze ein wenig anders gestaffelt...auf dem Rechner bzw. den Rechnern, auf denen das ganze laufen soll, ist Windows 7 installiert
Hi Bitnugger,
erst einmal vielen Dank für deine Hilfe. Wie folg reagiert dein Script.
Wenn ich es unberührt einfüge, bekomme ich nur "Systemtray not found"
dann habe ich deinen Code mal ein wenig durchforstet und folgendes gesehen
$g_hSysTray = ControlGetHandle('[CLASS:Shell_TrayWnd]', '', '[CLASS:ToolbarWindow32; INSTANCE:3]')
ändere ich dort INSTANCE:3 auf INSTANCE:1, bekomme ich "Icon was not found in systemtray"... ( bei früheren Versuchen habe ich herausgefunden, dass ich den Systemtray wie folgt mit der linken Maustaste "anklicke")
$hTaskBarHandle = WinGetHandle("[Class:Shell_TrayWnd]", "")
ControlClick($hTaskBarHandle, "", "[CLASS:Button; INSTANCE:1]")
ABER: bei dieser Variante spuckt mir das "Consol write" auch was aus...
die Variable $sText gibt mir den "Namen" meines Netzwerkadapters an, waws bedeuten würde, dass wir ein Symbol in der Leiste zu weit rechts sind...
Hilft dir das, mir weiter zu helfen? ![]()
Nochmals vielen Dank
Lieben Gruß tommii
Hi Bitnugger,
habe ich gerade eben versucht, wenn ich den Code direkt per F5 ausführe, ist dieser ach ca 0,6 Sekunden fertig, es passiert aber leider nichts,sprich kein rechtsklick...
wie müsste die zweite zeile aussehen, um einen doppelklick mit links zu generieren?
Wäre das so richtig?
Guten Morgen,
ich weiß, dass das Thema schon bis zum Erbrechen durchthematisiert wurde, aber ich finde keine funktioniernde Lösung...
Ich habe ein Programm (UltraVNC), was als Systemdienst läuft, also man sieht nur ein Tray unten rechts in der Ecke.
Über dieses habe ich auch mittels eines Codesnippets viele Informationen herausgefunden.
| index: 1 | visible: True | handle: 0x00030362 | pid: 7404 | proc: winvnc.exe | title: WinVNC Tray Icon | tooltip: WinVNC - 53.26.191.27 - M067L1039510 - application - vnchook | ||
Nichts desto trotz bekomme ich es nicht hin, auf dieses Symbol mit der rechten Maustaste zu klicken. Egal, welchen der vielen Codesnippets ich dafür versucht habe, es heißt immer "Trayicon was not found"
das Produktivsystem ist folgendes
Könnt ihr mir dabei bitte helfen?
Danke euch vielmals und schönes Wochenende.
Guten Tag,
Ich habe schon das halbe Internet durchwühlt aber bis dato nicjts passendes gefunden... zu meinem Problem:
Ich muss für die Arbeit eine Installationsrotine erstellen, bestehend aus mehreren setups und einigen Einstellungen am Win7 System.
Unter anderem muss ich dem Rechner und einer externen LAN Komponente (Eine Kamera eines Roboters) die Kommunikation verwirklichen. Dazu muss ich sowohl Ein- als auch Ausgehende Firewallregeln erstellen (Ports Und Programme). Eingehende Regeln bekomme ich hin. Im Internet kursiert eine WindowsFirewall.au3 die das ermöglicht. Bei den ausgehenden Regeln stehe ich auf dem Schlauch, bekomme sie weder für die Ports noch für die Apps erstellt...
Auch nicht , wenn ich eine Direction angebe...
Hat da jemand ein Codesnipped oder einen Ansatz für mich?
System ist Win7 mit Administratorrechten.
Danke im voraus
Tommii
nachtrag...das controlsettext findet die inputfelder nicht, obwohl ich sie 1:1 aus dem window info tool übernommen habe...
hi, nach kurzer Krankheit nun wieder Vorort. Nein, der Anmeldebuttontext ändert sich nicht...ich bin mir ziemlich sicher, dass das irgendwie mit den Win7 Gruppenrichtlinien zu tun hat...der Witz ist, dass es sporadisch hinhaut und sporadisch nicht...ich weiß nur leider nicht wo ich ansetzen soll....bei meinem Chef (lokaladmin) geht es immer....leider weiß auch er nicht, ob/was die globaladmins am gruppenrichtliniendienst rumspielen oder nicht...
dafür lacht ihr mich aus
das ist ein zusammengewürfeltes Autoitgebilde....naja was solls
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ColorConstantS.au3>
#include <StaticConstants.au3>
#include <EditConstants.au3>
#include <WindowsConstants.au3>
#include <Crypt.au3>
#Region ### START Koda GUI section ### Form=P:\Bremen\Bremen-DFS\AKL\Instandhaltung\Vorarbeiter\Dierksen\AutoIT\Form1.kxf
$Form1_1 = GUICreate("Hauptmenü", 646, 438, 187, 130)
GUISetBkColor($Color_White)
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 352, 360, 17, 17)
GUICtrlSetState($Checkbox1, $GUI_DISABLE)
$anfang1 = iniread("H:\AutoIT.ini", "login", "wert", "aktiv")
If $anfang1="aktiv" Then
GUICtrlSetState($Checkbox1, $GUI_CHECKED)
GUICtrlSetState($Checkbox1, $GUI_ENABLE)
Else
GUICtrlSetState($Checkbox1, $GUI_UNCHECKED)
GUICtrlSetState($Checkbox1, $GUI_DISABLE)
EndIf
$Label1 = GUICtrlCreateLabel("Anmeldung gespeichert", 376, 360, 106, 17)
$Button3 = GUICtrlCreateButton("Einstellungen", 232, 344, 107, 41)
$Button2 = GUICtrlCreateButton("Beenden", 368, 280, 113, 41)
$Button1 = GUICtrlCreateButton("Start", 232, 280, 113, 41)
$Button4 = GUICtrlCreateButton("UltraVNC", 504, 280, 115, 41)
GUICtrlSetState($Button4, $GUI_DISABLE)
$Button_admin = GUICtrlCreateButton("Administration", 504, 344, 113, 33)
$Willkommen = GUICtrlCreateInput("Willkommen im Login. Unter Einstellungen kann optional", 256, 40, 321, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_READONLY))
$Input1 = GUICtrlCreateInput("eingestellt werden, welche Programme geöffnet werden sollen.", 256, 64, 321, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_READONLY))
$Input2 = GUICtrlCreateInput("Bei Fragen oder Anregungen einfach an Thomas wenden.", 256, 88, 321, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_READONLY,$WS_BORDER))
$Pic1 = GUICtrlCreatePic("P:\Bremen\Bremen-DFS\AKL\Instandhaltung\Vorarbeiter\Dierksen\Daimler\Layouts\GFX\bg.jpg", 0, 0, 225, 433)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$hMenu_main = DllCall("user32.dll", "hwnd", "GetSystemMenu", "hwnd", $Form1_1, "int", 0)
DllCall("user32.dll", "hwnd", "EnableMenuItem", "hwnd", $hMenu_main[0], "int", 0xF060, "int", 0x1)
Func _IsChecked($control)
Return BitAND(GUICtrlRead($control), $GUI_CHECKED) = $GUI_CHECKED
EndFunc
#Region ### START Koda GUI section ### Form=P:\Bremen\Bremen-DFS\AKL\Instandhaltung\Vorarbeiter\Dierksen\AutoIT\login.kxf
$Form2 = GUICreate("Login", 405, 292, 318, 225)
GUISetBkColor($Color_White)
$Value = Ini_Read("Password","H:\passwd.ini","Section","Key")
$user = Ini_Read("User","H:\passwd.ini","User","Key")
$Benutzername = GUICtrlCreateInput($user, 24, 120, 161, 21)
$Passwort = GUICtrlCreateInput($value, 24, 152, 161, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_PASSWORD))
$Input1_2 = GUICtrlCreateInput("Bitte Citrix Anmeldedaten eingeben. Die Daten werden nur", 24, 32, 321, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_READONLY))
$Input2_2 = GUICtrlCreateInput("temorär verschlüsselt gespeichert! Wenn diese gespeichert", 24, 56, 321, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_READONLY))
$Input3_3 = GUICtrlCreateInput("werden sollen, bleiben Sie verschlüsselt. Absolut sicher!", 24, 80, 321, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_READONLY))
$Checkbox_login = GUICtrlCreateCheckbox("Checkbox1", 24, 184, 17, 17)
$Input4_2 = GUICtrlCreateInput("Anmeldung speichern", 48, 184, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_READONLY))
$Attacke = GUICtrlCreateButton("Attacke", 16, 232, 113, 33)
$Abbruch = GUICtrlCreateButton("Abbruch", 168, 232, 105, 33)
GUISetState(@SW_HIDE)
#EndRegion ### END Koda GUI section ###
$hMenu_login = DllCall("user32.dll", "hwnd", "GetSystemMenu", "hwnd", $Form2, "int", 0)
DllCall("user32.dll", "hwnd", "EnableMenuItem", "hwnd", $hMenu_login[0], "int", 0xF060, "int", 0x1)
#Region ### START Koda GUI section ### Form=P:\Bremen\Bremen-DFS\AKL\Instandhaltung\Vorarbeiter\Dierksen\AutoIT\einstellungen.kxf
$Form3 = GUICreate("Einstellungen", 630, 434, 186, 126)
GUISetBkColor($Color_White)
$CheckboxSAP = GUICtrlCreateCheckbox("CheckboxSAP", 48, 72, 17, 17)
$Checkbox_Integra = GUICtrlCreateCheckbox("Checkbox_Integra", 48, 104, 17, 17)
$Checkbox_Visu = GUICtrlCreateCheckbox("Checkbox_Visu", 48, 136, 17, 17)
$Checkbox_Monitor = GUICtrlCreateCheckbox("Checkbox_Monitor", 48, 168, 17, 17)
$Checkbox_Lotus = GUICtrlCreateCheckbox("Checkbox_Lotus", 48, 200, 17, 17)
$SAP = GUICtrlCreateInput("SAP", 72, 72, 105, 21)
$Integraview = GUICtrlCreateInput("IntegraView", 72, 104, 105, 21)
$Visu = GUICtrlCreateInput("ExtraVisu", 72, 136, 105, 21)
$Monitor = GUICtrlCreateInput("All in One Monitor", 72, 168, 105, 21)
$Input1_3 = GUICtrlCreateInput("Lotus Notes", 72, 200, 105, 21)
$Button_Save = GUICtrlCreateButton("Speichern", 48, 288, 121, 33)
$Button_clear = GUICtrlCreateButton("Verwerfen", 200, 288, 123, 33)
$Input2 = GUICtrlCreateInput("Bitte hier auswählen, was geöffnet werden soll.", 288, 40, 273, 21)
$Checkbox_Citrix = GUICtrlCreateCheckbox("Checkbox_Citrix", 48, 40, 17, 17)
$Input3_3 = GUICtrlCreateInput("Citirx Domäne", 72, 37, 105, 21)
$Checkbox_SB = GUICtrlCreateCheckbox("Checkbox_SB", 48, 232, 17, 17)
$Input4_3 = GUICtrlCreateInput("Schichtbuch", 72, 232, 105, 21)
$Input2_3 = GUICtrlCreateInput("Bitte hier auswählen, was geöffnet werden soll.", 288, 40, 273, 21)
GUISetState(@SW_HIDE)
#EndRegion ### END Koda GUI section ###
$hMenu_einstellungen = DllCall("user32.dll", "hwnd", "GetSystemMenu", "hwnd", $Form3, "int", 0)
DllCall("user32.dll", "hwnd", "EnableMenuItem", "hwnd", $hMenu_einstellungen[0], "int", 0xF060, "int", 0x1)
#Region ### START Koda GUI section ### Form=P:\Bremen\Bremen-DFS\AKL\Instandhaltung\Vorarbeiter\Dierksen\AutoIT\administration.kxf
$Form_admin = GUICreate("Administration", 755, 521, 265, 242)
GUISetBkColor($Color_White)
$ini_read_ini=iniread("H:\pfad.ini", "ini", "wert", "")
$ini_read_lotus=iniread("H:\pfad.ini", "lotus", "wert", "")
$ini_read_visu=iniread("H:\pfad.ini", "visu", "wert", "")
$ini_read_monitor=iniread("H:\pfad.ini", "monitor", "wert", "")
$ini_read_integra=iniread("H:\pfad.ini", "integra", "wert", "")
$ini_read_citrix=iniread("H:\pfad.ini", "citrix", "wert", "")
$ini_read_SB=iniread("H:\pfad.ini", "SB", "wert", "")
$ini_read_sap=iniread("H:\pfad.ini", "sap", "wert", "")
$ini_pfad = GUICtrlCreateInput($ini_read_ini, 48, 64, 153, 21)
$Input_ini = GUICtrlCreateInput("Pfad der Ini Dateien", 48, 32, 153, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_READONLY))
$Input_lotus = GUICtrlCreateInput("Pfad von Lotus", 48, 96, 153, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_READONLY))
$Lotus_pfad = GUICtrlCreateInput($ini_read_lotus, 48, 128, 153, 21)
$Input_monitor = GUICtrlCreateInput("Pfad vom All-in-One", 45, 160, 153, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_READONLY))
$monitor_pfad = GUICtrlCreateInput($ini_read_monitor, 45, 192, 153, 21)
$Input_visu = GUICtrlCreateInput("Pfad der ExtraVisu", 45, 224, 153, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_READONLY))
$visu_pfad = GUICtrlCreateInput($ini_read_visu, 45, 256, 153, 21)
$citrix_pfad = GUICtrlCreateInput($ini_read_citrix, 293, 64, 153, 21)
$Input_receiver = GUICtrlCreateInput("Pfad vom Citrix Receiver", 293, 32, 153, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_READONLY))
$Input_SB = GUICtrlCreateInput("Pfad vom Schichtbuch", 293, 160, 153, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_READONLY))
$pfad_SB = GUICtrlCreateInput($ini_read_SB, 293, 192, 153, 21)
$Input_SAP = GUICtrlCreateInput("Pfad von SAP", 293, 96, 153, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_READONLY))
$sap_pfad = GUICtrlCreateInput($ini_read_sap, 293, 128, 153, 21)
$pfad_integra = GUICtrlCreateInput($ini_read_integra, 293, 256, 153, 21)
$Input_Integra = GUICtrlCreateInput("Pfad von Integraview", 293, 224, 153, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_READONLY))
$Admin_speichern = GUICtrlCreateButton("Speichern", 48, 336, 129, 41)
$Admin_abbruch = GUICtrlCreateButton("Verwerfen", 208, 336, 129, 41)
$Button_ini_pfad = GUICtrlCreateButton("...", 216, 64, 25, 25)
$Button_pfad_lotus = GUICtrlCreateButton("...", 216, 128, 25, 25)
$Button_pfad_visu = GUICtrlCreateButton("...", 216, 256, 25, 25)
$Button_pfad_monitor = GUICtrlCreateButton("...", 216, 192, 25, 25)
$Button_pfad_citrix = GUICtrlCreateButton("...", 461, 64, 25, 25)
$Button_pfad_sap = GUICtrlCreateButton("...", 461, 128, 25, 25)
$Button_pfad_integra = GUICtrlCreateButton("...", 461, 256, 25, 25)
$Button_pfad_SB = GUICtrlCreateButton("...", 461, 192, 25, 25)
GUISetState(@SW_HIDE)
#EndRegion ### END Koda GUI section ###
$hMenu_Admin = DllCall("user32.dll", "hwnd", "GetSystemMenu", "hwnd", $Form_admin, "int", 0)
DllCall("user32.dll", "hwnd", "EnableMenuItem", "hwnd", $hMenu_Admin[0], "int", 0xF060, "int", 0x1)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
IniWrite("H:\AutoIT.ini", "Start", "wert", "inaktiv")
Exit
Case $Button1
;GUISetState(@SW_SHOW,$Form2)
If _IsChecked($Checkbox1) Then
IniWrite("H:\AutoIT.ini", "login", "wert", "aktiv")
_start()
Else
IniWrite("H:\AutoIT.ini", "login", "wert", "Inaktiv")
GUISetState(@SW_SHOW,$Form2)
EndIf
_check_login()
case $Button2
IniWrite("H:\AutoIT.ini", "Start", "wert", "inaktiv")
Exit
case $Button3
GUISetState(@SW_SHOW,$Form3)
_check_ini()
_disable_checkbox()
case $checkbox1
if ControlCommand("Form1_1", "", "Checkbox1", "IsChecked", "") = 0 then
GUICtrlSetState($Checkbox1, $GUI_DISABLE)
Else
endif
Case $Button_clear
GUISetState(@SW_HIDE,$Form3)
Case $Abbruch
GUISetState(@SW_HIDE,$Form2)
case $Button_Save
_Save_ini()
GUISetState(@SW_HIDE,$Form3)
case $Attacke
_save_login()
_Start()
IniWrite("H:\AutoIT.ini", "Start", "wert", "aktiv")
anfang()
ultravnc_button()
GUISetState(@SW_HIDE,$Form2)
case $Checkbox_Citrix
_enable_checkbox()
case $Button_admin
Password_Administration()
Case $Button_ini_pfad
$Path_ini = FileSelectFolder("Lümmeltüte",@ScriptDir,3,@ScriptDir)
If Not @error Then GUICtrlSetData($ini_pfad,$Path_ini)
Case $Button_pfad_lotus
$Path_lotus = FileOpenDialog("Lümmeltüte",@ScriptDir, "All (*.*)")
If Not @error Then GUICtrlSetData($lotus_pfad,$path_lotus)
Case $Button_pfad_citrix
$Path_citrix = FileOpenDialog("Lümmeltüte",@ScriptDir, "All (*.*)")
If Not @error Then GUICtrlSetData($citrix_pfad,$path_citrix)
Case $Button_pfad_SB
$Path_SB = FileOpenDialog("Lümmeltüte",@ScriptDir, "All (*.*)")
If Not @error Then GUICtrlSetData($pfad_SB,$path_SB)
Case $Button_pfad_visu
MsgBox(0x10,"Info","UNC Pfade bitte manuell eintragen.")
Case $Button_pfad_monitor
MsgBox(0x10,"Info","UNC Pfade bitte manuell eintragen.")
Case $Button_pfad_integra
MsgBox(0x10,"Info","UNC Pfade bitte manuell eintragen.")
Case $Button_pfad_sap
MsgBox(0x10,"Info","UNC Pfade bitte manuell eintragen.")
Case $Admin_abbruch
GUISetState(@SW_HIDE,$Form_admin)
case $Admin_speichern
$Path_visu = GUICtrlRead($visu_pfad)
IniWrite("H:\pfad.ini", "visu", "wert", $Path_visu)
$Path_monitor = GUICtrlRead($monitor_pfad)
IniWrite("H:\pfad.ini", "monitor", "wert", $Path_monitor)
$Path_integra = GUICtrlRead($pfad_integra)
IniWrite("H:\pfad.ini", "integra", "wert", $Path_integra)
$Path_citrix = GUICtrlRead($citrix_pfad)
IniWrite("H:\pfad.ini", "citrix", "wert", $path_citrix)
$Path_ini = GUICtrlRead($ini_pfad)
IniWrite("H:\pfad.ini", "ini", "wert", $Path_ini)
$Path_SB = GUICtrlRead($pfad_SB)
IniWrite("H:\pfad.ini", "SB", "wert", $Path_SB)
$Path_lotus = GUICtrlRead($lotus_pfad)
IniWrite("H:\pfad.ini", "lotus", "wert", $Path_lotus)
$Path_sap = GUICtrlRead($sap_pfad)
IniWrite("H:\pfad.ini", "sap", "wert", $Path_sap)
GUISetState(@SW_HIDE,$Form_admin)
EndSwitch
WEnd
func anfang()
$login_check = iniread("H:\AutoIT.ini", "login", "wert", "aktiv")
If $login_check="aktiv" Then
GUICtrlSetState($Checkbox1, $GUI_CHECKED)
Else
GUICtrlSetState($Checkbox1, $GUI_UNCHECKED)
EndIf
EndFunc
Func ultravnc_button()
$start_check = iniread("H:\AutoIT.ini", "Start", "wert", "aktiv")
$citrix_check = iniread("H:\AutoIT.ini", "Citrix", "wert", "aktiv")
If $start_check="aktiv" And $citrix_check="aktiv" Then
GUICtrlSetState($Button4, $GUI_ENABLE)
Else
GUICtrlSetState($Button4, $GUI_DISABLE)
EndIf
EndFunc
Func Password_Administration()
local $pwd
$pwd = InputBox( "Password", "Please type in the", "Password","*", 230 , 120)
;GUISetState()
;If $pwd = "daspasswort" Then
If @error = 1 Then
;Exit
GUISetState(@SW_HIDE,$Form_admin)
Else
If $pwd = "" Then
GUISetState(@SW_SHOW,$Form_admin)
Else
GUISetState(@SW_HIDE,$Form_admin)
Msgbox(0,"","Falsches Passwort")
EndIf
EndIf
EndFunc
Func _Save_ini()
if BitAnd(GUICtrlRead($CheckboxSAP),$GUI_CHECKED) = $GUI_CHECKED then
IniWrite("H:\AutoIT.ini", "SAP", "wert", "aktiv")
else
IniWrite("H:\AutoIT.ini", "SAP", "wert", "Inaktiv")
EndIf
if BitAnd(GUICtrlRead($Checkbox_Integra),$GUI_CHECKED) = $GUI_CHECKED then
IniWrite("H:\AutoIT.ini", "Integra", "wert", "aktiv")
else
IniWrite("H:\AutoIT.ini", "Integra", "wert", "Inaktiv")
EndIf
if BitAnd(GUICtrlRead($Checkbox_Lotus),$GUI_CHECKED) = $GUI_CHECKED then
IniWrite("H:\AutoIT.ini", "Lotus", "wert", "aktiv")
else
IniWrite("H:\AutoIT.ini", "Lotus", "wert", "Inaktiv")
EndIf
if BitAnd(GUICtrlRead($Checkbox_Visu),$GUI_CHECKED) = $GUI_CHECKED then
IniWrite("H:\AutoIT.ini", "Visu", "wert", "aktiv")
else
IniWrite("H:\AutoIT.ini", "Visu", "wert", "Inaktiv")
EndIf
if BitAnd(GUICtrlRead($Checkbox_Monitor),$GUI_CHECKED) = $GUI_CHECKED then
IniWrite("H:\AutoIT.ini", "Monitor", "wert", "aktiv")
else
IniWrite("H:\AutoIT.ini", "Monitor", "wert", "Inaktiv")
EndIf
if BitAnd(GUICtrlRead($Checkbox_Citrix),$GUI_CHECKED) = $GUI_CHECKED then
IniWrite("H:\AutoIT.ini", "Citrix", "wert", "aktiv")
else
IniWrite("H:\AutoIT.ini", "Citrix", "wert", "Inaktiv")
EndIf
if BitAnd(GUICtrlRead($Checkbox_SB),$GUI_CHECKED) = $GUI_CHECKED then
IniWrite("H:\AutoIT.ini", "Schichtbuch", "wert", "aktiv")
else
IniWrite("H:\AutoIT.ini", "Schichtbuch", "wert", "Inaktiv")
EndIf
FileSetAttrib("H:\AutoIT.ini", "+S")
EndFunc
Func _check_ini()
$SAP=iniread("H:\AutoIT.ini", "SAP", "wert", "aktiv")
$integra=iniread("H:\AutoIT.ini", "Integra", "wert", "aktiv")
$Lotus=iniread("H:\AutoIT.ini", "Lotus", "wert", "aktiv")
$Visu=iniread("H:\AutoIT.ini", "Visu", "wert", "aktiv")
$Monitor=iniread("H:\AutoIT.ini", "Monitor", "wert", "aktiv")
$Citrix=iniread("H:\AutoIT.ini", "Citrix", "wert", "aktiv")
$Schichtbuch=iniread("H:\AutoIT.ini", "Schichtbuch", "wert", "aktiv")
If $SAP="aktiv" Then
GUICtrlSetState($CheckboxSAP, $GUI_CHECKED)
Else
GUICtrlSetState($CheckboxSAP, $GUI_UNCHECKED)
EndIf
If $integra="aktiv" Then
GUICtrlSetState($Checkbox_Integra, $GUI_CHECKED)
Else
GUICtrlSetState($Checkbox_Integra, $GUI_UNCHECKED)
EndIf
If $Lotus="aktiv" Then
GUICtrlSetState($Checkbox_Lotus, $GUI_CHECKED)
Else
GUICtrlSetState($Checkbox_Lotus, $GUI_UNCHECKED)
EndIf
If $Visu="aktiv" Then
GUICtrlSetState($Checkbox_Visu, $GUI_CHECKED)
Else
GUICtrlSetState($Checkbox_Visu, $GUI_UNCHECKED)
EndIf
If $Monitor="aktiv" Then
GUICtrlSetState($Checkbox_Monitor, $GUI_CHECKED)
Else
GUICtrlSetState($Checkbox_Monitor, $GUI_UNCHECKED)
EndIf
If $Citrix="aktiv" Then
GUICtrlSetState($Checkbox_Citrix, $GUI_CHECKED)
Else
GUICtrlSetState($Checkbox_Citrix, $GUI_UNCHECKED)
EndIf
If $Schichtbuch="aktiv" Then
GUICtrlSetState($Checkbox_SB, $GUI_CHECKED)
Else
GUICtrlSetState($Checkbox_SB, $GUI_UNCHECKED)
EndIf
EndFunc
Func _save_login()
if BitAnd(GUICtrlRead($Checkbox_login),$GUI_CHECKED) = $GUI_CHECKED then
IniWrite("H:\AutoIT.ini", "login", "wert", "aktiv")
GUICtrlSetState($Checkbox1, $GUI_ENABLE)
else
IniWrite("H:\AutoIT.ini", "login", "wert", "Inaktiv")
GUICtrlSetState($Checkbox1, $GUI_DISABLE)
EndIf
EndFunc
Func _check_login()
$login=iniread("H:\AutoIT.ini", "login", "wert", "aktiv")
If $login="aktiv" Then
GUICtrlSetState($Checkbox_login, $GUI_CHECKED)
GUICtrlSetState($Checkbox1, $GUI_CHECKED)
Else
GUICtrlSetState($Checkbox_login, $GUI_UNCHECKED)
GUICtrlSetState($Checkbox1, $GUI_UNCHECKED)
EndIf
EndFunc
Func _disable_checkbox()
if BitAnd(GUICtrlRead($Checkbox_Citrix),$GUI_CHECKED) = $GUI_CHECKED then
Else
GUICtrlSetState($CheckboxSAP, $GUI_DISABLE)
GUICtrlSetState($Checkbox_Integra, $GUI_DISABLE)
GUICtrlSetState($Checkbox_Visu, $GUI_DISABLE)
GUICtrlSetState($Checkbox_Monitor, $GUI_DISABLE)
GUICtrlSetState($CheckboxSAP, $GUI_UNCHECKED)
GUICtrlSetState($Checkbox_Integra, $GUI_UNCHECKED)
GUICtrlSetState($Checkbox_Visu, $GUI_UNCHECKED)
GUICtrlSetState($Checkbox_Monitor, $GUI_UNCHECKED)
EndIf
EndFunc
Func _enable_checkbox()
if BitAnd(GUICtrlRead($Checkbox_Citrix),$GUI_CHECKED) = $GUI_CHECKED then
GUICtrlSetState($CheckboxSAP, $GUI_ENABLE)
GUICtrlSetState($Checkbox_Integra, $GUI_ENABLE)
GUICtrlSetState($Checkbox_Visu, $GUI_ENABLE)
GUICtrlSetState($Checkbox_Monitor, $GUI_ENABLE)
Else
GUICtrlSetState($CheckboxSAP, $GUI_UNCHECKED)
GUICtrlSetState($Checkbox_Integra, $GUI_UNCHECKED)
GUICtrlSetState($Checkbox_Visu, $GUI_UNCHECKED)
GUICtrlSetState($Checkbox_Monitor, $GUI_UNCHECKED)
GUICtrlSetState($CheckboxSAP, $GUI_DISABLE)
GUICtrlSetState($Checkbox_Integra, $GUI_DISABLE)
GUICtrlSetState($Checkbox_Visu, $GUI_DISABLE)
GUICtrlSetState($Checkbox_Monitor, $GUI_DISABLE)
EndIf
EndFunc
func _start()
Ini_Write("Password","H:\passwd.ini","Section","Key", guictrlread($passwort))
Ini_Write("User","H:\passwd.ini","User","Key", guictrlread($Benutzername))
$Value = Ini_Read("Password","H:\passwd.ini","Section","Key")
$user = Ini_Read("User","H:\passwd.ini","User","Key")
Local $hwndCitrix, $timer
Local $sClass_btnOK = '[NAME:buttonOK]', $sClass_inpUser = '[NAME:textBoxUser]', $sClass_inpPW = '[NAME:textBoxPass]'
Local $sText_btnOK = '&Anmelden'
Run("C:\Program Files (x86)\Citrix\SelfServicePlugin\SelfService.exe -logon")
$hwndCitrix = WinWait("Citrix Receiver")
msgbox(0,"", $user)
$timer = TimerInit()
while ControlGetText($hwndCitrix, '', $sClass_btnOK) == $sText_btnOK
sleep(100)
$ret1 = ControlSetText($hwndCitrix, '', $sClass_inpUser, 'emea\' & $user)
$ret2 = ControlSetText($hwndCitrix, '', $sClass_inpPW, $Value)
;~ if ($ret1 = 0) or ($ret2 = 0) then ContinueLoop
if ($ret1 == '') or ($ret2 == '') then ContinueLoop
ControlClick($hwndCitrix, '', $sClass_btnOK)
sleep(1000)
Run("C:\Program Files (x86)\Citrix\SelfServicePlugin\SelfService.exe")
if TimerDiff($timer) > 5000 then _warten($hwndCitrix, $sClass_btnOK, $sText_btnOK)
Sleep(500)
wend
EndFunc
func _warten($hwndCitrix, $sClass_btnOK, $sText_btnOK)
MsgBox(0x10,"Fehler","Uuuups...da ist etwas schiefgelaufen. "& @CRLF & @CRLF & "Bitte beim Chef Melden und Daimlerdaten manuell eintragen.")
while ControlGetText($hwndCitrix, '', $sClass_btnOK) == $sText_btnOK
sleep(100)
wend
endfunc
Func Ini_Write($Password,$Filename,$Section,$Key,$Value)
_Crypt_Startup()
if @error Then Return SetError(1,@error,False)
$hKey =_Crypt_DeriveKey($Password,$CALG_RC4)
if @error Then Return SetError(2,@error,False)
$ByteStruct = DllStructCreate("BYTE[" & StringLen($Value) & "]")
DllStructSetData($ByteStruct,1,$Value)
$StrByte = String(DllStructGetData($ByteStruct,1))
$EncryptedValue = _Crypt_EncryptData($StrByte,$hKey,$CALG_USERKEY)
if @error Then Return SetError(3,@error,False)
IniWrite($Filename,$Section,$Key,$EncryptedValue)
if @error Then Return SetError(4,@error,False)
_Crypt_DestroyKey($hKey)
_Crypt_Shutdown()
Return SetError(0,0,True)
FileSetAttrib("H:\passwd.ini", "+S")
EndFunc
Func Ini_Read($Password,$Filename,$Section,$Key,$Default = "Benutzername")
$EncryptedValue = IniRead($Filename,$Section,$Key,$Default)
if $EncryptedValue == $Default Then Return SetError(1,0,$Default)
_Crypt_Startup()
if @error Then Return SetError(2,@error,$Default)
$hKey =_Crypt_DeriveKey($Password,$CALG_RC4)
if @error Then Return SetError(3,@error,$Default)
$Binary = _Crypt_DecryptData($EncryptedValue,$hKey,$CALG_USERKEY)
if @error Then Return SetError(4,@error,$Default)
$StrByte = BinaryToString($Binary)
if @error Then Return SetError(5,@error,$Default)
$ByteStruct = DllStructCreate("BYTE[" & BinaryLen($StrByte) & "]")
DllStructSetData($ByteStruct,1,$StrByte)
$CharStruct = _
DllStructCreate("CHAR[" & DllStructGetSize($ByteStruct) & "]",DllStructGetPtr($ByteStruct))
_Crypt_DestroyKey($hKey)
_Crypt_Shutdown()
Return SetError(0,0,DllStructGetData($CharStruct,1))
EndFunc
Func _citrix_run()
Run ( "C:\Program Files (x86)\Citrix\SelfServicePlugin\SelfService.exe")
EndFunc
Func _monitor_run()
EndFunc
Func _admin_save()
IniWrite("H:\pfad.ini", "ini", "wert", "aktiv")
EndFunc
Alles anzeigen
ab zeile 392 ist der Login teil...
und naja, dass da funktionslose zeilen drin sind ist mir bewusst....habe an mehreren seiten angefangen und das sind meine ersten versuche "ohne" hilfe (außer vom bitnugger hier aus dem forum mit dem controlsettext)
habe zuviel vba geschrieben
danke trotzdem
hmmm, ich glaube ich bin gerade zur traurigen Erkenntnis gekommen, dass unsere IT doof ist...denn sie wussten nicht, was sie tun...
wenn die controlsettext Aktion nicht hinhaut, soll das Script nach 5 Sekunden ja in die Warteschleife gehen. Das wird ja über eine IF Abfrage mit Controlgettext abgefragt. Die Warteschleife habe ich um eine MSGbox erweitert. Sollte also die Warteschleife gestartet werden, sollte die MSGBox erscheinen....tut sie aber nicht...
func _warten($hwndCitrix, $sClass_btnOK, $sText_btnOK)
MsgBox(0x10,"Fehler","Uuuups...da ist etwas schiefgelaufen. "& @CRLF & @CRLF & "Bitte beim Chef melden und die Daten manuell eintragen.")
while ControlGetText($hwndCitrix, '', $sClass_btnOK) == $sText_btnOK
sleep(100)
wend
endfunc
über die abfrage des Inputs hat es bis dato hingehauen....bin also gerade am grübeln, weil dieses ja auch control befehl ist, was ich für eine alternative habe
ich ochse....habe es gerade selber bemerkt, dass man die in der ersten Funktion quasi losschicken muss und in der zweiten annehmen ![]()
danke fürs erste...nun geht's ans testen ![]()
ich schäme mich zu fragen, doch wie bekomme ich mehrere variablen übergeben? denn jetzt meckert er logischerweise beim $sClass_btnOK das sich nicht deklariert ist...mit
func _warten($hwndCitrix, $sClass_btnOK)
geht es leider nicht... ![]()
teste ich gleich. DAAANKE ![]()
Lieben Gruß tommii
hi
so sollte es funktionieren...
AutoIt Alles anzeigenLocal $hwndCitrix, $timer Local $sClass_btnOK = '[NAME:buttonOK]', $sClass_inpUser = '[NAME:textBoxUser]', $sClass_inpPW = '[NAME:textBoxPass]' Local $sText_btnOK = '&Anmelden' Run("C:\Program Files (x86)\Citrix\SelfServicePlugin\SelfService.exe -logon") $hwndCitrix = WinWait("Citrix Receiver") $timer = TimerInit() while ControlGetText($hwndCitrix, '', $sClass_btnOK) == $sText_btnOK sleep(100) $ret1 = ControlSetText($hwndCitrix, '', $sClass_inpUser, 'emea\' & $user) $ret2 = ControlSetText($hwndCitrix, '', $sClass_inpPW, $Value) if ($ret1 = 0) or ($ret2 = 0) then ContinueLoop ControlClick($hwndCitrix, '', $sClass_btnOK) if TimerDiff($timer) > 5000 then _warten() Sleep(500) wend func _warten() while ControlGetText($hwndCitrix, '', $sClass_btnOK) == $sText_btnOK sleep(100) wend endfunc
hi 4ern...ich stehe gerade etwas auf dem schlauch, das einzubetten, da ich das ganze ja schon in einer Funktion starte
....also meine ausgangssituation ist folgende:
func _start()
Ini_Write("Password","H:\passwd.ini","Section","Key", guictrlread($passwort))
Ini_Write("User","H:\passwd.ini","User","Key", guictrlread($Benutzername))
$Value = Ini_Read("Password","H:\passwd.ini","Section","Key")
$user = Ini_Read("User","H:\passwd.ini","User","Key")
Run("C:\Program Files (x86)\Citrix\SelfServicePlugin\SelfService.exe -logon")
sleep(500)
WinWaitActive("Citrix Receiver")
sleep (500)
ControlSetText("Citrix Receiver", "", "[NAME:textBoxUser]", "emea\" & $user)
ControlSetText("Citrix Receiver", "", "[NAME:textBoxPass]", $Value)
sleep(500)
$check_input = ControlGetText("Citrix Receiver", "", "[NAME:textBoxUser]")
If $check_input == '' Then
MsgBox(0x10,"Fehler","Uuuups...da ist etwas schiefgelaufen. "& @CRLF & @CRLF & "Bitte beim Chef Melden und Daimlerdaten manuell eintragen.")
call ("warten")
Else
ControlClick("Citrix Receiver", "", "[NAME:buttonOK]")
EndIf
sleep(5000)
Run("C:\Program Files (x86)\Citrix\SelfServicePlugin\SelfService.exe")
EndFunc
Func warten()
While ControlCommand("Citrix Receiver", "", "[NAME:buttonOK]", "IsChecked") ;~ solange der Anmeldebutton nicht gedrückt wurde ---> warten
Sleep(10)
WEnd
MsgBox(0,"","Angemeldet")
EndFunc
Alles anzeigen
wenn ich meinen teil jetzt durch deinen teil ersetze, bekomme ich einen fehler: also erstmal hier der code mit deinem entwurf:
func _start()
Ini_Write("Password","H:\passwd.ini","Section","Key", guictrlread($passwort))
Ini_Write("User","H:\passwd.ini","User","Key", guictrlread($Benutzername))
$Value = Ini_Read("Password","H:\passwd.ini","Section","Key")
$user = Ini_Read("User","H:\passwd.ini","User","Key")
Local $hwndCitrix, $timer
Local $sClass_btnOK = '[NAME:buttonOK]', $sClass_inpUser = '[NAME:textBoxUser]', $sClass_inpPW = '[NAME:textBoxPass]'
Local $sText_btnOK = '&Anmelden'
Run("C:\Program Files (x86)\Citrix\SelfServicePlugin\SelfService.exe -logon")
$hwndCitrix = WinWait("Citrix Receiver")
$timer = TimerInit()
while ControlGetText($hwndCitrix, '', $sClass_btnOK) == $sText_btnOK
sleep(100)
$ret1 = ControlSetText($hwndCitrix, '', $sClass_inpUser, 'emea\' & $user)
$ret2 = ControlSetText($hwndCitrix, '', $sClass_inpPW, $Value)
if ($ret1 = 0) or ($ret2 = 0) then ContinueLoop
ControlClick($hwndCitrix, '', $sClass_btnOK)
if TimerDiff($timer) > 5000 then _warten()
Sleep(500)
wend
EndFunc
func _warten()
while ControlGetText($hwndCitrix, '', $sClass_btnOK) == $sText_btnOK
sleep(100)
wend
endfunc
Alles anzeigen
der fehler:
in Zeile 27: "P:\Bremen\[...]\abc.au3"(420,34) : warning: $hwndCitrix: possibly used before declaration.
liegt das an der "lokalen" Deklaration der variabeln, da ich sie in einer Funktion danach wieder anspreche? Wenn ja, wie mache ich sie global?...danke im voraus ![]()
Klasse danke, ich Check das auf der Arbeit nachher fix und melde mich dann. Vielen dank
Lieben Gruß tommii
sodele ja die if abfrage funktioniert und den call befehl habe ich entfernt...leider bin ich mit der schleife noch nicht weiter...
also wenn kein control gefunden wurde, möchte ich in eine schleife, bis der okay button gedrückt wurde
Title: Citrix Receiver Class: WindowsForms10.Window.8.app.0.17ad52b Position: 746, 366 Size: 428, 307 Style: 0x16C80000 ExStyle: 0x00050101 Handle: 0x00000000000A06EA >>>> Control <<<< Class: WindowsForms10.BUTTON.app.0.17ad52b Instance: 1 ClassnameNN: WindowsForms10.BUTTON.app.0.17ad52b1 Name: buttonOK Advanced (Class): [NAME:buttonOK] ID: 2034324 Text: &Anmelden Position: 140, 191 Size: 85, 23 ControlClick Coords: 49, 14 Style: 0x56012F01 ExStyle: 0x00000000 Handle: 0x00000000001F0A94 >>>> Mouse <<<< Position: 938, 596 Cursor ID: 0 Color: 0x569BDA >>>> StatusBar <<<< >>>> ToolsBar <<<< >>>> Visible Text <<<< &Anmelden Abbrechen Melden Sie sich an 'wiportal-e067' an. &Domäne\Benutzer: &Kennwort:
Meine programmierkenntnisse kommen aus visual basic....Deswegen call ![]()
Naja aber wenn der error sagt nichts übertragen muss ich ja in die warte schleife weil sonst wird das Script ja weiter ausgeführt.....Und da hart es bei mir...Ich versuche es nachher auf der Arbeit mal aber falls jemand da noch nen Ansatz hat wäre ich dankbar
Lieben Gruß tommii
Ahoi Matrosen. Nachdem mir hier schon mal so gut geholfen wurde, wende ich mich nochmals an euch, da ich ein wenig auf dem Schlauch stehe. Also
In der Firma arbeiten wir mit dem Citrix XenApp Protal...in dieses logge ich mich automatisch mit folgendem Code ein
Run("C:\Program Files (x86)\Citrix\SelfServicePlugin\SelfService.exe -logon")
sleep(500)
WinWaitActive("Citrix Receiver")
sleep (500)
ControlSetText("Citrix Receiver", "", "[NAME:textBoxUser]", "emea\" & $user)
ControlSetText("Citrix Receiver", "", "[NAME:textBoxPass]", $Value)
sleep(500)
wobei in Zeile 5 $user mein username ist und in Zeile 6 $value das Passwort
so zu meinem Problem...ab und zu spinnen unsere IT Admins und die Gruppenrichtlinien hauen nicht richtig hin. Dann kommt es vor, dass der Befehl ControlSetText einfach keine Daten überträgt. Für den Fall möchte ich eine Abfrage der Inputfelder. Das klappt auch, doch die Warteschleife, bis der Logonbutton manuell gedrückt wird, hängt sich ewig aus...hier mal der komplette codeabschnitt
Run("C:\Program Files (x86)\Citrix\SelfServicePlugin\SelfService.exe -logon")
sleep(500)
WinWaitActive("Citrix Receiver")
sleep (500)
ControlSetText("Citrix Receiver", "", "[NAME:textBoxUser]", "emea\" & $user)
ControlSetText("Citrix Receiver", "", "[NAME:textBoxPass]", $Value)
sleep(500)
$check_input = ControlGetText("Citrix Receiver", "", "[NAME:textBoxUser]")
If $check_input == '' Then
MsgBox(0x10,"Fehler","Uuuups...da ist etwas schiefgelaufen. "& @CRLF & @CRLF & "Bitte beim Chef Melden und Daimlerdaten manuell eintragen.")
call ("warten")
Else
ControlClick("Citrix Receiver", "", "[NAME:buttonOK]")
EndIf
sleep(5000)
Func warten()
While ControlCommand("Citrix Receiver", "", "[NAME:buttonOK]", "IsChecked") ;~ solange der Anmeldebutton nicht gedrückt wurde ---> warten
Sleep(10)
WEnd
MsgBox(0,"","Angemeldet")
EndFunc
Alles anzeigen
haut nicht hin...hier nochmal die Window Infos vom Okaybutton
dankt vielmals im Voraus für eure Hilfe...
der tommii
eine letzte "Frage" zu speziell diesem Thema. Bei uns auf der Arbeit haben wir zwei Rechner Systeme (Ich bin bei Firma A und über Citrix greifen wir auf die Rechner von Firma B zu, wobei wir für beide Firmen Accounts + rechner zur Verfügung haben)...Bei Firma B klappen die Programme (als Beispiel das von Bitnugger mit dem Selbsterstellen controlfenster + controlsettext)...bei Firma a wird der Befehl "ControlSetText" gekonnt ignoriert, alles andere wird ausgeführt...
ist das IT Technisch möglich bzw. kann sich das jemand erklären=?
danke im voraus
tommii
asche auf meinen kopf...ich hätte schwören können, dass wir es gestern schon so probiert haben...vllt. war es einfach nur die 1 Sekunden Verzögerung, die nun zum erfolg führt. fakt ist eh geht jetzt ![]()
vielen dank ![]()