1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Yjuq

Beiträge von Yjuq

  • Programmstarter - Wie kann ich das machen

    • Yjuq
    • 6. Januar 2015 um 06:09

    @UliK
    Das von dir verlinkte Programm enthält keinen Source. Da Problem ist, dass es nichts bringt sich dein Programm anzusehen, da man Codetechnisch nicht weiter kommt. Ich bin sicher der TE hat bereits eine gewisse Vorstellung davon wie das Programm aufgebaut sein soll. Vielleicht wäre es ganz gut wenn du uns den Source zur Verfügung stellst, damit ließe sich besser arbeiten. :)

  • Webbasierten Log-Vorgang automatisieren (Logdatei schreiben & speichern)

    • Yjuq
    • 5. Januar 2015 um 13:19
    [autoit]

    AdlibRegister(WarteMalKurz, 1000*60*10) ; Alle 10 Minuten

    [/autoit][autoit][/autoit][autoit]

    Func WarteMalKurz()
    Send('{F5}')
    Sleep(10000) ; Mal eben Zeit geben die Seite zu laden xD
    EndFunc

    [/autoit]


    Schnell und professionell xD

  • Webbasierten Log-Vorgang automatisieren (Logdatei schreiben & speichern)

    • Yjuq
    • 5. Januar 2015 um 11:17

    Um was für eine Website / Software handelt es sich?
    ggf. ist dein Anliegen doch einfacher zu bewältigen als wie du denkst.

    Alternativ steht dir auch noch TCP zur Verfügung um mit der Website zu kommunizieren.

  • Kontaktlinsen ade :(

    • Yjuq
    • 5. Januar 2015 um 09:58

    Komisch, die von dir aufgelisteten Probleme habe und hatte ich nie :D

  • Custom Control mithilfe von _WinAPI_CreateWindowEx()

    • Yjuq
    • 5. Januar 2015 um 04:14

    Ach peinlich,... Ich habe da 2 Rechtschreibfehler eingebaut.

    Zeile 37: CustomPaint(hWnd)
    --> Da habe ich das $ Zeichen vor der Variable $hWnd vergessen...

    Zeile 52: .WndProc = DllCallbackGetPtr($hCustomProc)
    --> Es müsste eigentlich .hWndProc heißen...


    Aber ich habe noch ein anderes anliegen. Meinem Control würde ich gerne IDs verteilen. Das geht bei der Funktion _WinAPI_CreateWindowEx() mit dem $hMenu Parameter. Kann ich irgendwie feststellen welche IDs schon vergeben sind? Wollte keine doppelten IDs vergeben und bei jedem neuen Control um eins hochzählen. Natürlich müssen auch die Controls berücksichtigt werden die vorab mit GUICtrlCreate...() erstellt worden sind. Da fehlt mir drz. ein Ansatzpunkt.


    €dit *1:
    Dazu habe ich schon ein Ansatz gefunden. Mit _WinAPI_EnumChildWindows() kann man sich alle Child Windows (also auch alle Controls) einer GUI ausgeben lassen. Jetzt muss ich nur noch irgendwie aus den Handles die IDs herausfinden, damit ich den größten vergebenen ID ermitteln kann...


    €dit *2:
    Habe jetzt auch eine Funktion gefunden die genau das macht was ich will: _WinAPI_GetDlgCtrlID()
    Naja, da ich mein Problem jetzt selber lösen konnte... [gelöst]

  • Input in Ini und Automatisches Zählen

    • Yjuq
    • 5. Januar 2015 um 03:43

    Jetzt nicht mehr :D

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $Hinzufuegen = GUICreate("Test", 508, 146, 366, 413)
    ; Von der INI die Anfangsposition ziehen :D
    $Input1 = GUICtrlCreateInput(IniRead("system.ini", "POS", "ID", "1"), 16, 72, 121, 21, $ES_READONLY) ; Style hinzugefügt da ja nur hochgezählt werden soll...
    $Input2 = GUICtrlCreateInput("Name", 192, 72, 121, 21)
    $Input3 = GUICtrlCreateInput("Stückzahl", 368, 72, 121, 21)
    $Artikel = GUICtrlCreateLabel("ID", 16, 48, 58, 19)
    GUICtrlSetFont(-1, 8, 800, 0, "@Arial Unicode MS")
    $Name = GUICtrlCreateLabel("Name", 192, 48, 36, 19)
    GUICtrlSetFont(-1, 8, 800, 0, "@Arial Unicode MS")
    $Label1 = GUICtrlCreateLabel("Stückzahl", 368, 48, 61, 19)
    GUICtrlSetFont(-1, 8, 800, 0, "@Arial Unicode MS")
    $Titel = GUICtrlCreateLabel("Hinzufügen", 184, 16, 128, 22)
    GUICtrlSetFont(-1, 10, 800, 0, "@Arial Unicode MS")
    $Button1 = GUICtrlCreateButton("Speichern", 208, 104, 75, 25)
    GUICtrlSetFont(-1, 9, 800, 0, "@Arial Unicode MS")
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    ;~ GuiSetState(@SW_Hide,$Hinzufuegen)
    ;~ GuiSetState(@SW_SHOW,_Start())
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    Case $Button1
    $Input1Save = GUICtrlRead($Input1)
    $Input2Save = GUICtrlRead($Input2)
    $Input3Save = GUICtrlRead($Input3)

    [/autoit] [autoit][/autoit] [autoit]

    If $Input2Save And $Input3Save Then
    ; Die ID wird als Section angegeben:
    ;~ IniWrite ( "system.ini", "ID", "", $Input1Save )
    IniWrite ( "system.ini", "POS", "ID", $Input1Save +1) ; Die Position hochzählen...
    IniWrite ( "system.ini", "ID " & $Input1Save, "Name", $Input2Save )
    IniWrite ( "system.ini", "ID " & $Input1Save, "Stückzahl", $Input3Save )
    MsgBox(64,"MHS-Medizintechnik","Artikel wurde erfolgreich hinzugefügt")
    GUICtrlSetData($Input1, $Input1Save +1)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;~ GuiSetState(@SW_Hide,$Hinzufuegen)
    ;~ GuiSetState(@SW_SHOW,_Start())

    [/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    WEnd

    [/autoit]


    Du kannst INI Dateien auch auslesen, so ist dass ja nicht ^^

  • Input in Ini und Automatisches Zählen

    • Yjuq
    • 5. Januar 2015 um 02:08

    Hier mal Quick & Dirty:

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $Hinzufuegen = GUICreate("Test", 508, 146, 366, 413)
    $Input1 = GUICtrlCreateInput("1", 16, 72, 121, 21, $ES_READONLY) ; Style hinzugefügt da ja nur hochgezählt werden soll...
    $Input2 = GUICtrlCreateInput("Name", 192, 72, 121, 21)
    $Input3 = GUICtrlCreateInput("Stückzahl", 368, 72, 121, 21)
    $Artikel = GUICtrlCreateLabel("ID", 16, 48, 58, 19)
    GUICtrlSetFont(-1, 8, 800, 0, "@Arial Unicode MS")
    $Name = GUICtrlCreateLabel("Name", 192, 48, 36, 19)
    GUICtrlSetFont(-1, 8, 800, 0, "@Arial Unicode MS")
    $Label1 = GUICtrlCreateLabel("Stückzahl", 368, 48, 61, 19)
    GUICtrlSetFont(-1, 8, 800, 0, "@Arial Unicode MS")
    $Titel = GUICtrlCreateLabel("Hinzufügen", 184, 16, 128, 22)
    GUICtrlSetFont(-1, 10, 800, 0, "@Arial Unicode MS")
    $Button1 = GUICtrlCreateButton("Speichern", 208, 104, 75, 25)
    GUICtrlSetFont(-1, 9, 800, 0, "@Arial Unicode MS")
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    ;~ GuiSetState(@SW_Hide,$Hinzufuegen)
    ;~ GuiSetState(@SW_SHOW,_Start())
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    Case $Button1
    $Input1Save = GUICtrlRead($Input1)
    $Input2Save = GUICtrlRead($Input2)
    $Input3Save = GUICtrlRead($Input3)

    [/autoit] [autoit][/autoit] [autoit]

    If $Input2Save And $Input3Save Then
    ; Die ID wird als Section angegeben:
    ;~ IniWrite ( "system.ini", "ID", "", $Input1Save )
    IniWrite ( "system.ini", "ID " & $Input1Save, "Name", $Input2Save )
    IniWrite ( "system.ini", "ID " & $Input1Save, "Stückzahl", $Input3Save )
    MsgBox(64,"MHS-Medizintechnik","Artikel wurde erfolgreich hinzugefügt")
    GUICtrlSetData($Input1, $Input1Save +1)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;~ GuiSetState(@SW_Hide,$Hinzufuegen)
    ;~ GuiSetState(@SW_SHOW,_Start())

    [/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    WEnd

    [/autoit]

    Die ID-Angabe wird als Sektion genutzt. So kannst du die Items später über die ID wieder ausgeben lassen. Zudem kannst du die INI-File einfach anhand der ID durchlaufen und nach dem "Name" oder "Stückzahl" suchen. Was immer dein Herz begehrt.

  • Custom Control mithilfe von _WinAPI_CreateWindowEx()

    • Yjuq
    • 5. Januar 2015 um 01:11

    Servus Community! :)
    Ich hänge an einem Problem wo ich nicht mehr weiter weiß. Ich versuche ein eigenes Control zu schreiben. Ich weiß dass es die Möglichkeit gibt einfach ein vorhandenes Control (z.B. das AutoIt Graphic Control) mit _WinAPI_SetWindowLong() zu "hooken" (weiß nicht wie man es nennt). Will ich aber nicht, ziel soll es sein das Control von Anfang an mit _WinAPI_CreateWindowEx() zu erstellen.

    Die Klasse wird registriert, aber die Erstellung des Controls schlägt fehl. Leider spuckt mir _WinAPI_GetLastError() keinen Fehlercode entgegen. Aber ein Handle bekomme ich trotzdem nicht. Hier der Source:

    [autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit][autoit][/autoit][autoit]

    #include "CustomControl.au3"
    #include <WinAPI.au3>

    [/autoit][autoit][/autoit][autoit]

    Global $hGUI, $hCustom

    [/autoit][autoit][/autoit][autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit][autoit][/autoit][autoit]

    $hGUI = GUICreate('MainWindow', 350, 250, -1, -1, $WS_OVERLAPPEDWINDOW)
    GUISetState()

    [/autoit][autoit][/autoit][autoit]

    $hCustom = _WinAPI_CreateWindowEx(0, $CUSTOM_WC, 0, BitOR($WS_CHILD, $WS_VISIBLE), 10, 10, 100, 100, $hGUI)
    ConsoleWrite($hCustom & @CRLF & '! ' & _WinAPI_GetLastError() & @CRLF)

    [/autoit][autoit][/autoit][autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit][autoit][/autoit][autoit]

    While GUIGetMsg() <> -3
    WEnd

    [/autoit][autoit][/autoit][autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit]

    Benötigt wird noch die CustomControl.au3. In der definiere ich mein Control:

    CustomControl.au3
    [autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit] [autoit][/autoit] [autoit]

    #include <WinAPI.au3>
    #include <WinAPIEx.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    OnAutoItExitRegister(__CUSTOM_FREE__)

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $WNDCLASS = 'uint Style;ptr hWndProc;int ClsExtra;int WndExtra;ptr hInstance;ptr hIcon;ptr hCursor;ptr hBackground;ptr MenuName;ptr ClassName'

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $CUSTOM_WC = 'CustomControl'

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $CS_GLOBALCLASS = 0x4000
    Global Const $CS_HREDRAW = 0x0002
    Global Const $CS_VREDRAW = 0x0001

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $hCustomProc = DllCallbackRegister(CustomProc, 'LRESULT', 'HWND;UINT;WPARAM;LPARAM')

    [/autoit] [autoit][/autoit] [autoit]

    CustomRegister()

    [/autoit] [autoit][/autoit] [autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit] [autoit][/autoit] [autoit]

    Func CustomPaint($hWnd)
    Local $tRect = _WinAPI_GetClientRect($hWnd)
    Local $tPS = DllStructCreate($tagPAINTSTRUCT)
    Local $hDC = _WinAPI_BeginPaint($hWnd, $tPS)

    [/autoit] [autoit][/autoit] [autoit]

    _WinAPI_SetTextColor($hDC, 0x000000)
    _WinAPI_SetBkMode($hDC, $TRANSPARENT)
    _WinAPI_DrawText($hDC, 'Hello World!', $tRect, BitOR($DT_SINGLELINE, $DT_CENTER, $DT_VCENTER))
    _WinAPI_EndPaint($hWnd, $tPS)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func CustomProc($hWnd, $uMsg, $wParam, $lParam)
    Switch $uMsg
    Case $WM_PAINT
    CustomPaint(hWnd)
    Return
    EndSwitch

    [/autoit] [autoit][/autoit] [autoit]

    Return _WinAPI_DefWindowProc($hWnd, $uMsg, $wParam, $lParam)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func CustomRegister()
    Local $tClassName = DllStructCreate('WCHAR str[' & StringLen($CUSTOM_WC) +1 & ']')
    Local $tWC = DllStructCreate($WNDCLASS)

    [/autoit] [autoit][/autoit] [autoit]

    $tClassName.str = $CUSTOM_WC

    [/autoit] [autoit][/autoit] [autoit]

    With $tWC
    .style = BitOR($CS_GLOBALCLASS, $CS_HREDRAW, $CS_VREDRAW)
    .WndProc = DllCallbackGetPtr($hCustomProc)
    ;~ .hCursor = _WinAPI_LoadCursor(Null, $IDC_ARROW)
    .hBackground = _WinAPI_CreateSolidBrush(0xFFFFFF)
    .ClassName = DllStructGetPtr($tClassName, 'str')
    EndWith

    [/autoit] [autoit][/autoit] [autoit]

    _WinAPI_RegisterClass($tWC)
    ConsoleWrite('! ' & _WinAPI_GetLastError() & @CRLF)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func CustomUnregister()
    _WinAPI_UnregisterClass($CUSTOM_WC, Null)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit] [autoit][/autoit] [autoit]

    Func __CUSTOM_FREE__()
    DllCallbackFree($hCustomProc)
    CustomUnregister()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit]

    Weiß jemand was ich falsch mache? Ich komme zum erbrechen nicht darauf...

  • AutoIt-Object -- dynamische Wertezuweisung an Properties

    • Yjuq
    • 3. Januar 2015 um 11:13

    Hab's geschaft! Mit einem Workaround lassen sich die ausgewählten Properties tatsächlich in einer For...In...Next Schleife auslesen und verändern. Habe dafür massiv den Code vergewaltigt, klappt aber wunderbar. Nennt mich einen Genie (so stolz war ich seit langem nicht mehr ^^)

    Spoiler anzeigen
    [autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit] [autoit][/autoit] [autoit]

    #include <AutoItObject.au3>

    [/autoit] [autoit][/autoit] [autoit]

    _AutoItObject_Startup()

    [/autoit] [autoit][/autoit] [autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit] [autoit][/autoit] [autoit]

    Global $oObj = _Object()

    [/autoit] [autoit][/autoit] [autoit]

    For $o In $oObj
    ConsoleWrite($o() & @CRLF)
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ConsoleWrite(@CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    For $o In $oObj
    $o() = 5
    Next

    [/autoit] [autoit][/autoit] [autoit]

    For $o In $oObj
    ConsoleWrite($o() & @CRLF)
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit] [autoit][/autoit] [autoit]

    Func _Object()
    Local $oObject = __Class().Object
    $oObject.Alpha = 1
    $oObject.Beta = 2
    $oObject.Gamma = 3
    $oObject.Delta = 4
    Return $oObject
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func __Class()
    Local $oClass = _AutoItObject_Class()
    $oClass.AddProperty('Alpha')
    $oClass.AddProperty('Beta')
    $oClass.AddProperty('Gamma')
    $oClass.AddProperty('Delta')
    $oClass.AddEnum('__Next__', '__Reset__')
    Return $oClass
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func __Next__(ByRef $self, ByRef $count)
    Local $asProperty[] = ['Alpha', 'Beta', 'Gamma', 'Delta']
    Local $i, $oTmp

    [/autoit] [autoit][/autoit] [autoit]

    If $count = UBound($asProperty) Then
    For $i = 0 To UBound($asProperty) -1
    $oTmp = Execute('$self.' & $asProperty[$i])
    _AutoItObject_AddProperty($self, $asProperty[$i], $ELSCOPE_PUBLIC, $oTmp())
    Next

    [/autoit] [autoit][/autoit] [autoit]

    Return SetError(1)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $count += 1

    [/autoit] [autoit][/autoit] [autoit]

    Return Execute('$self.' & $asProperty[$count -1])
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func __Reset__(ByRef $self, $count)
    Local $asProperty[] = ['Alpha', 'Beta', 'Gamma', 'Delta']
    Local $i

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To UBound($asProperty) -1
    _AutoItObject_AddProperty($self, $asProperty[$i], $ELSCOPE_PUBLIC, _Enum_Object(Execute('$self.' & $asProperty[$i])))
    Next
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit] [autoit][/autoit] [autoit]

    Func _Enum_Object($value)
    Local $oObject = __Class_Enum().Object
    _AutoItObject_AddProperty($oObject, '__value__', $ELSCOPE_PRIVATE, $value)
    Return $oObject
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func __Class_Enum()
    Local $oClass = _AutoItObject_Class()
    $oClass.AddMethod('__default__', '__Enum_Default__')
    Return $oClass
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func __Enum_Default__($self, $value = Default)
    $self.__value__ = ($value <> Default ? $value : $self.__value__)
    Return $self.__value__
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit]
  • Batch skript in auto it ausführen

    • Yjuq
    • 3. Januar 2015 um 10:40

    Jo, kein Problem. Falls Fragen zwischendurch auftauchen darfst du natürlich fragen.
    Kannst mir gerne auch eine private Nachricht senden. Habe drz. gute Laune :D

  • Batch skript in auto it ausführen

    • Yjuq
    • 3. Januar 2015 um 10:18

    Prinzipiell würde ich erst einmal schauen ob das ohne den Aufruf von AutoIt klappt.
    Wenn das Programm so funktioniert wie soll, super! Ansonsten halt umschreiben.
    Ansonsten kannst du Batch Code via _RunDos() problemlos ausführen.

    Allerdings weiß ich nicht warum es sinnvoll sein sollte den Batch Code in AutoIt aufzurufen wenn du
    das Programm direkt in AutoIt schreiben könntest.

  • Batch skript in auto it ausführen

    • Yjuq
    • 3. Januar 2015 um 09:13

    Und das hier funktioniert nicht!?

    Spoiler anzeigen
    [autoit]

    #include <Process.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $sBatch = '@ echo off' & @CRLF & _
    'If exist "C:\Dropbox\Server\befehle\minecraft on" goto onM' & @CRLF & _
    'If exist "C:\Dropbox\Server\befehle\tekkit on" goto onT' & @CRLF & _
    'echo "Version 1.01_01"' & @CRLF & _
    ':top' & @CRLF & _
    'If exist "C:\Dropbox\Server\befehle\start minecraft.befehl" goto startM' & @CRLF & _
    'If exist "C:\Dropbox\Server\befehle\stop minecraft.befehl" goto stopM' & @CRLF & _
    'If exist "C:\Dropbox\Server\befehle\restart minecraft.befehl" goto reM' & @CRLF & _
    'If exist "C:\Dropbox\Server\befehle\start tekkit.befehl" goto startT' & @CRLF & _
    'If exist "C:\Dropbox\Server\befehle\stop tekkit.befehl" goto stopT' & @CRLF & _
    'If exist "C:\Dropbox\Server\befehle\restart tekkit.befehl" goto reT' & @CRLF & _
    'If exist "C:\Dropbox\Server\befehle\restart server.befehl" goto reS' & @CRLF & _
    'If exist "C:\Dropbox\Server\befehle\start cmd extra.befehl" goto cmd' & @CRLF & _
    'ping -n 6 127.0.0.1 > null' & @CRLF & _
    'goto top' & @CRLF & _
    ':startM' & @CRLF & _
    'del "C:\Dropbox\Server\befehle\start minecraft.befehl"' & @CRLF & _
    'echo ON > "C:\Dropbox\Server\befehle\minecraft on"' & @CRLF & _
    'cd "C:\Dropbox\Server\Minecraft"' & @CRLF & _
    'start "" "C:\Dropbox\Server\minecraft\craftbukkit-1.7.9-R0.1.jar"' & @CRLF & _
    'goto top' & @CRLF & _
    ':stopM' & @CRLF & _
    'del "C:\Dropbox\Server\befehle\stop minecraft.befehl"' & @CRLF & _
    'del "C:\Dropbox\Server\befehle\minecraft on"' & @CRLF & _
    'taskkill /IM javaw.exe /T /F' & @CRLF & _
    'goto top' & @CRLF & _
    ':reM' & @CRLF & _
    'del "C:\Dropbox\Server\befehle\restart minecraft.befehl"' & @CRLF & _
    'taskkill /IM javaw.exe /T /F' & @CRLF & _
    'cd "C:\Dropbox\Server\Minecraft"' & @CRLF & _
    'start "" "C:\Dropbox\Server\minecraft\craftbukkit-1.7.9-R0.1.jar"' & @CRLF & _
    'goto top' & @CRLF & _
    ':startT' & @CRLF & _
    'del "C:\Dropbox\Server\befehle\start tekkit.befehl"' & @CRLF & _
    'echo ON > "C:\Dropbox\Server\befehle\tekkit on"' & @CRLF & _
    'cd "C:\Dropbox\Server\Tekkit"' & @CRLF & _
    'start "" "C:\Dropbox\Server\tekkit\launch.bat"' & @CRLF & _
    'goto top' & @CRLF & _
    ':stopT' & @CRLF & _
    'del "C:\Dropbox\Server\befehle\stop tekkit.befehl"' & @CRLF & _
    'del "C:\Dropbox\Server\befehle\tekkit on"' & @CRLF & _
    'taskkill /IM java.exe /T /F' & @CRLF & _
    'goto top' & @CRLF & _
    ':reT' & @CRLF & _
    'del "C:\Dropbox\Server\befehle\restart tekkit.befehl"' & @CRLF & _
    'taskkill /IM java.exe /T /F' & @CRLF & _
    'cd "C:\Dropbox\Server\Tekkit"' & @CRLF & _
    'start "" "C:\Dropbox\Server\tekkit\launch.bat"' & @CRLF & _
    'goto top' & @CRLF & _
    ':reS' & @CRLF & _
    'del "C:\Dropbox\Server\befehle\restart server.befehl"' & @CRLF & _
    'shutdown /r /f /t 30' & @CRLF & _
    'exit' & @CRLF & _
    ':onM' & @CRLF & _
    'cd "C:\Dropbox\Server\Minecraft"' & @CRLF & _
    'start "" "C:\Dropbox\Server\minecraft\minecraft_server.1.7.9.exe"' & @CRLF & _
    'goto top' & @CRLF & _
    ':onT' & @CRLF & _
    'cd "C:\Dropbox\Server\Tekkit"' & @CRLF & _
    'start "" "C:\Dropbox\Server\tekkit\launch.bat"' & @CRLF & _
    'goto top' & @CRLF & _
    ':cmd' & @CRLF & _
    'del "C:\Dropbox\Server\befehle\start cmd extra.befehl"' & @CRLF & _
    'start "" "C:\Dropbox\Server\cmd\cmd extra.cmd"' & @CRLF & _
    'goto top'

    [/autoit] [autoit][/autoit] [autoit]

    _RunDos($sBatch)

    [/autoit]

    Ich bin nicht so fit in Batch, daher führe ich den Code nicht aus da ich nicht genau weiß was da passiert.
    Teste du mal selber, wenn der Batch Code richtig geschrieben ist sollte das so laufen.

  • Batch skript in auto it ausführen

    • Yjuq
    • 3. Januar 2015 um 08:48

    Zeig mir doch mal bitte dein Batch Code.
    Eigentlich dürfte das ohne Probleme so funktionieren.

    €dit: Oder noch besser gleich das Skript mit dem Code den du via _RunDos() ausführst.

  • AutoIt-Object -- dynamische Wertezuweisung an Properties

    • Yjuq
    • 3. Januar 2015 um 07:42

    Hey, ich weiß dass das Thema schon erledigt ist, jedoch habe ich noch eine mögliche Möglichkeit gefunden. Bei dieser kann sogar das Objekt mit der For...In...Next durchlaufen werden. Ich denke es ist erwähnenswert da es ggf. noch anderen suchenden helfen könnte. Die Lösung stellt die Funktion _AutoItObject_AddEnum() dar.

    Dort werden 2 Funktionen angegeben die dafür sorgen dass nur ausgewählte Elemente (in diesem Fall Properties) durchlaufen werden. Die erste Funktion (der Parameter $sNextFunc) durchläuft alle Elemente. Der zweite Parameter ($sResetFunc) ist eigentlich gar nicht nötig, die dort angebende Funktion wird als erstes aufgerufen. Man kann da noch ein paar Sachen vorab verwaltet wenn man möchte. Z.B. wenn man ein System hat in verschiedenen For-Schleifen andere Properties auszugeben.

    Beide Funktionen müssen exakt 2 Parameter enthalten. Einmal der Verweis zu dem Objekt ($self) und einmal zu dem Iterator. Hier ist es wichtig das unbedingt den zweiten Parameter via ByRef übergeben wird da sonst der Iterator (z.B. beim zählen) nicht verändert werden kann.

    In der Hilfe steht zwar dass der letzte optionale Parameter nicht zu gebrauchen ist, aber das teste ich noch aus. Natürlich gibt es jetzt noch ein anschauliches Beispiel um die ausgewählten Properties dynamisch in einer For-Schleife abzurufen:

    Spoiler anzeigen
    [autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit] [autoit][/autoit] [autoit]

    #include <AutoItObject.au3>

    [/autoit] [autoit][/autoit] [autoit]

    _AutoItObject_Startup()

    [/autoit] [autoit][/autoit] [autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit] [autoit][/autoit] [autoit]

    ; Array mit den Properties-Bezeichner.
    Global Const $asProperty[] = ['Alpha', 'Beta', 'Gamma', 'Delta']
    Global $iElement

    [/autoit] [autoit][/autoit] [autoit]

    ; Einfaches AutoIt Objekt
    Global $oObj = _AutoItObject_Create()
    _AutoItObject_AddProperty($oObj, 'Alpha', $ELSCOPE_PUBLIC, 1)
    _AutoItObject_AddProperty($oObj, 'Beta', $ELSCOPE_PUBLIC, 2)
    _AutoItObject_AddProperty($oObj, 'Gamma', $ELSCOPE_PUBLIC, 3)
    _AutoItObject_AddProperty($oObj, 'Delta', $ELSCOPE_PUBLIC, 4)
    ; Hier der Enum
    _AutoItObject_AddEnum($oObj, 'NextProperty', 'ResetProperty')

    [/autoit] [autoit][/autoit] [autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit] [autoit][/autoit] [autoit]

    ; Alle Elemente durchlaufen.
    For $iElement In $oObj
    ConsoleWrite(' ' & $iElement & @CRLF)
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit] [autoit][/autoit] [autoit]

    _AutoItObject_Shutdown()

    [/autoit] [autoit][/autoit] [autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit] [autoit][/autoit] [autoit]

    ; Der zweite Parameter muss in jedem Fall ByRef übergeben werden.
    Func NextProperty($self, ByRef $iterator)

    [/autoit] [autoit][/autoit] [autoit]

    ; Sobald der Iterator alle Array Elemente durchlaufen hat soll der Schleifendurchlauf abgebrochen werden.
    ; Dafür muss ein Error Code zurückgegeben werden, ansonsten läuft es einfach weiter.
    If $iterator = UBound($asProperty) Then Return SetError(1)
    $iterator += 1 ; Das ist wohl klar...

    [/autoit] [autoit][/autoit] [autoit]

    Return Execute('$self.' & $asProperty[$iterator -1]) ; Inhalt des Elements zurück geben.
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Da nicht gebraucht reicht es beides per ByVal zu übergeben.
    ; So meckert auch nicht die SciTE wenn man die Parameter nicht nutzt.
    Func ResetProperty($self, $iterator)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit]


    Ob sich mit einem Workaround auch die Properties so in der For-Schleife ändern lassen kann ich noch nicht sagen. Arbeite daran, wäre wirklich praktisch wenn das so ginge. Vielleicht hat ja einer von euch eine Idee dazu? :D

  • ExcludeFunc - Abhängigkeitsprüfung von verschachtelten Funktionen

    • Yjuq
    • 2. Januar 2015 um 19:00

    Super, dann kann ich die Funktion gerade mal bei deinen Update testen.
    Lese mich gerade sowieso noch in deine Änderungen ein. Hehe :D
    Mal schaun, Feedback gibt's später.

  • Kontaktlinsen ade :(

    • Yjuq
    • 2. Januar 2015 um 13:34

    Mach dir nichts raus, ich trage auch mittlerweile eine Brille :D
    Naja, eigentlich ziehe ich sie nur auf wenn ich Auto fahre... :S

  • Autoit GDI+ GUI ohne rahnen

    • Yjuq
    • 1. Januar 2015 um 20:30

    Ach Mensch... Schau doch mal in der Referenz nach, da steht es doch schon fast unübersehbar.
    https://www.autoitscript.com/autoit3/docs/f…s/GUICreate.htm

    Darüber hinaus sollten Leerstrings nicht für den Style und ExStyle angegeben werden. Benutze lieber -1 für den Standard-(Ex)Style.
    Der letzte Parameter ist für die Angabe der Parent-GUI gedacht.

    €dit: Sorry, den Post habe ich zu spät gelesen.

  • Autoit GDI+ GUI ohne rahnen

    • Yjuq
    • 1. Januar 2015 um 20:20

    Frage: Warum benutzt du eine "Dummy-GUI"? Brauchst du doch gar nicht...

    Siehe dir mal den Style $WS_POPUP an!

  • "Tree"-Variable

    • Yjuq
    • 31. Dezember 2014 um 12:38

    Sorry dass die Antwort erst so spät kommt. Das ließe sich mit Execute() realisieren.
    Bei dem Skript macht BugFix dass auch so: AutoIt-Object -- dynamische Wertezuweisung an Properties

  • Text "lesbar" machen

    • Yjuq
    • 29. Dezember 2014 um 06:24

    Final Fantasy? Da gibt's doch die Al Bhed Sprache. Vielleicht ist das in dieser verschlüsselt ^^
    Ich hatte dazu mal ein Skript geschrieben um solche Dinge zu übersetzen :D

    €dit: Ne sorry, zamorazhimat ist leider nicht in Al Bhed geschrieben. Aber hinter die Bedeutung komme ich früher oder später noch. ^^

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™