Beiträge von autoBert
-
-
Hallo MasterOfTime,
dann stell doch bitte bei deinen gelösten Threads gelöst, einfach eröffnungspost bearbeiten und den Präfix (nähe Überschrift) auf gelöst stellen, danke
mfg (Auto)Bert
-
Hallo manilus,
da es um die Downloadgeschwindigkeit geht, habe ich das Beispiel angepasst:
Spoiler anzeigen
[autoit]Global $nKPerSec, $tDiff, $iToDo, $iRTime, $nKBPerSec, $sMSG
[/autoit] [autoit][/autoit] [autoit]
Global $iSize = 86507 ;InetGetSize("http://www.autoit.de") ;siehe Hilfe zu InetgetSize
InetGet("http://www.autoit.de", @ScriptDir & "\Testdownload.htm", 1, 1)
Global $tStart = TimerInit()While @InetGetActive
[/autoit] [autoit][/autoit] [autoit]
If @InetGetBytesRead > 0 Then
_CalcPerformance()
TrayTip("downloading", $sMSG, 10, 16)
EndIf
Sleep(250)
WEnd
If @InetGetBytesRead > -1 Then
$iSize = @InetGetBytesRead ;damit die Größe für die Endabrechnung stimmt
_CalcPerformance()
TrayTip("downloading", $sMSG, 10, 16)
MsgBox(0, "Download erfolgreich", $sMSG)
Else
MsgBox(48, "Fehler", "Download nicht erfolgreich")
EndIfFunc _CalcPerformance()
[/autoit]
$tDiff = TimerDiff($tStart)
$iToDo = Round(($iSize - @InetGetBytesRead) / 1024, 2)
$nKBPerSec = Round(@InetGetBytesRead / $tDiff * 1000 / 1024, 2)
$iRTime = Round($iToDo / $nKBPerSec, 0)
$sMSG = "Bytes = " & @InetGetBytesRead & @CRLF & "KB/s = " & $nKBPerSec & @CRLF
If @InetGetActive Then
$sMSG = $sMSG & "verbleibende Zeit = " & $iRTime
Else
$sMSG = $sMSG & "benötigte Zeit = " & Round($tDiff / 1000, 2)
EndIf
EndFunc ;==>_CalcPerformanceEdit: kalkulierte Restdauer für Download eingefügt
mfg (Auto)Bert
-
Hallo doni_darco,
hier ein Skript dass die Files in ein 2D-Array einliest
Spoiler anzeigen
[autoit]#include <File.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <String.au3>
#include <Array.au3>
#include <GUIConstants.au3>Dim $arFiles[1][2]
[/autoit] [autoit][/autoit] [autoit]#cs ;<=============== wieder aktivieren
[/autoit] [autoit][/autoit] [autoit]$search = FileFindFirstFile("C:\Dokumente und Einstellungen\All Users\Dokumente\downloads\FNWeb\*.pdf")
[/autoit] [autoit][/autoit] [autoit]; Check if the search was successful
[/autoit] [autoit][/autoit] [autoit]
If $search = -1 Then
MsgBox(0, "Error", "No files/directories matched the search pattern")
Exit
EndIf$i = 0
[/autoit] [autoit][/autoit] [autoit]
While 1$file = FileFindNextFile($search)
[/autoit] [autoit][/autoit] [autoit]
If @error Then ExitLoop
$i= $i + 1
_ArrayAdd($arFiles,$file)
_createDateStr($arFiles[$i][0],$i)
WEndFileClose($search)
[/autoit] [autoit][/autoit] [autoit]#ce
[/autoit] [autoit][/autoit] [autoit];zum Testen eingefügt wieder löschen
[/autoit] [autoit][/autoit] [autoit]
Dim $arFiles[11][2]
$arFiles[1][0] = 'DVDpro4.0P_02.10.2009_DVD1'
$arFiles[2][0] = 'DVDpro3.9P_06.10.2009'
$arFiles[3][0] = 'DVDpro3.9P_05.10.2009'
$arFiles[4][0] = 'DVDpro4.0P_02.10.2009_DVD2'
$arFiles[5][0] = 'DVDpro3.9P_02.10.2009'
$arFiles[6][0] = 'DVD38pro_05.10.2009'
$arFiles[7][0] = 'DVD38pro_06.10.2009'
$arFiles[8][0] = 'DVD38pro_02.10.2009'
$arFiles[9][0] = 'DVD38pro_01.10.2009'
$arFiles[10][0] = 'DVDpro3.9P_01.10.2009'
_ArrayDisplay($arFiles)For $i = 1 To 10 ;UBound($arFiles)
[/autoit] [autoit][/autoit] [autoit]
_createDateStr($arFiles[$i][0], $i)
Next
;bis hier hierFunc _createDateStr($FileName, $ai)
[/autoit]
Local $pos, $sVergleich = $FileName, $iCount
StringReplace($FileName, ".", ".")
$iCount = @extended
Switch $iCount
Case 3
$pos = StringInStr($FileName, ".", 0, 2)
Case 2
$pos = StringInStr($FileName, ".", 0, 1)
EndSwitch
ConsoleWrite($i & " Count: " & $iCount & " pos: " & $pos & @CRLF)
$iTag = StringMid($FileName, $pos - 2, 2)
$iMonat = StringMid($FileName, $pos + 1, 2)
$iJahr = StringMid($FileName, $pos + 4, 4)
$iNr = StringMid($FileName, $pos + 8, 99)
$arFiles[$ai][1] = $iJahr & $iMonat & $iTag & $iNr
EndFunc ;==>_createDateStr
_ArraySort($arFiles, 0, 0, 0, 1)
_ArrayDisplay($arFiles)Durch die 2 Spalte kann jetzt problemlos ArraySort verwendet werden (ausser du hast noch mehr Ausnahmen, dann musst du diese in _createDateStr noch einfügen)
mfg (Auto)Bert
-
-
Hallo Dino,
den WinWait solltest du mit dem 3. (TimeOut-)Parameter benutzen:
Zitattimeout [optional] Maximale Unterbrechungsdauer nach der fortgefahren wird, auch wenn das Fenster noch nicht existiert.
. Den ControlClick führst du dann nur aus wenn das Fenster nicht existiert, also:
[autoit]If not (WinExists ("Schwerwiegend","Unable to find Micro")) then ControlClick("Schwerwiegend", "","Button1")
[/autoit]Du musst das Skript noch testen (Online erstellt),
mfg (Auto)Bert
-
Hallo alex2801,
ich habe die 2 Zeilen mal getestet, sie funktionieren.
Die Gui in der du kopierst reagiert auf keinen Button, funktioniert aber StandAlone (ausgeschnitten und getestet), bin noch am suchen, editiere diesen Post wenn ich es finde,so funktioniet das Skript:Spoiler anzeigen
[autoit]#cs ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.0.0
[/autoit] [autoit][/autoit] [autoit]
Author: Alex2801Script Function:
[/autoit] [autoit][/autoit] [autoit]
install AutoIt script.#ce ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <IE.au3>
#include <WindowsConstants.au3>
schritt1()Func schritt1()
[/autoit] [autoit][/autoit] [autoit]
GUICreate("lan Setup", 500, 400)
GUICtrlCreateLabel("Um lan zu Installieren klicken sie auf Weiter", 30, 10)
$weiterbutton = GUICtrlCreateButton("Weiter", 360, 365, 60)
$abbrechenbutton = GUICtrlCreateButton("Abbrechen", 430, 365, 60)
GUISetState(@SW_SHOW)While 1
[/autoit] [autoit][/autoit] [autoit]
$msg = GUIGetMsg()Select
[/autoit] [autoit][/autoit] [autoit]
Case $msg = $weiterbutton
GUISetState(@SW_HIDE)
schritt2()
ExitLoop
Case $msg = $abbrechenbutton
$close = MsgBox(4, "Schliessen", "Möchtest du wirklich schliessen?")
If $close <> 7 Then
Exit
EndIf
Case $msg = $GUI_EVENT_CLOSE
$close = MsgBox(4, "Schliessen", "Möchtest du wirklich schliessen?")
If $close <> 7 Then
Exit
EndIf
ExitLoop
EndSelect
WEnd
EndFunc ;==>schritt1Func schritt2()
[/autoit] [autoit][/autoit] [autoit]GUICreate("lan Setup", 500, 400)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateLabel("Lizens", 30, 10)
GUICtrlCreateLabel("Das Programm ist unter der GNU GPL Lizensiert.", 30, 30)
GUICtrlCreateLabel("bla", 30, 45)
$exitbutton = GUICtrlCreateButton("n. Akzeptieren", 270, 365, 80)
$weiterbutton = GUICtrlCreateButton("Akzeptieren", 360, 365, 60)
$abbrechenbutton = GUICtrlCreateButton("Abbrechen", 430, 365, 60)
GUISetState(@SW_SHOW)While 1
[/autoit] [autoit][/autoit] [autoit]
$msg = GUIGetMsg()Select
[/autoit] [autoit][/autoit] [autoit]
Case $msg = $weiterbutton
GUISetState(@SW_HIDE)
schritt3()
ExitLoop
Case $msg = $abbrechenbutton
$close = MsgBox(4, "Schliessen", "Möchtest du wirklich schliessen?")
If $close <> 7 Then
Exit
EndIf
Case $msg = $exitbutton
$close = MsgBox(4, "Schliessen", "Möchtest du wirklich schliessen?")
If $close <> 7 Then
Exit
EndIf
Case $msg = $GUI_EVENT_CLOSE
$close = MsgBox(4, "Schliessen", "Möchtest du wirklich schliessen?")
If $close <> 7 Then
Exit
EndIf
EndSelect
WEnd
EndFunc ;==>schritt2Func schritt3()
[/autoit] [autoit][/autoit] [autoit]
GUICreate("lan Setup", 500, 400)
GUICtrlCreateLabel("Führen sie Schritt 1 bis 4 aus, um das System Funktionsfähig zu installieren.", 30, 10)
$weiterbutton = GUICtrlCreateButton("Weiter", 360, 365, 60)
$abbrechenbutton = GUICtrlCreateButton("Abbrechen", 430, 365, 60)
$schritt1button = GUICtrlCreateButton("Schritt 1", 260, 200, 60)
$schritt2button = GUICtrlCreateButton("Schritt 2", 320, 200, 60)
$schritt3button = GUICtrlCreateButton("Schritt 3", 380, 200, 60)
$schritt4button = GUICtrlCreateButton("Schritt 4", 440, 200, 60)
GUISetState(@SW_SHOW)While 1
[/autoit] [autoit][/autoit] [autoit]
$msg = GUIGetMsg()Select
[/autoit] [autoit][/autoit] [autoit]
Case $msg = $schritt1button
#cs
Run("ts.exe")
WinWaitActive("Setup - TeamSpeak 2 Server", "Welcome to the TeamSpeak 2")
Send("!n")
WinWaitActive("Setup - TeamSpeak 2 Server", "License Agreement")
Send("!a")
Send("!n")
WinWaitActive("Setup - TeamSpeak 2 Server", "Select Destination Location")
Send("C:/lan/teamspeakserver")
Send("!n")
WinWaitActive("Setup - TeamSpeak 2 Server", "Select Start Menu Folder")
Send("!n")
WinWaitActive("Setup - TeamSpeak 2 Server", "Select Additional Tasks")
Send("!n")
WinWaitActive("Setup - TeamSpeak 2 Server", "Ready to Install")
Send("!i")
WinWaitActive("Setup - TeamSpeak 2 Server", "Information")
Send("!n")
WinWaitActive("Setup - TeamSpeak 2 Server", "Completing the TeamSpeak 2 Server Setup Wizard")
Send("!f")
MsgBox(0, "Ts Install", "Fertig!")
MsgBox(0, "Ts", "Bitte logge dich nun mit den folgenden Superadmin daten im gleich öffnenden fenster ein, und nehme die einstellungen vor!")
$oIE = _IECreate("http://127.0.0.1:14534/slogin.html")
#ce
Case $msg = $schritt2button
ConsoleWrite("Filecopy" & @CRLF)DirCopy(@MyDocumentsDir & "\xampplite", "C:\lan")
[/autoit] [autoit][/autoit] [autoit]
Case $msg = $schritt3button
$FileName = "C:\lan\xampplite\htdocs\ts.html" ;Hier muss der Name der Datei rein$Open = FileOpen($FileName, 0) ;Datei im Lesemodus öffnen!
[/autoit] [autoit][/autoit] [autoit]
$Text = FileRead($Open)
$NewText = StringReplace($Text, "127.0.0.1", @IPAddress1)
FileClose($Open)$Open = FileOpen($FileName, 2) ;Datei im Schreibmodus öffnen!
[/autoit] [autoit][/autoit] [autoit]
FileWrite($FileName, $NewText)
MsgBox(0, "Schreiben", "Fertig")
FileClose($Open)
Case $msg = $weiterbutton
GUISetState(@SW_HIDE)
schritt4()
ExitLoop
Case $msg = $schritt4button
ConsoleWrite("Dircopy" & @CRLF)
FileCopy(@MyDocumentsDir & "\control.exe", "C:\lan")
Case $msg = $abbrechenbutton
$close = MsgBox(4, "Schliessen", "Möchtest du wirklich schliessen?")
If $close <> 7 Then
Exit
EndIf
Case $msg = $GUI_EVENT_CLOSE
$close = MsgBox(4, "Schliessen", "Möchtest du wirklich schliessen?")
If $close <> 7 Then
Exit
EndIf
ExitLoop
EndSelect
WEnd
EndFunc ;==>schritt3Func schritt4()
[/autoit] [autoit][/autoit] [autoit]
GUICreate("lan Setup", 500, 400)
GUICtrlCreateLabel("Setup ist Fertig, um abzuschließen bitte auf Beenden Klicken", 30, 10)
$weiterbutton = GUICtrlCreateButton("Beenden", 360, 365, 60)
$abbrechenbutton = GUICtrlCreateButton("Abbrechen", 430, 365, 60)
GUISetState(@SW_SHOW)While 1
[/autoit] [autoit][/autoit] [autoit]
$msg = GUIGetMsg()Select
[/autoit]
Case $msg = $weiterbutton
Exit
Case $msg = $abbrechenbutton
$close = MsgBox(4, "Schliessen", "Möchtest du wirklich schliessen?")
If $close <> 7 Then
Exit
EndIf
Case $msg = $GUI_EVENT_CLOSE
$close = MsgBox(4, "Schliessen", "Möchtest du wirklich schliessen?")
If $close <> 7 Then
Exit
EndIf
ExitLoop
EndSelect
WEnd
EndFunc ;==>schritt4Den TS (der den Fehler verursacht) habe ich auskommentiert,
mfg (Auto)Bert -
Hallo dragon_killer,
im OnEventMode funktionierst einfacher:
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
Opt('GuiOnEventMode', 1)
GUICreate("Test")$iniFilename = @ScriptDir & "\settings.ini"
[/autoit] [autoit][/autoit] [autoit]$windowInput = GUICtrlCreateInput(IniRead($iniFilename, "settings", "window", ""), 50, 20)
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent($GUI_EVENT_CLOSE, '_Terminate')
$keys = GUICtrlCreateInput(IniRead($iniFilename, "settings", "keys", ""), 50, 50)
$startTime = GUICtrlCreateInput(IniRead($iniFilename, "settings", "startTime", ""), 50, 80)
$endTime = GUICtrlCreateInput(IniRead($iniFilename, "settings", "endTime", ""), 50, 110)
$controlInput = GUICtrlCreateInput(IniRead($iniFilename, "settings", "control", ""), 50, 140)
$startButton = GUICtrlCreateButton("Start", 5, 5)
GUICtrlSetOnEvent($startButton, '_Start')
$endButton = GUICtrlCreateButton("Stop", 5, 50)
GUICtrlSetOnEvent($startButton, '_End')
$status = GUICtrlCreateLabel("Nicht gestartet", 100, 200)
$started = False
$wait = 0$a = GUICtrlCreateButton("Sadsf", 200, 200)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetOnEvent($startButton, '_A')
GUISetState()While 1
[/autoit] [autoit][/autoit] [autoit]
If $started = True Then
; ControlSend(GUICtrlRead($windowInput), "", GUICtrlRead($controlInput), GUICtrlRead($keys))
$wait = Random(GUICtrlRead($startTime), GUICtrlRead($endTime)) * 1000
If $wait <> 0 Then
Sleep($wait)
EndIf
MsgBox(0, "Send", "Test", 5)
EndIf
WEndFunc _Terminate()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFunc ;==>_TerminateFunc _Start()
[/autoit] [autoit][/autoit] [autoit]
$started = True
GUICtrlSetData($status, "Gestartet")
EndFunc ;==>_StartFunc _End()
[/autoit] [autoit][/autoit] [autoit]
MsgBox(0, "b", "b")
$started = False
GUICtrlSetData($status, "Nicht Gestartet")
EndFunc ;==>_EndFunc _A()
[/autoit]
MsgBox(0, "a", "a")
EndFunc ;==>_ADie Messages werden alle der Reihe nach behandelt, das heisst du musst dann auch warten bis der Sleep abgelaufen ist, aber die func wird danach ausgeführt
mfg (Auto)Bert
-
Hallo Mrx007,
[autoit]
dazu musst du doch nur den Wahrheitswert mit not negieren:If not (FileExists("C:\autoexecME.bat")) Then MsgBox(4096, "Datei C:\autoexecME.bat", "Existiert nicht")
[/autoit]mfg (Auto)Bert
-
Hallo apocsis,
schau dir mal SIC2 (System Information Collector 2 - sammelt Information auch von Remote Systemen)'von UEZ an, vielleicht hilft dir das ja weiter,
mfg (Auto)Bert
-
Hallo skar,
das wäre z.B. eine Möglichkeit:
Spoiler anzeigen
[autoit];#include <GuiComboBox.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>#include <File.au3>
[/autoit] [autoit][/autoit] [autoit]Const $sElect = "bitte ein Programm auswählen"
[/autoit] [autoit][/autoit] [autoit]#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$hGui = GUICreate("Combobox mit INI ", 250, 160, 302, 218)
$hcboProg = GUICtrlCreateCombo($sElect, 8, 8, 200, 25)
$hlblPfad = GUICtrlCreateLabel("", 8, 35, 200, 50)
;$hbtnOpen = GUICtrlCreateButton("&Öffnen", 8, 85)
GUICtrlSetState($hbtnOpen, $GUI_DISABLE)$sData = "Notepad=c:\irgendwo auf der Fetplatte\in diesem UnterOrder noch nicht\Aber in diesem" & @LF & "FireFox=c:\irgendwoanders auf der Fetplatte\in diesem UnterOrder" & @CRLF & "Ineternet-Explorer=c:\irgendwo auf der Fetplatte\in diesem UnterOrder befindet sich es"
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
IniWriteSection(@ScriptDir & "\MeinIniFile.INI", "Programme", $sData)
$list1 = IniReadSection(@ScriptDir & "\MeinIniFile.INI", "Programme")
ConsoleWrite($list1 & @CRLF)
For $i = 1 To $list1[0][0]
GUICtrlSetData($hcboProg, $list1[$i][0])
NextGUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]
#EndRegion ### END Koda GUI section ###While 1
[/autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $hcboProg
If GUICtrlRead($hcboProg) = $sElect Then
GUICtrlSetState($hbtnOpen, $GUI_DISABLE)
GUICtrlSetData($hlblPfad, "")
Else
GUICtrlSetState($hbtnOpen, $GUI_ENABLE)
$Prog = GUICtrlRead($hcboProg)
$Pfad = IniRead(@ScriptDir & "\MeinIniFile.INI", "Programme",$Prog,"")
GUICtrlSetData($hlblPfad, $Pfad & "\" & $Prog)
EndIf
EndSwitch
WEndEdit: Falls ein Thema gelöst ist, dann stell doch bitte auch den Präfix (nähe Überschrift im Eröffnungspost) auf gelöst
mfg (Auto)Bert -
Hallo Moritz,
z.B.: so
Spoiler anzeigen
[autoit][/autoit]#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>Opt('MustDeclareVars', 1)
Example()
Func Example()
Local $progressbar1, $button, $wait, $s, $msg, $mGUICreate("My GUI Progressbar", 220, 100, 100, 200)
$progressbar1 = GUICtrlCreateProgress(10, 10, 200, 20)
GUICtrlSetColor(-1, 32250); not working with Windows XP Style
$button = GUICtrlCreateButton("Start", 75, 70, 70, 20)
GUISetState()
Do
$msg = GUIGetMsg()
If $msg = $button Then
GUICtrlDelete($button)
; If BitAND(GUICtrlRead($checkCN_1), $GUI_CHECKED) Then Local $folder = FileSelectFolder("DotNetFrameworkPacket Kopieren unter", "", 5, "D:\UNINST\Software")
; If BitAND(GUICtrlRead($checkCN_1), $GUI_CHECKED) Then DirCopy("E:\AUTO\WindowsXP\InternetExplorer8-12052009", $folder & "\DotnetFrameworkPacket", 1)
GUICtrlSetData($progressbar1, 33)
Sleep(Random(2000, 8000)); If BitAND(GUICtrlRead($checkCN_2), $GUI_CHECKED) Then Local $folder1 = FileSelectFolder("AcrobatReader9.1 Kopieren unter", "", 5, "D:\UNINST\Software")
; If BitAND(GUICtrlRead($checkCN_2), $GUI_CHECKED) Then DirCopy("E:\AUTO\WindowsXP\InternetExplorer8-12052009", $folder1 & "\AcrobatReader9.1", 1)
GUICtrlSetData($progressbar1, 66)
Sleep(Random(2000, 8000)); If BitAND(GUICtrlRead($checkCN_3), $GUI_CHECKED) Then Local $folder2 = FileSelectFolder("InternetExplorer8 Kopieren unter", "", 5, "D:\UNINST\Software")
; If BitAND(GUICtrlRead($checkCN_3), $GUI_CHECKED) Then DirCopy("E:\AUTO\WindowsXP\InternetExplorer8-12052009", $folder2 & "\InternetExplorer8", 1) EndIf
GUICtrlSetData($progressbar1, 100)
MsgBox(0, "", "Bin fertig!")
Exit
EndIf
Until $msg = $GUI_EVENT_CLOSE
EndFunc ;==>Exampleda du nur einen Codeschnipsel gepostet hast musst du es dir noch anpassen,
mfg (Auto)Bert
-
Hallo fuxxx,
schau dir einfach einmal dieses Skript an:
Spoiler anzeigen
[autoit]#include <WindowsConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstants.au3>
#include <guitab.au3>
#include <guitreeview.au3>Opt('GUIOnEventMode', 1)
[/autoit] [autoit][/autoit] [autoit]
Opt('MustDeclareVars', 1)Global $hGui, $hTab, $hbtnInsTab, $hbtnNewTabItem, $hbtnOK, $hTabGui[10], $hnewTree[10], $nextTabID = 0, $aktTabID = -1
[/autoit] [autoit][/autoit] [autoit]$hGui = GUICreate("Multiple TABs", 520, 250, -1, -1, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX));BitOr($GUI_SS_DEFAULT_GUI,$WS_CLIPSIBLINGS))
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
$hTab = GUICtrlCreateTab(5, 5, 510, 25)
GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKHEIGHT)
GUICtrlSetOnEvent(-1, '_SwitchTab')
$hbtnInsTab = GUICtrlCreateButton("Neuer Tab", 40, 200, 70, 20)
GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKBOTTOM + $GUI_DOCKSIZE)
GUICtrlSetOnEvent(-1, 'InsertTab')
$hbtnNewTabItem = GUICtrlCreateButton("&Neues TabItem", 150, 200, 70, 20)
GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKBOTTOM + $GUI_DOCKSIZE)
GUICtrlSetOnEvent(-1, 'NewItem')
;GUICtrlSetState(-1,$GUI_HIDE)
$hbtnOK = GUICtrlCreateButton("Be&enden", 350, 200, 70, 20)
GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKBOTTOM + $GUI_DOCKSIZE)
GUICtrlSetOnEvent(-1, '_End')
GUISetState()
GUIRegisterMsg($WM_SIZE, 'WM_SIZE')
GUISetState()
While 1
Sleep(125)
WEndFunc _End()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFunc ;==>_EndFunc _SwitchTab()
[/autoit] [autoit][/autoit] [autoit]
Local $i = _GUICtrlTab_GetCurSel($hTab)
If $aktTabID = -1 Then $aktTabID = 0
ConsoleWrite($i & @CRLF)
GUISetState(@SW_HIDE, $hTabGui[$aktTabID])
GUISetState(@SW_SHOW, $hTabGui[$i])
$aktTabID = $i
EndFunc ;==>_SwitchTabFunc InsertTab()
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite($nextTabID & @CRLF)
_GUICtrlTab_InsertItem($hTab, $nextTabID, "Tab " & $nextTabID)
$hTabGui[$nextTabID] = GUICreate("", 500, 150, 10, 25, BitOR($WS_CHILD, $WS_TABSTOP), -1, $hGui)
GUISetBkColor(0xff0000)
Size_TabGui($nextTabID)
GUISetState()
GUISwitch($hTabGui[$nextTabID])
$hnewTree[$nextTabID] = GUICtrlCreateTreeView(5, 5, 490, 140)
;GUICtrlSetResizing(-1, $GUI_DOCKLeft + $GUI_DOCKBOTTOM + $GUI_DOCKRIGHT + $GUI_DOCKTOP)
GUICtrlCreateTreeViewItem("Tree" & $nextTabID & " Item 1", $hnewTree[$nextTabID])
GUICtrlCreateTreeViewItem("Tree" & $nextTabID & " Item 2", $hnewTree[$nextTabID])
If $aktTabID > -1 Then GUISetState(@SW_HIDE, $hTabGui[$aktTabID])
_GUICtrlTab_SetCurFocus($hTab, $nextTabID)
GUISetState($GUI_SHOW, $hTabGui[$nextTabID])
$aktTabID = $nextTabID
$nextTabID = $nextTabID + 1
;GUICtrlSetState($hbtnInsTab,$GUI_SHOW)
EndFunc ;==>InsertTabFunc NewItem()
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateTreeViewItem("Tree" & $aktTabID & " Item " & random(3,20,1), $hnewTree[$aktTabID])
EndFuncFunc WM_SIZE($hWnd, $iMsg, $iWParam, $iLParam)
[/autoit] [autoit][/autoit] [autoit]
Local $i
For $i = 0 To $nextTabID - 1
Size_TabGui($i)
Next
EndFunc ;==>WM_SIZEFunc Size_TabGui($i)
[/autoit]
Local $aMGPos
$aMGPos = WinGetClientSize($hGui)
WinMove($hTabGui[$i], "", 5, 25, $aMGPos[0] - 10, $aMGPos[1] - 60)
GUICtrlSetPos($hnewTree[$i],5, 5, $aMGPos[0]-20, $aMGPos[1] - 70)
EndFunc ;==>Size_TabGuinicht die eleganteste Lösung um dynamisch Tabs, TreeViews und TreeViewItems zu erzeugen aber es sollte dir weiter helfen,
mfg (Auto)Bert
-
Hallo alex2801,
fileopen hat unterschiedliche Parameter für Lese- / Schreibzugriff, schau dir mal Post #5 an,
mfg (Auto)Bert
-
Hallo Alex2801,
du must die Datei einlesen, mit Stringreplace manipulieren und danach wieder speichern.
Spoiler anzeigen
[autoit]$datei = FileOpen("C:\xampplite\htdocs\ts.html", 0)
[/autoit] [autoit][/autoit] [autoit]; Überprüfe ob die Datei geöffnet werden konnte
[/autoit] [autoit][/autoit] [autoit]
If $datei = -1 Then
MsgBox(0, "Error", "Konnte Datei nicht öffnen.")
Exit
EndIf
$text=FileRead($datei)
$neu = stringreplace($text,"127.0.0.1",@IPAddress1)
FileClose($datei)$file = FileOpen("C:\xampplite\htdocs\ts.html", 1)
[/autoit] [autoit][/autoit] [autoit]; Prüfen, ob Datei im Schreibmodus geöffnet ist
[/autoit] [autoit][/autoit] [autoit]
If $file = -1 Then
MsgBox(0, "Fehler", "Die Ausgabe-Datei konnte nicht geöffnet werden.")
Exit
EndIfFileWrite($file, $neu)
[/autoit]
FileClose($file)MFG (Auto)Bert
-
Hallo wischmopp90,
wichtig ist auch der Parameter Parent bei GuiCreate , schau dir mal Funktion zur Osterberechnung jetzt als UDF und modalem Meldungsfenster'] da habe ich diese Technik angewendet,
mfg (Auto)Bert
-
Hallo Icynator,
so z.B.:
Spoiler anzeigen
[autoit]; *** Start added by AutoIt3Wrapper ***
[/autoit] [autoit][/autoit] [autoit]
#include <StaticConstants.au3>
; *** End added by AutoIt3Wrapper ***
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Add_Constants=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <ListviewConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <SliderConstants.au3>
#Include <GuiListView.au3>
#Include <Array.au3>
#Include <File.au3>
#Include <Misc.au3>Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]
;Global $posXStart, $posYStart, $posXStop, $posYStop, $pic, $hGui, $Pos_M2 = MouseGetPos()$hGUI = GUICreate("Transparent", 575, 510)
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent($GUI_EVENT_CLOSE, "_Ex")
$insert = GuiCtrlCreateButton("Insert Pic" ,10,10)
GuiCtrlSetOnEvent(-1, "_insert")
$Pic=GUICtrlCreatePic("", 50, 50)
GuiCtrlSetOnEvent(-1, "_DragMe")
$hsplitter1 = GUICtrlCreateLabel("",270, 125, 8, 205,-1,$SS_BLACKFRAME)
;GUICtrlSetColor(-1,0xffffff)
;GUICtrlSetResizing(-1, $GUI_DOCKLEFT +$GUI_DOCKSIZE + $GUI_DOCKTOP)
GUICtrlSetOnEvent($hsplitter1,"_DragMe")GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
sleep(100)
WEndFunc _insert()
[/autoit] [autoit][/autoit] [autoit]
GuiCtrlDelete($pic)
$bild = FileOpenDialog("Wählen Sie eine Datei aus!", @WindowsDir & "\", "Bilder (*.jpg;*.bmp)", 1 + 4 )
$Pic = GUICtrlCreatePic($bild, 150, 150)
GuiCtrlSetOnEvent(-1, "_DragMe")
EndFuncFunc _DragMe() ;Orginal zum verschieben von 1 Bild von ChaosKeks
[/autoit] [autoit][/autoit] [autoit]
Local $Pos_C, $Pos_M, $Pos_M2, $Opt_old
Local $dll = DllOpen("user32.dll")
$Opt_old = Opt('MouseCoordMode', 0)
$Pos_C = ControlGetPos($hGui, "", @GUI_CtrlId);$pic)
$Pos_M = MouseGetPos()
$Pos_W = WinGetPos($hGui)
$x_Offset = $Pos_M[0] - $Pos_C[0]
$y_Offset = $Pos_M[1] - $Pos_C[1]
_MouseTrap($Pos_W[0]+$x_Offset,$Pos_W[1]+$y_Offset,$Pos_W[0]+$Pos_W[2],$Pos_W[1]+$Pos_W[3])
While _IsPressed('01', $dll)
$Pos_M = MouseGetPos()
If $Pos_M <> $Pos_M2 Then
GUICtrlSetPos(@GUI_CtrlId,$Pos_M[0] - $x_Offset, $Pos_M[1] - $y_Offset)
sleep(10)
EndIf
$Pos_M = $Pos_M2
sleep(50)
WEnd
DllClose($dll)
Opt('MouseCoordMode', $Opt_old)
_MouseTrap()
EndFuncFunc _Ex()
[/autoit]
Exit
EndFUncViel Spaß damit

mfg (Auto)Bert
-
Hallo Skar,
schau dir in der Hilfe IniWriteSection und IniReadSection bzw. IniWrite und IniRead an, GuiCtrlSetData benötigst du auc noch,
mfg (Auto)Bert
-
Hallo Jonathan,
das einfachste wäre es erst gar keine anderen Eingaben zuzulassen, dafür gibt es _GUICtrlIpAddress_Create (erzeugt ein GUI zu Eingabe einer IP-Adresse) schau dir einfach die Hilfe dazu an,
mfg (Auto)Bert
-