Vielen Dank für die Tips.
@ Schnitzel
Hab es umgesetzt und nur auf die Treeview beschränkt.
Local $buttoncontext = GUICtrlCreateContextMenu($TreeView1)
[/autoit]@ Kanashius
Ich bin Froh das ich das mit einer InI mach. Sehr vorteilhaft. Er schreibt gleich alles so auf ichs baue.
Mein Großes Problem wurde wirklich behoben mit
GUIRegisterMsg($WM_COMMAND, "MY_WM_COMMAND")
und die While inhalte sind nun in einer Funktion.
Zum Thema Drag and Drop hab ich auch was gefunden, konnte aber es noch nicht umsetzen. Komme später dazu. So ich hab noch ein paar Fehler drinnen, die ich jetzt erstmal ausmerzen muss.
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <TreeViewConstants.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GuiTreeView.au3>
#include <Array.au3>
If FileExists(@ScriptDir &"\Folder Icon.JPG") Then
FileInstall(@ScriptDir &"\Folder Icon.JPG", @ScriptDir &"\Folder Icon.JPG")
EndIf
If FileExists(@ScriptDir &"\Session Icon.JPG") Then
FileInstall(@ScriptDir &"\Session Icon.JPG", @ScriptDir &"\Session Icon.JPG")
EndIf
Opt("GUIDataSeparatorChar", "")
#Region ### START Koda GUI section ### Form=c:\hans busch\daimler\programme (anwendungen)\portableapps\autoit3\app\autoit\skripte\pergon cfg\koda_1.7.3.0\forms\mobaxtermcreateinigui.kxf
$Form1_1 = GUICreate("MobaXterm Create INI", 1265, 879, 266, 124)
$Menu1 = GUICtrlCreateMenu("Start")
$MenuItem1 = GUICtrlCreateMenuItem("Beenden", $Menu1)
$TreeView1 = GUICtrlCreateTreeView(8, 8, 265, 825)
$TreeView1_0 = GUICtrlCreateTreeViewItem("Sessions", $TreeView1)
Local $buttoncontext = GUICtrlCreateContextMenu($TreeView1)
;$buttoncontext = GUICtrlCreateContextMenu($TreeView1_0)
$buttonitemIP = GUICtrlCreateMenuitem("Import Vorlagen aus Textdatei", $buttoncontext)
$buttonitemGA = GUICtrlCreateMenuitem("Gruppe Anlegen", $buttoncontext)
$buttonitemIA = GUICtrlCreateMenuitem("Item Anlegen", $buttoncontext)
$Tab1 = GUICtrlCreateTab(288, 8, 969, 825)
GUICtrlSetFont(-1, 12, 400, 0, "Modern No. 20")
If FileExists(@ScriptDir &"\Folder Icon.JPG") Then
$TabSheet1 = GUICtrlCreateTabItem("Folder Icons List for chose Icon Number")
$Pic3 = GUICtrlCreatePic(@ScriptDir &"\Folder Icon.JPG", 304, 51, 692, 268)
EndIf
If FileExists(@ScriptDir &"\Session Icon.JPG") Then
$TabSheet2 = GUICtrlCreateTabItem("Session Icons List for chose Icon Number")
$Pic1 = GUICtrlCreatePic(@ScriptDir &"\Session Icon.JPG", 307, 52, 932, 556)
EndIf
GUICtrlCreateTabItem("")
_GUICtrlTreeView_Expand($TreeView1)
GUISetState(@SW_SHOW)
$Form22 = GUICreate("Session Select", 490, 260, 313, 208)
$Label21 = GUICtrlCreateLabel("Wähle die Session aus:", 24, 24, 152, 22)
GUICtrlSetFont(-1, 12, 400, 0, "Modern No. 20")
$Combo21 = GUICtrlCreateCombo("", 24, 48, 441, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
$Label22 = GUICtrlCreateLabel("oder", 24, 72, 31, 22)
GUICtrlSetFont(-1, 12, 400, 0, "Modern No. 20")
$Input21 = GUICtrlCreateInput("", 24, 96, 441, 21)
$Button21 = GUICtrlCreateButton("OK", 328, 200, 139, 25)
;~ Sessions Typs:
;~ Bash [Local]
;~ Host (User) [RDP]
;~ Hostname (Username) [SFTP]
;~ Hostname [VNC]
;~ Hostname aktiv (Username) [FTP]
;~ Hostname passiv (Username) [FTP]
;~ Ordner [Url]
;~ ping [Local] (1)
;~ ssh_1 [SSH]
;~ SSO Konfig.docx [Url]
;~ telnet_1 (Username) [Telnet]
;~ http://www.google.de [Url]
$Combo22 = GUICtrlCreateCombo("", 24, 136, 145, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
; Set max number of combo elements
Global $iMaxList = 14
; Initialise combo list
Global $iComboCount = 13
Global $aComboArray[$iMaxList] = ["Session Typ","Bash","CMD","RDP","SFDP","VNC","FTP aktiv","FDP Passiv","URL","SSH","Telnet","Dokument","Ordner_Explorer"]
; Clear existing combo data
GUICtrlSetData($Combo22, "")
; Loop through list inserting elements into combo
For $i = 0 To $iComboCount - 1
GUICtrlSetData($Combo22, $aComboArray[$i])
Next
; Set the top element into the combo edit box
;_GUICtrlComboBox_SetEditText($Combo22, $aComboArray[0])
;GUICtrlSetData(-1, "Session Typ|Bash|CMD|RDP|SFDP|VNC|FTP aktiv|FDP Passiv|URL|SSH|Telnet|Dokument|Ordner_Explorer")
$Input22 = GUICtrlCreateInput("", 24, 192, 121, 21)
$Label23 = GUICtrlCreateLabel("Login (Optional):", 24, 168, 120, 22)
GUICtrlSetFont(-1, 12, 400, 0, "Modern No. 20")
;~ [Display]
;~ SidebarRight=0
;~ VisibleTabNum=1
;~ VisibleTabClose=1
;~ MenuAndButtons=2
;~ BtnType2=2
Iniwrite(@Scriptdir & "\MobaXterm.ini", "Display", "SidebarRight", 0 )
Iniwrite(@Scriptdir & "\MobaXterm.ini", "Display", "VisibleTabNum", 1 )
Iniwrite(@Scriptdir & "\MobaXterm.ini", "Display", "VisibleTabClose", 1 )
Iniwrite(@Scriptdir & "\MobaXterm.ini", "Display", "MenuAndButtons", 2 )
Iniwrite(@Scriptdir & "\MobaXterm.ini", "Display", "BtnType2", 2 )
;GUISetOnEvent($GUI_EVENT_DROPPED,"_Event_DragAndDrop",$FTPGui)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]#EndRegion ### END Koda GUI section ###
$counterGruppe = 0
$counterItem = 0
GUIRegisterMsg($WM_COMMAND, "MY_WM_COMMAND")
[/autoit] [autoit][/autoit] [autoit]While 1
WEnd
Func MY_WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
Local $nNotifyCode = BitShift($wParam, 16)
Local $nID = BitAND($wParam, 0x0000FFFF)
Local $hCtrl = $lParam
If $nID <> 2 And $nNotifyCode = 0 Then ; Prüft auf IDCANCEL - 2
; Ownerdrawn Buttons senden keine Nachricht wenn ENTER gedrückt wird
; Also, IDOK - 1 tritt auf, prüfe nun das Control mit dem aktuellen Fokus
If $nID = 1 Then
Local $hFocus = DllCall("user32.dll", "hwnd", "GetFocus")
Local $nCtrlID = DllCall("user32.dll", "int", "GetDlgCtrlID", "hwnd", $hFocus[0])
PostButtonClick($hWnd, $nCtrlID[0])
EndIf
Switch $nID
Case $MenuItem1 ;Close
Exit
Case $TreeView1
Case $buttonitemGA
$value = InputBox("Gruppe Anlegen", "Bitte geben Sie den Namen der Gruppe an.", "", " M20")
$value2 = InputBox("Bildnummer", "Bitte geben Sie Icon nummer an. Oder einfach OK", "52", " M2")
_GUICtrlTreeView_BeginUpdate($TreeView1)
$counterGruppe = $counterGruppe + 1
;$TreeView1_GA = _GUICtrlTreeView_AddChild($TreeView1, 0, StringFormat($value, $counterGruppe))
$TreeView1_GA = GUICtrlCreateTreeViewItem($value, GUICtrlRead($TreeView1))
_GUICtrlTreeView_EndUpdate($TreeView1)
;Prozedur um INI zu schreiben
;...
;~ Ordnerstrucktur:
;~ [Bookmarks_1]
;~ SubRep=ME
;~ ImgNum=41
;MsgBox(4160, "Information", _GUICtrlTreeView_GetTree($TreeView1) & "" & $value )
;SubRep=ME\Prismakonzentrator\TCP
Iniwrite(@Scriptdir & "\MobaXterm.ini", "Bookmarks_"&$counterGruppe, "SubRep", _GUICtrlTreeView_GetTree($TreeView1) & "" & $value )
Iniwrite(@Scriptdir & "\MobaXterm.ini", "Bookmarks_"&$counterGruppe, "ImgNum", $value2 )
ConsoleWrite ("Fertig"& @CRLF &".................................."& @CRLF)
Case $buttonitemIA
GUISetState(@SW_SHOW, $Form22)
Case $Button21
$combotext = GUICtrlRead($Combo21)
$inputtext = GUICtrlRead($Input21)
$combotext2 = GUICtrlRead($Combo22)
$inputtext2 = GUICtrlRead($Input22)
$value22 = InputBox("Bildnummer", "Bitte geben Sie Icon nummer an. Oder einfach OK", "103", " M3")
;~ [Verbindungsname] ([Loginname]) [Protokoll]=
_GUICtrlTreeView_BeginUpdate($TreeView1)
$counterItem = $counterItem + 1
;$TreeView1_GA = _GUICtrlTreeView_AddChild($TreeView1, 0, StringFormat($combotext & $inputtext & " ("&$inputtext2&")"& " ["&$combotext2&"]", $counterGruppe))
if $inputtext2 = "" Then
$TreeView1_IA = GUICtrlCreateTreeViewItem($combotext & $inputtext & " ["&$combotext2&"]", GUICtrlRead($TreeView1))
$merkeinhalt = $combotext & $inputtext & " ["&$combotext2&"]"
else
$TreeView1_IA = GUICtrlCreateTreeViewItem($combotext & $inputtext & " ("&$inputtext2&")"& " ["&$combotext2&"]", GUICtrlRead($TreeView1))
$merkeinhalt = $combotext & $inputtext & " ("&$inputtext2&")"& " ["&$combotext2&"]"
EndIf
_GUICtrlTreeView_EndUpdate($TreeView1)
;Prozedur um INI zu schreiben
;...
;~ Sessions Typs:
;~ Bash [Local]= #112#10%0%C:\%Commandline1%Commandline2%Commandline3%__DIEZE__%! Basch%@%$%__POURCENT__%&%?%<%>%__PIPE__%*%+%~%?MobaFont%10%0%0%0%0%236,236,236%0,0,0%180,180,192%0%-1%0%%xterm#0
If $combotext2 = "Bash" Then
;$counterGruppe Counter in Array + Prüfung?
Iniwrite(@Scriptdir & "\MobaXterm.ini", "Bookmarks_"&$counterGruppe, $merkeinhalt, "#"&$value22&"#10%0%"&$combotext & $inputtext&"%#MobaFont%10%0%0%0%0%236,236,236%0,0,0%180,180,192%0%-1%0%%xterm#0" )
EndIf
;~ Host (User) [RDP]= #91#4%Host%3389%User%0%-1%-1%-1%-1%0%0%-1%%%22%%-1%0#MobaFont%10%0%0%0%0%236,236,236%0,0,0%180,180,192%0%-1%0%%xterm#0
If $combotext2 = "RDP" Then
EndIf
;~ Hostname (Username) [SFTP]= #140#7%Hostname%22%Username%-1%-1%#MobaFont%10%0%0%0%0%236,236,236%0,0,0%180,180,192%0%-1%0%%xterm#0
If $combotext2 = "SFTP" Then
EndIf
;~ Hostname [VNC]= #128#5%Hostname%5900%-1%0%%22%#MobaFont%10%0%0%0%0%236,236,236%0,0,0%180,180,192%0%-1%0%%xterm#0
If $combotext2 = "VNC" Then
EndIf
;~ Hostname aktiv (Username) [FTP]= #130#6%Hostname%21%Username%0%#MobaFont%10%0%0%0%0%236,236,236%0,0,0%180,180,192%0%-1%0%%xterm#0
If $combotext2 = "FTP aktiv" Then
EndIf
;~ Hostname passiv (Username) [FTP]= #130#6%Hostname%21%Username%-1%#MobaFont%10%0%0%0%0%236,236,236%0,0,0%180,180,192%0%-1%0%%xterm#0
If $combotext2 = "FDP Passiv" Then
EndIf
;~ Ordner [Url]= #84#9%C:\Hans Busch#MobaFont%10%0%0%0%0%236,236,236%0,0,0%180,180,192%0%-1%0%%xterm#0
If $combotext2 = "Ordner->Explorer" Then
EndIf
;~ ping [Local] (1)= #112#10%1%C:\%ping -a avsh#MobaFont%10%0%0%0%0%236,236,236%0,0,0%180,180,192%0%-1%0%%xterm#0
If $combotext2 = "CMD" Then
EndIf
;~ ssh_1 [SSH]= #109#0%ssh_1%22%login%%-1%-1%%%22%%0%0#MobaFont%10%0%0%0%0%236,236,236%0,0,0%180,180,192%0%-1%0%%xterm#0
If $combotext2 = "SSH" Then
EndIf
;~ SSO Konfig.docx [Url]= #84#9%\\sstr120f.edc.corpintra.net\BUSCHH$\data\My Documents\SSO Konfig.docx#MobaFont%10%0%0%0%0%236,236,236%0,0,0%180,180,192%0%-1%0%%xterm#0
If $combotext2 = "Dokument" Then
EndIf
;~ telnet_1 (Username) [Telnet]= #98#1%telnet_1%23%Username%Extra options#MobaFont%10%0%0%0%0%236,236,236%0,0,0%180,180,192%0%-1%0%%xterm#0
If $combotext2 = "Telnet" Then
EndIf
;~ http://www.google.de [Url]= #84#9%http://www.google.de#MobaFont%10%0%0%0%0%236,236,236%0,0,0%180,180,192%0%-1%0%%xterm#0
If $combotext2 = "URL" Then
EndIf
ConsoleWrite ("Fertig"& @CRLF &".................................."& @CRLF)
GUISetState(@SW_HIDE, $Form22)
Case $buttonitemIP ;, $MenuItem1
$error = 0
$filetoreadselect = FileOpenDialog("Computerliste öffnen", @scriptdir & "", "Textdatei (*.txt)|All (*.*)")
$filetoread = FileOpen($filetoreadselect, 0)
ConsoleWrite ( " Open List....$filetoread"& $filetoread&@CRLF)
If $filetoread = -1 Then
MsgBox($MB_SYSTEMMODAL, "", "Unable to open file.")
$error = 1
EndIf
If $error = 0 Then
$lineComplete = ""
; Read in lines of text until the EOF is reached
While 1
Local $line = FileReadLine($filetoread)
If @error = -1 Then ExitLoop
$lineComplete = $lineComplete & "|" & $line
Wend
EndIf
FileClose($filetoread)
GUICtrlSetData($Combo21, $lineComplete )
ConsoleWrite ("Fertig"& @CRLF &".................................."& @CRLF)
EndSwitch
Return 0 ; Wird nur zurückgegeben, wenn Button gedrückt wurde
EndIf
; Führt die Standard 'Autoit3 internal message commands' aus.
; Man kann die Zeile auch komplett weglassen.
; !!! Jedoch nur 'Return' (ohne irgendeinen Wert) führt in Zukunft nicht
; Die Standard 'Autoit3 internal message commands' aus !!!
Return $GUI_RUNDEFMSG
EndFunc ;==>MY_WM_COMMAND