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. sc4ry

Beiträge von sc4ry

  • Remote Control

    • sc4ry
    • 14. August 2009 um 10:06

    ich umgeh ja eigentlich nichts, sondern wende nur die bestehenden möglichkeiten so an, wie diese genutzt werden müssen.

  • Remote Control

    • sc4ry
    • 14. August 2009 um 08:36

    hmm, also das mit FreeCap klappt nicht. anscheinend ist das nur SOCKS kompatibel.

    Ich brauche ein Tool, dass mich mit User/PW am Proxy anmeldet, und dann verschiedene Programme, die diese Einstellmöglichkeit nicht haben, darüber mit dem Internet verbindet.
    Leider finde ich selber nicht wirklich was dazu ... kennt einer von euch sowas?

    Was ist denn mit Tight- und UltraVNC ... unterstützen die Proxy mit User/ Passwort?
    Kann man mit den Viewern auf einen RealVNC-Server zugreifen?

  • Remote Control

    • sc4ry
    • 13. August 2009 um 11:15

    ich bin jetzt endlich auf eins der tools gestoßen, über die man sämtliche tools über nen proxy routen kann (FreeCAP, ganz schön schwer sowas zu finden, wenn fast alles geblockt wird *g*).
    Leider geht das auch nicht =/

  • Remote Control

    • sc4ry
    • 13. August 2009 um 09:04

    Hiho,

    ich brauch mal eure Hilfe.

    Hier auf der Arbeit wurde ein neuer Proxy aufgesetzt, der jede Menge Seiten sperrt.
    Viel problematischer für mich ist jedoch, dass ich nun auf meinen RealVNC-Server nicht mehr komme.

    Am Proxy muss man sicher mit User/PW authentifizieren ... nur scheint meine RealVNC-Variante (obwohl Enterprise) dies nicht zu unterstützen.

    Zitat

    ---------------------------
    VNC Viewer: Question:
    ---------------------------
    The proxy requires a username and password. This is not supported by this version of VNC.
    Do you wish to attempt to reconnect to u?
    ---------------------------
    Ja Nein
    ---------------------------

    Alles anzeigen

    welche Version soll das denn unterstützen? Bzw. müsste das ja nur der Viewer sein, ... leider kann ich die RealVNC-Homepage auch nicht aufrufen, um dort nach Infos zu suchen.

    Oder, gibt es Tools (bzw es gibt sie, aber ich weiss grad keinen namen mehr) ... wo man den proxy mit allen daten einstellt und dann daraus sämtliche programme startet, die über den proxy arbeiten? für die tools, die das nicht selber von haus aus unterstützen.

    Oder, welches andere Remote-Tool unterstützt die Verbindung über Proxy mit User/PW?

    Ich weiss das ich das nicht sollte, aber ich mache nichts schlimmes ... ich muss nur hin und wieder mal nach dem rechten sehen =)

  • Script läuft nicht, wenn der PC gesperrt ist

    • sc4ry
    • 7. August 2009 um 21:22

    also ich hatte das prob auch mal, ... eins meiner neueren script läuft aber auch, wenn der pc gesperrt ist, da es ControlClick und ControlSend verwendet.

    vllt damit mal versuchen

  • TCPsend über IRC?

    • sc4ry
    • 7. August 2009 um 16:51

    jo, so meine ich auch, dass das ist.

    aber wie genau sende ich nun daten, dass das gegenüber die auch in seinem irc-clienten sieht?
    bzw wie sende ich überhaupt daten *g*

  • TCPsend über IRC?

    • sc4ry
    • 7. August 2009 um 16:18

    Hey,

    kann ich mit nem AutoIt-Script Daten über mIRC senden?
    Also eigentlich werden die Daten in mIRC ja auch per TCP geschickt, nur das aushandeln, ob Daten geschickt werden (dürfen), geht per dcc, oder? hoffe ich habs noch richtig im kopf *g*

    ist es nun möglich, auf ein ereignis im IRC (soweit bin ich schon *g*), ein file zu senden?

  • Super Mario Jump n Run

    • sc4ry
    • 7. August 2009 um 14:42

    hiho,

    super geiles spiel, ist echt super gelungen.
    habe soweit auch keine fehler feststellen können, einzig was nervt, dass sich das spiel immer beendet, wenn man kaputt ist.
    aber das wird sicher noch anders werden =)

  • Run.Me - Multipler Programmstarter

    • sc4ry
    • 4. August 2009 um 22:55

    Hiho,

    noch ein kleines update. ab jetzt können auch direkt parameter mit übergeben werden.
    aus dem grund kann aber leider die alte DB nicht mehr verwendet werden, da eine Spalte neu generiert wurde.

  • Computerüberwachung

    • sc4ry
    • 4. August 2009 um 21:24

    wieso sollte er vom unteren PC NICHT überwacht werden können?

    In jedem Fall würde ich auch HijackThis empfehlen und prüfen, welche Tools alle laufen. Am besten mit ner Live-CD oder im abgesicherten Modus, damit sich das Tool nicht evtl. im laufenden Betrieb versteckt und somit nicht gesehen werden kann. Es könnte sein, dass dir ein Server-Tool untergeschoben wurde und somit dein kompletter Desktop/ Screen und sonst noch alles an Daten abgefangen wird. Killst du den Server (und gibt es keine Backdoor), hast du ruhe.

    Auch kann es einfach sein, dass eine Man-In-The-Middle-Attack auf dich läuft ... und der untere PC sich mit einem Tool (CuA) als kürzester Weg ins Internet ausgibt und die ganze Kommunikation über diesen läuft. Alles was nicht (SSL) verschlüsselt ist, kann dann im Klartext mit dem Tool mitgelesen werden. Wie du das allerdings rausfindest, weiss ich auch nicht.

  • Datei auf TrayIcon ziehen

    • sc4ry
    • 4. August 2009 um 21:19

    ok, also leider keine alternative.
    hmm ... was noch ne möglichkeit wäre, ist ein kontextmenüeintrag ... wobei ich das eigentich vermeiden wollte.

    kann man denn folgendes machen?

    und zwar wähle ich die Datei über FileOpenDialog aus ... kann man das Fenster so modden, dass man dort Files reinziehen kann???

  • Run.Me - Multipler Programmstarter

    • sc4ry
    • 4. August 2009 um 21:15

    kleines update im 1. Post

    - wenn Autostart aktiviert ist, wird dies nun auch im Systray mit Haken angezeigt (hatte da irgendwie ne Zeile Code vergessen *g*)
    - nach Programmstart durch doppelklick wird da Fenster wieder versteckt
    - beim beenden des Hauptprogramms werden auch alle laufenden _Run.exe-Instanzen geschlossen

    PS:

    hab noch nen Fehler entdeckt und noch was zugefügt

    - nach Programmstart durch doppelklick erscheint in der Statusbar, was gerade gestartet wurde (2sek), danach wird das Feld wieder geleert und das Fenster dann erst versteckt
    - da ich nun immer die DB erst öffne, wenn ich sie brauche und danach wieder schließe, ist beim EXIT der fehler aufgetreten (da ich dort das SQLite_Open vergessen hatte), dass die Haken (Autostart) nicht gespeichert wurden. ist nun also wieder behoben.

  • Datei auf TrayIcon ziehen

    • sc4ry
    • 3. August 2009 um 20:11

    hey, um nochmal auf das thema zurückzukommen ... wieso sollte es nicht gehen, ein gui über das icon zu legen?
    mich nervt gerade, immer zu der datei zu navigieren, darum ist das thema mit drag&drop auf das icon wieder aktuell *g*

    mein problem ist nur, entweder hab ich ein gui über dem icon und kann das traymenü nicht mehr nutzen (dafür drag&drop) oder umgekehrt (oder sehe ich das falsch)?

  • Dienst will sich nicht per Autoit starten lassen

    • sc4ry
    • 2. August 2009 um 15:24

    vllt hilft das weiter ... http://www.autoitscript.com/forum/index.php?showtopic=80201&hl=service%20udf&st=0

  • Ultimate Vista-Reboot-nach-Update KILLER

    • sc4ry
    • 24. Juli 2009 um 16:39

    Hi,

    ka wer noch die Probleme hat, aber mir geht es tierisch wohin, dass Vista nach jedem Furz-Update immer "ungefragt" neu startet. Ok, man wird gefragt und hat 10 Min. Zeit ... aber ich bin ja nicht den ganzen Tag am PC.

    Es gibt nen RegHack, der das beheben soll, doch leider ergibt sich bei mir keine Änderung ... darum hier das Ultimative Script um das zu stoppen =)
    Der Code mag zwar ausgesprochen lang und besonders kompliziert sein, aber, aber da müsst ihr durch ;)

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon

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

    $Flag = 0

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

    Do
    $WW = WinWait("Windows Update", "Später durchführen")
    If Not @error Then ControlClick("Windows Update", "Später durchführen", "[CLASS:Button; INSTANCE:2]")
    Until $Flag = 1

    [/autoit]
  • Run.Me - Multipler Programmstarter

    • sc4ry
    • 23. Juli 2009 um 17:59

    Hiho,

    nachdem ich für die Arbeit ein Tool geschrieben habe, welche sich bei verschiedenen Programmen automatisch anmeldet, hatte ich eigentlich auch immer im Hinterkopf, ein Programm zu entwickeln, dass zum Autostart vom sämtlichen Programmen verwendet werden kann. Das habe ich nun endlich abgeschlossen.

    Das Tool ermöglicht, nach der Konfiguration eines Programmes, dieses z. B. mit Login zu starten. Zusätzlich können aber auch alle anderen Dateitypen gestartet werden. Somit hätte man die Verknüpfungen hierzu nicht irgendwo auf dem Desktop, sondern in diesem Tool gebündelt. Es ist z. B. auch möglich, Passwortgeschützt Excel-Dokumente direkt öffnen zu lassen.

    Die Daten werden in einer DB gepflegt und in einem ListView angezeigt. Das PW ist verschlüsselt. Um zu verhindern, dass es durch Fehler zu Verzögerungen kommt, werden die Dateien über eine 2. Datei aufgerufen. Damit der Login funktioniert, muss der User neben Name und Passwort, auch selber die Controls bestimmen. Daher sicherlich nur für versierte Benutzer zu empfehlen ... aber die können damit sicher was anfangen.

    Zitat

    - Im Hauptfenster werden die Tools angezeigt, für die ein Eintrag über ADD angelegt wurde
    - Die Spalten können neu/ anders sortiert und die größe verändert werden (wird bei Neustart übernommen) und die Einträge können jeweils mit einem Klick auf den Spaltennamen neu sortiert werden (wird noch nicht übernommen)
    - Mit X und ESC (bei aktiven Fenster) wird das Fenster versteckt, Linksklick aufs Trayicon zeigt/ versteckt das Fenster
    - Größe und Position des Fensters werden auch bei Neustart übernommen (wenn das Tool regulär beendet wird)
    - Programm kann über das Traymenü beendet werden
    - Autostart kann über das Traymenü aktiviert werden
    - zur 1. Spalte im Hauptfenster (mit dem Kästchen): wenn das aktiviert ist, wird dieses Programm beim laden des Tools automatisch mitgestartet
    - Einträge hinzufügen/ ändern/ löschen und/oder die ganze Liste löschen, über Kontextmenü (Rechtsklick in Hauptfenster) möglich
    - Einträge können über einen Doppelklick ausgeführt werden
    - Erklärung add/ change:
    Name: Name, der im Hauptfenster angezeigt wird (falls das Feld leer ist, wird automatisch der Dateiname ohne Endung eingetragen)
    Path: über das Ordnersymbol kann zur Datei, die ausgeführt werden soll, navigiert werden. Über den grünen Pfeil kann die Datei direkt gestartet werden (falls dies nötig ist, um z. B. die Login
    Options zu füllen)
    Im Dropdown-Feld neben dem Namen kann ausgewählt werden, in welchem Zustand das Fenster der Datei gestartet werden soll. Funktioniert aber nur, wenn das Fenster direkt aufgerufen wird, nicht, wenn z. B. ein Login-Fenster vorgeschaltet ist.
    Start Options:
    bei "Start after" können 1 - n Programme (getrennt mit ;) eingetragen werden, auf dessen Beendung gewartet werden soll, bevor die Datei gestartet wird
    bei "wait" kann festgelegt werden, wie lange die Verzögerung sein soll, bis die Datei gestartet wird. Zusätzlich kann die Verzögerung mit "before" vor "Start after", oder mit "after" nach "Start after" ausgeführt werden
    Login Options:
    wenn die Login Options aktiviert werden, startet automatisch das AutoItInfo-Fenster (beim deaktivieren, Klick auf OK oder Cancel wird dies automatisch wieder geschlossen)
    WICHTIG: wenn die Login Options aktiviert sind, MUSS ein TITLE angegeben werden
    Erklärung der restlichen Felder:
    vorne wird immer der Text eingetragen, der zu senden ist, dahinter an welches Control (aus AutoItInfo-Fenster. TIP: mit Doppelklick ;) )
    Falls bei Submit kein Control eingetragen wurde, wird ENTER an das Password-Control geschickt


    TIP: wurden ein TITLE in den LOGIN OPTIONS gepflegt und existiert dieser TITLE schon, bevor die Datei ausgeführt wurde, wird dieser Fenster verwendet

    Alles anzeigen

    Main-Programm:

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=..\..\..\Icons\Feed.ico
    #AutoIt3Wrapper_Compression=4
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <String.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <StaticConstants.au3>
    #include <GuiTab.au3>
    #include <StructureConstants.au3>
    #include <Constants.au3>
    #include <GuiListView.au3>
    #include <GuiStatusBar.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <StatusBarConstants.au3>
    #include <TabConstants.au3>
    #include <WindowsConstants.au3>
    #include <SQLite.dll.au3>
    #include <SQLite.au3>
    #include <Process.au3>
    #Include <Misc.au3>

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

    ;Tooltips
    ;Reihenfolge der Sortierung im ListView speichern
    ;Statusbar-Infos

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

    ;~ Opt("OnExitFunc","OnAutoItExit")
    Opt("GUICloseOnESC", 0)
    Opt("GUIOnEventMode", 1)
    Opt("TrayAutoPause", 0) ;0=no pause, 1=Pause
    Opt("TrayIconDebug", 0) ;0=no info, 1=debug line info
    Opt("TrayMenuMode", 1) ;0=append, 1=no default menu, 2=no automatic check, 4=menuitemID not return
    Opt("TrayOnEventMode", 1) ;0=disable, 1=enable

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

    TraySetClick(8)
    TraySetOnEvent($TRAY_EVENT_PRIMARYDOWN, "_ToogleWindow")

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

    Global $ChangeToolFlag = False, $aRow, $Autostart = 0, $Autostart_On = False, $ShowGui = 0
    $key = Log(986543568)

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

    $Debug_LV = False ; Check ClassName being passed to ListView functions, set to True and use a handle to another control to see it work

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

    Global $hListView, $B_DESCENDING

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

    Local $aParts[2] = [100, -1]
    Local $aText[2] = [@TAB & "", @TAB & " © sc4ry "]

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

    If Not FileExists(@ScriptDir & "\_Run.exe") Then FileInstall("_Run.exe", "_Run.exe")

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

    $sSQliteDll = _SQLite_Startup()
    If @error > 0 Then
    MsgBox(16, "SQLite Error", "SQLite.dll Can't be Loaded!", 5)
    Exit -1
    EndIf

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Run.Me V. 0.1", IniRead("Settings.ini", "Pos", "w", "171"), IniRead("Settings.ini", "Pos", "h", "371"), IniRead("Settings.ini", "Pos", "x", "-1"), IniRead("Settings.ini", "Pos", "y", "-1"), BitOR($WS_SIZEBOX, $WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU), BitOR($WS_EX_WINDOWEDGE, $WS_EX_TOOLWINDOW))
    GUISetOnEvent($GUI_EVENT_CLOSE, "_ToogleHide")
    ;~ GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    $Tab1 = GUICtrlCreateTab(0, 0, IniRead("Settings.ini", "Pos", "w", "171") - 2, IniRead("Settings.ini", "Pos", "h", "371") - 18)
    GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM)
    $TabSheet1 = GUICtrlCreateTabItem("Tools")
    $ListView1 = GUICtrlCreateListView("", 4, 27, IniRead("Settings.ini", "Pos", "w", "171") - 10, IniRead("Settings.ini", "Pos", "h", "371") - 50)
    _GUICtrlListView_AddColumn($ListView1, "", IniRead("Settings.ini", "ColumnWidth", "Column0", "25"))
    _GUICtrlListView_AddColumn($ListView1, "ID", IniRead("Settings.ini", "ColumnWidth", "Column1", "30"))
    _GUICtrlListView_AddColumn($ListView1, "Ext", IniRead("Settings.ini", "ColumnWidth", "Column2", "30"))
    _GUICtrlListView_AddColumn($ListView1, "Name", IniRead("Settings.ini", "ColumnWidth", "Column3", "72"))
    _GUICtrlListView_SetColumnOrder($ListView1, IniRead("Settings.ini", "ColumnOrder", "Order", "0|1|2|3"))
    _GUICtrlListView_SetExtendedListViewStyle($ListView1, BitOR($LVS_EX_CHECKBOXES, $LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_HEADERDRAGDROP))
    GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM)
    $CMenu1 = GUICtrlCreateContextMenu($ListView1)
    $CMenu1_1 = GUICtrlCreateMenuItem("add", $CMenu1)
    GUICtrlSetOnEvent(-1, "_Add_Tool")
    $CMenu1_2 = GUICtrlCreateMenuItem("change", $CMenu1)
    GUICtrlSetOnEvent(-1, "_Change_Tool")
    $CMenu1_3 = GUICtrlCreateMenuItem("", $CMenu1)
    $CMenu1_4 = GUICtrlCreateMenuItem("delete", $CMenu1)
    GUICtrlSetOnEvent(-1, "_Del_Tool")
    $CMenu1_5 = GUICtrlCreateMenuItem("", $CMenu1)
    $CMenu1_6 = GUICtrlCreateMenuItem("clear", $CMenu1)
    GUICtrlSetOnEvent(-1, "_Clear_Tool")
    #cs
    $TabSheet2 = GUICtrlCreateTabItem("Sites")
    $ListView2 = GUICtrlCreateListView("", 4, 27, IniRead("Settings.ini", "Pos", "w", "171") - 10, IniRead("Settings.ini", "Pos", "h", "371") - 50)
    _GUICtrlListView_AddColumn($ListView2, "", 20)
    _GUICtrlListView_AddColumn($ListView2, "ID", 30)
    _GUICtrlListView_AddColumn($ListView2, "Name", 107)
    _GUICtrlListView_SetExtendedListViewStyle($ListView2, BitOR($LVS_EX_CHECKBOXES, $LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES))
    GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM)
    $CMenu2 = GUICtrlCreateContextMenu($ListView2)
    $CMenu2_1 = GUICtrlCreateMenuItem("add", $CMenu2)
    $CMenu2_2 = GUICtrlCreateMenuItem("change", $CMenu2)
    $CMenu2_3 = GUICtrlCreateMenuItem("", $CMenu2)
    $CMenu2_4 = GUICtrlCreateMenuItem("delete", $CMenu2)
    $CMenu2_5 = GUICtrlCreateMenuItem("", $CMenu2)
    $CMenu2_6 = GUICtrlCreateMenuItem("clear", $CMenu2)
    #ce
    GUICtrlCreateTabItem("")
    $StatusBar1 = _GUICtrlStatusBar_Create($Form1, $aParts, $aText)
    GUICtrlSetResizing(GUICtrlGetHandle($StatusBar1), $GUI_DOCKBOTTOM + $GUI_DOCKLEFT + $GUI_DOCKRIGHT + $GUI_DOCKHEIGHT)
    _GUICtrlStatusBar_SetMinHeight($StatusBar1, 17)

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

    If Not FileExists(@ScriptDir & "\database") Then
    $DB_File = _SQLite_Open(@ScriptDir & "\database")
    _SQLite_Exec($DB_File, "Create Table Tools (Name, Path, Show, Start_After, Start_Wait, Title, User, User_F, Password, Password_F, Optional, Optional_F, Submit, Submit_F, Autostart, Parameter);")
    $ShowGui = 1
    Else
    $DB_File = _SQLite_Open(@ScriptDir & "\database")
    _SQLite_Exec($DB_File, "Select Autostart, Rowid, Path, Name From Tools", "_InsertTitle")
    EndIf

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

    _SQLite_Close ()

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

    Func _InsertTitle($aRow)
    Local $index = -1, $subItem = 0
    For $s In $aRow
    If $s = "Autostart" Then Return
    If $index = -1 Then
    $index = _GUICtrlListView_AddItem($ListView1, "")
    If $s = 1 Then
    _GUICtrlListView_SetItemChecked($ListView1, $index, True)
    $Autostart_On = True
    EndIf
    Else
    $subItem += 1
    If $subItem = 2 Then
    $Pathsplit = _PathSplit1($s)
    If Not @error Then _GUICtrlListView_AddSubItem($ListView1, $index, $Pathsplit[7], $subItem)
    Else
    _GUICtrlListView_AddSubItem($ListView1, $index, $s, $subItem)
    If $Autostart_On = True Then
    ShellExecute("_Run.exe", $s, @ScriptDir);_RunDOS(@ScriptDir & "\_Run.exe " & $s)
    $Autostart_On = False
    EndIf
    EndIf
    EndIf
    Next
    EndFunc ;==>_InsertTitle

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

    If $ShowGui = 1 Then GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    WinSetOnTop($Form1, "", 1)
    GUIRegisterMsg($WM_SIZE, "_ResizeStatusBar")
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

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

    Global $B_DESCENDING[_GUICtrlListView_GetColumnCount($ListView1)]
    ;~ Global $B_DESCENDING[_GUICtrlListView_GetColumnCount($ListView2)]

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

    $TP2 = TrayCreateItem("Autostart")
    TrayItemSetOnEvent(-1, "_Autostart")
    TrayCreateItem("")
    TrayCreateItem("Exit")
    TrayItemSetOnEvent(-1, "_Exit")

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

    _CheckAutostart()
    If $Autostart = 1 Then TrayItemSetState($TP2, 1)

    While 1
    Sleep(100)
    If _IsPressed("1B") And WinGetState($Form1) = 15 Then _ToogleHide()
    WEnd

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

    ;;;; TOOL_FUNCS

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

    Func _Add_Tool()

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

    Opt("GUIOnEventMode", 0)

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

    #Region ### START Koda GUI section ### Form=o:\autoit\autoit3_portable\scite\koda\forms\form1.kxf
    $Form2_1 = GUICreate("Add Tool", 377, 355, Default, Default, Default, $WS_EX_ACCEPTFILES, $Form1)
    $Group1 = GUICtrlCreateGroup("ID: ", 0, 0, 377, 65)
    $Input1 = GUICtrlCreateInput("Name", 8, 16, 73, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY, $WS_BORDER))
    $Input2 = GUICtrlCreateInput("", 88, 16, 145, 21)
    $Input3 = GUICtrlCreateInput("Path", 8, 40, 73, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY, $WS_BORDER))
    $Input4 = GUICtrlCreateInput("", 88, 40, 242, 21, Default)
    $Combo1 = GUICtrlCreateCombo("", 240, 16, 129, 25)
    $Button1 = GUICtrlCreateButton("", 331, 40, 20, 20, $BS_ICON)
    GUICtrlSetImage(-1, "shell32.dll", -5, 0)
    $Button4 = GUICtrlCreateButton("", 353, 40, 20, 20, BitOR($BS_CENTER, $BS_VCENTER, $BS_ICON))
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetImage(-1, "shell32.dll", -177, 0)
    $Checkbox1 = GUICtrlCreateCheckbox("Start Options", 3, 71, 361, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("", 0, 82, 377, 90)
    $Input20 = GUICtrlCreateInput("Parameter", 8, 96, 73, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY, $WS_BORDER))
    $Input21 = GUICtrlCreateInput("", 88, 96, 281, 21)
    $Checkbox2 = GUICtrlCreateCheckbox("Start after ...", 8, 122, 81, 17, BitOR($BS_CHECKBOX, $BS_AUTOCHECKBOX, $BS_CENTER, $WS_TABSTOP))
    $Input5 = GUICtrlCreateInput("", 88, 119, 281, 21)
    $Checkbox3 = GUICtrlCreateCheckbox("wait", 8, 146, 81, 17, BitOR($BS_CHECKBOX, $BS_AUTOCHECKBOX, $BS_CENTER, $WS_TABSTOP))
    $Input6 = GUICtrlCreateInput("", 88, 142, 73, 21, BitOR($ES_NUMBER, $ES_LEFT, $ES_AUTOHSCROLL))
    $Radio1 = GUICtrlCreateRadio("seconds", 169, 145, 65, 17, 0)
    GUICtrlSetState(-1, $GUI_Checked)
    $Radio2 = GUICtrlCreateRadio("minutes", 233, 145, 57, 17)
    $Combo2 = GUICtrlCreateCombo("", 296, 142, 74, 17)
    $GroupEnd2 = GUICtrlCreateDummy()
    _SetGroupState($Group2, $GroupEnd2, $GUI_DISABLE)
    $Checkbox4 = GUICtrlCreateCheckbox("Login Options", 4, 177, 361, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group3 = GUICtrlCreateGroup("", 0, 188, 377, 145)
    $Input7 = GUICtrlCreateInput("Title", 8, 204, 73, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY, $WS_BORDER))
    $Input12 = GUICtrlCreateInput("", 88, 205, 281, 21)
    $Input8 = GUICtrlCreateInput("User", 8, 228, 73, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY, $WS_BORDER))
    $Input13 = GUICtrlCreateInput("", 88, 229, 121, 21)
    $Input14 = GUICtrlCreateInput("", 216, 229, 153, 21)
    $Input9 = GUICtrlCreateInput("Password", 8, 252, 73, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY, $WS_BORDER))
    $Input15 = GUICtrlCreateInput("", 88, 253, 121, 21, BitOR($ES_PASSWORD, $ES_LEFT, $ES_AUTOHSCROLL))
    $Input16 = GUICtrlCreateInput("", 216, 253, 153, 21)
    $Input10 = GUICtrlCreateInput("Optional", 8, 276, 73, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY, $WS_BORDER))
    $Input17 = GUICtrlCreateInput("", 88, 277, 121, 21)
    $Input18 = GUICtrlCreateInput("", 216, 277, 153, 21)
    $Input11 = GUICtrlCreateInput("Submit", 8, 300, 73, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY, $WS_BORDER))
    $Combo3 = GUICtrlCreateCombo("", 88, 301, 121, 25)
    $Input19 = GUICtrlCreateInput("", 216, 301, 153, 21)
    $GroupEnd3 = GUICtrlCreateDummy()
    _SetGroupState($Group3, $GroupEnd3, $GUI_DISABLE)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button2 = GUICtrlCreateButton("Ok", 0, 337, 65, 17, 0)
    $Button3 = GUICtrlCreateButton("Cancel", 312, 337, 65, 17, 0)

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

    If $ChangeToolFlag = True Then
    $DB_File = _SQLite_Open(@ScriptDir & "\database")

    _SQLite_QuerySingleRow($DB_File, "Select Rowid, * From Tools Where Rowid = '" & _GUICtrlListView_GetItemText(GUICtrlGetHandle($ListView1), _GUICtrlListView_GetSelectedIndices($ListView1), 1) & "' LIMIT 1;", $aRow)
    If Not @error Then

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

    GUICtrlSetData($Group1, "ID: " & $aRow[0])
    GUICtrlSetData($Input2, $aRow[1])
    GUICtrlSetData($Input4, $aRow[2])
    GUICtrlSetState($Button4, $GUI_ENABLE)
    GUICtrlSetData($Combo1, "Show|ShowDefault|Maximize|Minimize|Hide|ShowMaximized|ShowMinimized|ShowMinNoActive|ShowNa|ShowNoActive|ShowNormal", $aRow[3])

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

    GUICtrlSetData($Combo2, "before|after", "after")
    GUICtrlSetData($Combo3, "Mouse|Enter", "Enter")

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

    If $aRow[4] <> "" Or $aRow[5] <> "" Or $aRow[16] <> "" Then
    GUICtrlSetState($Checkbox1, 1)
    _SetGroupState($Group2, $GroupEnd2, $GUI_ENABLE)
    If $aRow[4] <> "" Then
    GUICtrlSetState($Checkbox2, 1)
    GUICtrlSetData($Input5, $aRow[4])
    EndIf
    If $aRow[5] <> "" Then
    GUICtrlSetState($Checkbox3, 1)
    $StringSplit = StringSplit($aRow[5], "%")
    If Not @error Then
    GUICtrlSetData($Input6, $StringSplit[1] / 1000)
    GUICtrlSetData($Combo2, "")
    GUICtrlSetData($Combo2, "before|after", $StringSplit[2])
    EndIf
    EndIf
    If $aRow[16] <> "" Then GUICtrlSetData($Input21, $aRow[16])
    EndIf

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

    If $aRow[6] <> "" Or $aRow[7] <> "" Or $aRow[8] <> "" Or $aRow[9] <> "" Or $aRow[10] <> "" Or $aRow[11] <> "" Or $aRow[12] <> "" Or $aRow[14] <> "" Then
    GUICtrlSetState($Checkbox4, 1)
    _SetGroupState($Group3, $GroupEnd3, $GUI_ENABLE)
    GUICtrlSetData($Input12, $aRow[6])
    GUICtrlSetData($Input13, $aRow[7])
    GUICtrlSetData($Input14, $aRow[8])
    GUICtrlSetData($Input15, _StringEncrypt(0, $aRow[9], $key, 4))
    GUICtrlSetData($Input16, $aRow[10])
    GUICtrlSetData($Input17, $aRow[11])
    GUICtrlSetData($Input18, $aRow[12])
    GUICtrlSetData($Input19, $aRow[14])
    GUICtrlSetData($Input21, $aRow[15])
    GUICtrlSetData($Combo3, "")
    GUICtrlSetData($Combo3, "Mouse|Enter", $aRow[13])
    EndIf
    EndIf
    Else
    GUICtrlSetData($Combo1, "Show|ShowDefault|Maximize|Minimize|Hide|ShowMaximized|ShowMinimized|ShowMinNoActive|ShowNa|ShowNoActive|ShowNormal", "ShowDefault")
    GUICtrlSetData($Combo2, "before|after", "after")
    GUICtrlSetData($Combo3, "Mouse|Enter", "Enter")
    EndIf

    _SQLite_Close ()

    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    GUIDelete($Form2_1)
    ProcessClose("Au3Info.exe")
    ExitLoop
    Case $Button3
    GUIDelete($Form2_1)
    ProcessClose("Au3Info.exe")
    ExitLoop
    Case $Button4
    $PS = _PathSplit1(GUICtrlRead($Input4))
    FileChangeDir($PS[2])
    ShellExecute($PS[0])
    FileChangeDir(@ScriptDir)
    Case $Button1
    $FileOpenDialog = FileOpenDialog("File", "", "All (*.*)", Default, Default, $Form2_1)
    If $FileOpenDialog <> "" And Not @error Then
    GUICtrlSetData($Input4, $FileOpenDialog)
    GUICtrlSetState($Button4, $GUI_ENABLE)
    If GUICtrlRead($Input2) = "" Then
    $FileName = _PathSplit1($FileOpenDialog)
    GUICtrlSetData($Input2, $FileName[6])
    EndIf
    EndIf
    FileChangeDir(@ScriptDir)
    Case $Checkbox1
    If GUICtrlRead($Checkbox1) = 1 Then
    _SetGroupState($Group2, $GroupEnd2, $GUI_ENABLE)
    Else
    _SetGroupState($Group2, $GroupEnd2, $GUI_DISABLE)
    EndIf
    Case $Checkbox4
    If GUICtrlRead($Checkbox4) = 1 Then
    _SetGroupState($Group3, $GroupEnd3, $GUI_ENABLE)
    FileInstall("Au3Info.exe", "Au3Info.exe", 1)
    Run("Au3Info.exe", @ScriptDir)
    Else
    _SetGroupState($Group3, $GroupEnd3, $GUI_DISABLE)
    ProcessClose("Au3Info.exe")
    EndIf
    Case $Button2
    If GUICtrlRead($Input2) = "" Or GUICtrlRead($Input4) = "" Then
    MsgBox(16, "Data is missing", "Please enter a Name and a valid Path.", 5, $Form2_1)
    ContinueLoop
    EndIf
    If GUICtrlRead($Checkbox4) = 1 And GUICtrlRead($Input12) = "" Then
    MsgBox(16, "Data is missing", "Please enter a Title.", 5, $Form2_1)
    ContinueLoop
    EndIf
    $Name = GUICtrlRead($Input2)
    $Path = GUICtrlRead($Input4)
    $Show = GUICtrlRead($Combo1)
    If GUICtrlRead($Checkbox1) = 1 Then
    If GUICtrlRead($Checkbox2) = 1 Then
    $Start_After = GUICtrlRead($Input5)
    Else
    $Start_After = ""
    EndIf
    If GUICtrlRead($Checkbox3) = 1 Then
    If GUICtrlRead($Radio2) = 1 Then
    $Time = GUICtrlRead($Input6) * 60 * 1000
    Else
    $Time = GUICtrlRead($Input6) * 1000
    EndIf
    If $Time <= 0 Then
    $Start_Wait = ""
    Else
    $Start_Wait = $Time & "%" & GUICtrlRead($Combo2)
    EndIf
    Else
    $Start_Wait = ""
    EndIf
    If GUICtrlRead($Input21) <> "" Then $Parameter = GUICtrlRead($Input21)
    Else
    $Start_After = ""
    $Start_Wait = ""
    $Parameter = ""
    EndIf
    If GUICtrlRead($Checkbox4) = 1 Then
    $Title = GUICtrlRead($Input12)
    $User = GUICtrlRead($Input13)
    $User_F = GUICtrlRead($Input14)
    $Password = _StringEncrypt(1, GUICtrlRead($Input15), $key, 4)
    $Password_F = GUICtrlRead($Input16)
    $Optional = GUICtrlRead($Input17)
    $Optional_F = GUICtrlRead($Input18)
    $Submit = GUICtrlRead($Combo3)
    $Submit_F = GUICtrlRead($Input19)
    Else
    $Title = ""
    $User = ""
    $User_F = ""
    $Password = ""
    $Password_F = ""
    $Optional = ""
    $Optional_F = ""
    $Submit = ""
    $Submit_F = ""
    EndIf

    $DB_File = _SQLite_Open(@ScriptDir & "\database")

    If $ChangeToolFlag = True Then
    _SQLite_Exec($DB_File, "Update Tools Set Name='" & $Name & "', Path='" & $Path & "', Show='" & $Show & "', Start_After='" & $Start_After & "', Start_Wait='" & $Start_Wait & "', Title='" & $Title & "', User='" & $User & "', User_F='" & $User_F & "', Password='" & $Password & "', Password_F='" & $Password_F & "', Optional='" & $Optional & "', Optional_F='" & $Optional_F & "', Submit='" & $Submit & "', Submit_F='" & $Submit_F & "', Parameter='" & $Parameter & "' Where rowid = " & StringTrimLeft(GUICtrlRead($Group1), 4) & ";")
    $index = _GUICtrlListView_GetSelectedIndices($ListView1)
    _GUICtrlListView_AddSubItem($ListView1, $index, StringTrimLeft(GUICtrlRead($Group1), 4), 1)
    $Pathsplit = _PathSplit1($Path)
    If Not @error Then _GUICtrlListView_AddSubItem($ListView1, $index, $Pathsplit[7], 2)
    _GUICtrlListView_AddSubItem($ListView1, $index, $Name, 3)
    Else
    _SQLite_Exec($DB_File, "Insert into Tools values ('" & $Name & "','" & $Path & "','" & $Show & "','" & $Start_After & "','" & $Start_Wait & "','" & $Title & "', '" & $User & "', '" & $User_F & "', '" & $Password & "', '" & $Password_F & "', '" & $Optional & "', '" & $Optional_F & "', '" & $Submit & "', '" & $Submit_F & "', '', '" & $Parameter & "');")
    $index = _GUICtrlListView_AddItem($ListView1, "")
    _GUICtrlListView_AddSubItem($ListView1, $index, _SQLite_LastInsertRowID($DB_File), 1)
    $Pathsplit = _PathSplit1($Path)
    If Not @error Then _GUICtrlListView_AddSubItem($ListView1, $index, $Pathsplit[7], 2)
    _GUICtrlListView_AddSubItem($ListView1, $index, $Name, 3)
    EndIf

    _SQLite_Close ()

    GUIDelete($Form2_1)
    ProcessClose("Au3Info.exe")
    ExitLoop
    EndSwitch
    If _IsPressed("1B") Then
    GUIDelete($Form2_1)
    ProcessClose("Au3Info.exe")
    ExitLoop
    EndIf
    WEnd

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

    Opt("GUIOnEventMode", 1)

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

    EndFunc ;==>_Add_Tool

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

    Func _Change_Tool()
    Global $ChangeToolFlag = True
    _Add_Tool()
    Global $ChangeToolFlag = False
    EndFunc ;==>_Change_Tool

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

    Func _Del_Tool()
    $GetSelIndices = _GUICtrlListView_GetSelectedIndices($ListView1)
    If Not @error Then
    $MsgBox = MsgBox(33, "Delete Item?", "Do you really want to delete " & _GUICtrlListView_GetItemText(GUICtrlGetHandle($ListView1), $GetSelIndices, 3) & " ?", Default, $Form1)
    If $MsgBox = 1 Then
    $DB_File = _SQLite_Open(@ScriptDir & "\database")
    $d = _SQLite_Exec(-1, "Delete From Tools Where rowid = '" & _GUICtrlListView_GetItemText(GUICtrlGetHandle($ListView1), $GetSelIndices, 1) & "'")
    _SQLite_Close ()
    _GUICtrlListView_DeleteItem(GUICtrlGetHandle($ListView1), $GetSelIndices)
    EndIf
    EndIf
    EndFunc ;==>_Del_Tool

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

    Func _Clear_Tool()
    $MsgBox = MsgBox(17, "Delete All Items?", "Do you really want to delete all Items?", Default, $Form1)
    If $MsgBox = 1 Then
    _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($ListView1))
    $DB_File = _SQLite_Open(@ScriptDir & "\database")
    _SQLite_Exec($DB_File, "Delete From Tools")
    _SQLite_Close ()
    EndIf
    EndFunc ;==>_Clear_Tool

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

    Func _SetGroupState($nIDStart, $nIDStop, $nState)
    ; Author: Prog@ndy
    Local $i
    For $i = $nIDStart To $nIDStop
    GUICtrlSetState($i, $nState)
    Next
    EndFunc ;==>_SetGroupState

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

    Func _ToogleHide()
    GUISetState(@SW_HIDE)
    EndFunc ;==>_ToogleHide

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

    Func _ToogleWindow()
    $WinState = WinGetState($Form1)
    If $WinState = 5 Then
    GUISetState(@SW_SHOW)
    Else
    GUISetState(@SW_HIDE)
    EndIf
    EndFunc ;==>_ToogleWindow

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

    Func _ResizeStatusBar()
    _GUICtrlStatusBar_Resize($StatusBar1)
    EndFunc ;==>_ResizeStatusBar

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

    Func _Autostart()
    _CheckAutostart()
    If $Autostart = 1 Then
    RegDelete("HKCU\Software\Microsoft\Windows\CurrentVersion\Run\", @ScriptName)
    TrayItemSetState($TP2, 4)
    Else
    RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Run\", @ScriptName, "REG_SZ", @ScriptFullPath)
    TrayItemSetState($TP2, 1)
    EndIf
    EndFunc ;==>_Autostart

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

    Func _CheckAutostart()
    $RegRead = RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Run\", @ScriptName)
    If Not @error Then
    $Autostart = 1
    Else
    $Autostart = 0
    EndIf
    Return $Autostart
    EndFunc ;==>_CheckAutostart

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

    ;~ Func _Exit()
    ;~ Exit
    ;~ EndFunc ;==>_Exit

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

    Func _Exit()
    $WinGetPos = WinGetPos($Form1)
    IniWrite("Settings.ini", "Pos", "x", $WinGetPos[0])
    IniWrite("Settings.ini", "Pos", "y", $WinGetPos[1])
    IniWrite("Settings.ini", "Pos", "w", $WinGetPos[2] - 8)
    IniWrite("Settings.ini", "Pos", "h", $WinGetPos[3] - 24)
    For $i = 0 To 3
    IniWrite("Settings.ini", "ColumnWidth", "Column" & $i, _GUICtrlListView_GetColumnWidth($ListView1, $i))
    Next
    IniWrite("Settings.ini", "ColumnOrder", "Order", _GUICtrlListView_GetColumnOrder($ListView1))
    $DB_File = _SQLite_Open(@ScriptDir & "\database")
    For $i = 0 To _GUICtrlListView_GetItemCount($ListView1) - 1
    If _GUICtrlListView_GetItemChecked($ListView1, $i) = 1 Then
    _SQLite_Exec($DB_File, "Update Tools Set Autostart='1' Where rowid = " & _GUICtrlListView_GetItemText($ListView1, $i, 1) & ";")
    Else
    _SQLite_Exec($DB_File, "Update Tools Set Autostart='""' Where rowid = " & _GUICtrlListView_GetItemText($ListView1, $i, 1) & ";")
    EndIf
    Next
    _SQLite_Close ()
    _SQLite_Shutdown ()
    $ProcList = ProcessList("_Run.exe")
    If Not @error Then
    For $i = 1 To $ProcList[0][0]
    ProcessClose($ProcList[$i][1])
    Next
    EndIf
    Exit
    EndFunc

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

    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
    $CurTab = _GUICtrlTab_GetCurSel($Tab1)
    If $CurTab = 0 Then
    $hListView = $ListView1
    $CurCMenu = $CMenu1
    ElseIf $CurTab = 1 Then
    ;~ $hListView = $ListView2
    ;~ $CurCMenu = $CMenu2
    ;~ $DESCENDING = $B_DESCENDING
    EndIf
    $hWndListView = $hListView ; ID des LV
    If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView) ; ID des LV
    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
    Case $hWndListView
    Switch $iCode
    Case $NM_DBLCLK
    Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
    Local $aInfo[5] = [$hWndFrom, $iIDFrom, $iCode, DllStructGetData($tInfo, "Index"), _
    DllStructGetData($tInfo, "SubItem")]
    If $CurTab = 0 Then
    If _GUICtrlListView_GetSelectedIndices($hWndListView) <> "" Then
    ShellExecute("_Run.exe", _GUICtrlListView_GetItemText(GUICtrlGetHandle($ListView1), _GUICtrlListView_GetSelectedIndices($ListView1), 1), @ScriptDir);_RunDOS(@ScriptDir & "\_Run.exe " & _GUICtrlListView_GetItemText(GUICtrlGetHandle($ListView1), _GUICtrlListView_GetSelectedIndices($ListView1), 1));ShellExecute("_Run.exe", _GUICtrlListView_GetItemText($ListView1, _GUICtrlListView_GetSelectedIndices($ListView1), 1), @ScriptDir, "open", @SW_HIDE)
    _GUICtrlStatusBar_SetText($hWnd, _GUICtrlListView_GetItemText(GUICtrlGetHandle($ListView1), _GUICtrlListView_GetSelectedIndices($ListView1), 3))
    Sleep(2000)
    _GUICtrlStatusBar_SetText($hWnd, "")
    Sleep(1000)
    GUISetState(@SW_HIDE, $Form1)
    EndIf
    Else
    EndIf
    Case $LVN_COLUMNCLICK ; A column was clicked
    $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
    _GUICtrlListView_SimpleSort($hWndListView, $B_DESCENDING, DllStructGetData($tInfo, "SubItem"))
    Case $NM_RCLICK ; Sent by a list-view control when the user clicks an item with the right mouse button
    $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
    If $CurTab = 0 Then
    If _GUICtrlListView_GetItemCount($hWndListView) = 0 Then
    GUICtrlSetState($CMenu1_6, $GUI_DISABLE)
    Else
    GUICtrlSetState($CMenu1_6, $GUI_ENABLE)
    EndIf
    If _GUICtrlListView_GetSelectedIndices($hWndListView) <> "" Then
    GUICtrlSetState($CMenu1_2, $GUI_ENABLE)
    GUICtrlSetState($CMenu1_4, $GUI_ENABLE)
    Else
    GUICtrlSetState($CMenu1_2, $GUI_DISABLE)
    GUICtrlSetState($CMenu1_4, $GUI_DISABLE)
    EndIf
    Else
    ;~ If _GUICtrlListView_GetItemCount($hWndListView) = 0 Then
    ;~ GUICtrlSetState($CMenu2_6, $GUI_DISABLE)
    ;~ Else
    ;~ GUICtrlSetState($CMenu2_6, $GUI_ENABLE)
    ;~ EndIf
    ;~ If _GUICtrlListView_GetSelectedIndices($hWndListView) <> "" Then
    ;~ GUICtrlSetState($CMenu2_2, $GUI_ENABLE)
    ;~ GUICtrlSetState($CMenu2_4, $GUI_ENABLE)
    ;~ Else
    ;~ GUICtrlSetState($CMenu2_2, $GUI_DISABLE)
    ;~ GUICtrlSetState($CMenu2_4, $GUI_DISABLE)
    ;~ EndIf
    EndIf
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

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

    ;===============================================================================
    ; Function Name: _PathSplit1()
    ; Description: Split the path to 8 elements.
    ; Parameter(s): $sPath - Path to split.
    ; Requirement(s): AutoIt 3.2.2.0.
    ; Return Value(s): On seccess - Array $RetArray that contain 8 elements:
    ; $RetArray[0] = Full path ($sPath)
    ; $RetArray[1] = Drive letter
    ; $RetArray[2] = Path without FileName and extension
    ; $RetArray[3] = Full path without File Extension
    ; $RetArray[4] = Full path without drive letter
    ; $RetArray[5] = FileName and extension
    ; $RetArray[6] = Just Filename
    ; $RetArray[7] = Just Extension of a file
    ;
    ; On failure - If $sPath not include correct path (the path is not splitable),
    ; then $sPath returned.
    ; If $sPath not include needed delimiters, or it's emty,
    ; then @error set to 1, and returned -1.
    ;
    ; Note(s): The path can include backslash as well (exmp: C:/test/test.zip).
    ;
    ; Author(s): G.Sandler a.k.a CreatoR (MsCreatoR) - Thanks to amel27 for help with RegExp
    ;===============================================================================

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

    Func _PathSplit1($sPath)
    If $sPath = "" Or StringRegExp($sPath, ('.*\\.*\/')) Then Return SetError(1, 0, -1)
    Local $RetArray[8], $pDelim = ""
    If StringRegExp($sPath, '^(?i)([A-Z]:|\\)(\\[^\\]+)+$') Then $pDelim = "\"
    If StringRegExp($sPath, '(?i)(^.*:/)(/[^/]+)+$') Then $pDelim = "//"
    If $pDelim = "" Then $pDelim = "/"
    If Not StringInStr($sPath, $pDelim) Then Return $sPath
    If $pDelim = "\" Then $pDelim &= "\"
    $RetArray[0] = $sPath
    $RetArray[1] = StringRegExpReplace($sPath, $pDelim & '.*', $pDelim)
    $RetArray[2] = StringRegExpReplace($sPath, $pDelim & '[^' & $pDelim & ']*$', '')
    $RetArray[3] = StringRegExpReplace($sPath, '\.[^.]*$', '')
    $RetArray[4] = StringRegExpReplace($sPath, '(?i)([A-Z]:' & $pDelim & ')', '')
    $RetArray[5] = StringRegExpReplace($sPath, '^.*' & $pDelim, '')
    $RetArray[6] = StringRegExpReplace($RetArray[5], '\.[^.]*$', '')
    $RetArray[7] = StringRegExpReplace($sPath, '^.*\.', '')
    Return $RetArray
    EndFunc ;==>_PathSplit1

    [/autoit]

    Programm was zum ausführen benötigt wird:

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=..\..\..\Icons\shell32.ico
    #AutoIt3Wrapper_Compression=4
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <SQLite.dll.au3>
    #include <SQLite.au3>
    #include <String.au3>

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

    Opt("TrayIconDebug", 0) ;0=no info, 1=debug line info

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

    If $CmdLine[0] <> 1 Then
    Exit MsgBox(16, "Error", "No CMD-Parameter set", 5)
    EndIf

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

    $key = Log(986543568)

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

    Global $aRow

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

    $sSQliteDll = _SQLite_Startup()
    If @error > 0 Then
    MsgBox(16, "SQLite Error", "SQLite.dll Can't be Loaded!", 5)
    Exit -1
    EndIf

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

    $DB_File = _SQLite_Open(@ScriptDir & "\database")

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

    _SQLite_QuerySingleRow($DB_File, "Select * From Tools Where Rowid = " & $CmdLine[1] & " LIMIT 1;", $aRow)
    If @error Then Exit MsgBox(16, "Error", "Parameter must be a valid Number.", 5)

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

    _SQLite_Close()
    _SQLite_Shutdown()

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

    If $aRow[3] <> "" Then
    If $aRow[4] <> "" Then
    $StringSplit = StringSplit($aRow[4], "%")
    If Not @error Then
    $Time = $StringSplit[1]
    $Time2 = $StringSplit[2]
    If $Time2 = "before" Then
    Sleep($Time)
    If $aRow[3] <> "" Then
    $StringSplit = StringSplit($aRow[3], ";")
    If Not @error Then
    For $i = 1 To $StringSplit[0]
    ProcessWaitClose($StringSplit[$i])
    Next
    Else
    ProcessWaitClose($aRow[3])
    EndIf
    EndIf
    Else
    $StringSplit = StringSplit($aRow[3], ";")
    If Not @error Then
    For $i = 1 To $StringSplit[0]
    ProcessWaitClose($StringSplit[$i])
    Next
    Else
    ProcessWaitClose($aRow[3])
    EndIf
    Sleep($Time)
    EndIf
    EndIf
    EndIf
    Else
    If $aRow[4] <> "" Then
    $StringSplit = StringSplit($aRow[4], "%")
    If Not @error Then
    $Time = $StringSplit[1]
    $Time2 = $StringSplit[2]
    Sleep($Time)
    EndIf
    EndIf
    EndIf

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

    $PS = _PathSplit1($aRow[1])
    FileChangeDir($PS[2])

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

    If $aRow[5] = "" Then
    ShellExecute($PS[0], $aRow[15])
    If @error Then Exit MsgBox(16, "Error", "Failure occured." & @CRLF & "Error-Code:" & @error)
    Else
    If Not WinExists($aRow[5]) Then
    ShellExecute($PS[0], $aRow[15])
    If @error Then Exit MsgBox(16, "Error", "Failure occured." & @CRLF & "Error-Code:" & @error)
    If $aRow[5] <> "" Then
    WinWait($aRow[5], "", 60)
    If @error Then Exit MsgBox(16, "Error", "Timelimit exceeded.")
    EndIf
    EndIf
    EndIf

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

    Sleep(500)
    If $aRow[6] <> "" Then ControlSend($aRow[5], "", $aRow[7], $aRow[6], 1)
    Sleep(500)
    If $aRow[8] <> "" Then ControlSend($aRow[5], "", $aRow[9], _StringEncrypt(0, $aRow[8], $key, 4), 1)
    Sleep(500)
    If $aRow[10] <> "" Then ControlSend($aRow[5], "", $aRow[11], $aRow[10], 1)
    Sleep(500)
    If $aRow[13] <> "" Then
    If $aRow[12] = "Mouse" Then
    ControlClick($aRow[5], "", $aRow[13], "left", 1)
    Else
    ControlSend($aRow[5], "", $aRow[13], "{Enter}")
    EndIf
    Else
    ControlSend($aRow[5], "", $aRow[9], "{Enter}")
    EndIf

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

    Func _PathSplit1($sPath)
    If $sPath = "" Or StringRegExp($sPath, ('.*\\.*\/')) Then Return SetError(1, 0, -1)
    Local $RetArray[8], $pDelim = ""
    If StringRegExp($sPath, '^(?i)([A-Z]:|\\)(\\[^\\]+)+$') Then $pDelim = "\"
    If StringRegExp($sPath, '(?i)(^.*:/)(/[^/]+)+$') Then $pDelim = "//"
    If $pDelim = "" Then $pDelim = "/"
    If Not StringInStr($sPath, $pDelim) Then Return $sPath
    If $pDelim = "\" Then $pDelim &= "\"
    $RetArray[0] = $sPath
    $RetArray[1] = StringRegExpReplace($sPath, $pDelim & '.*', $pDelim)
    $RetArray[2] = StringRegExpReplace($sPath, $pDelim & '[^' & $pDelim & ']*$', '')
    $RetArray[3] = StringRegExpReplace($sPath, '\.[^.]*$', '')
    $RetArray[4] = StringRegExpReplace($sPath, '(?i)([A-Z]:' & $pDelim & ')', '')
    $RetArray[5] = StringRegExpReplace($sPath, '^.*' & $pDelim, '')
    $RetArray[6] = StringRegExpReplace($RetArray[5], '\.[^.]*$', '')
    $RetArray[7] = StringRegExpReplace($sPath, '^.*\.', '')
    Return $RetArray
    EndFunc ;==>_PathSplit1

    [/autoit]
  • SQLite

    • sc4ry
    • 22. Juli 2009 um 23:13

    Hi,

    kurze Frage:

    ich habe ein "Hauptool", dass verschiedene Daten in einer DB verwaltet ... während dieses Tool läuft, greift teilweise ein weiteres Tool ebenfalls auf die DB zu.

    Kann es dabei zu Problemen kommen, wenn in beiden Tools parallel die DB geöffnet wird/ist?

  • Lösung gesucht: wie sämtliche Dateitypen starten?

    • sc4ry
    • 22. Juli 2009 um 10:01

    hmm, also irgendwie hat das bei exe und bat nicht so funktioniert, ... auch wenn ich "workingdir" gepflegt habe.
    aber wenn ich vorher FileChangeDir mache, sieht das ganze besser aus ... ich muss noch was testen =)

  • Lösung gesucht: wie sämtliche Dateitypen starten?

    • sc4ry
    • 22. Juli 2009 um 09:05

    Hiho,

    ich arbeite an einem Tool, welches als Multi-Starter verwendet werden soll.
    Man soll hierrüber also alle möglichen Dateien starten können (exe, bat, jpg, pdf) ... doch leider erweist sich der Aufruf von diesen Dateien als komplizierter als Gedacht.

    Ich habe zur Ausführung den kompletten Pfad.

    Ich hatte es so, aber das funktioniert auch nicht überall:

    [autoit]

    If $PS[7] = "exe" Then
    Run($PS[0], "")
    Else
    ShellExecute($PS[0])
    EndIf

    [/autoit]

    Hat jmd ne Idee, wie man das generell für alle Dateien sicherstellen kann (vorausgesetzt natürlich, bei pdf, jpg usw sind programme mit der Dateiendung verknüpft?

  • ListView-Sortierung speichern und widerherstellen

    • sc4ry
    • 22. Juli 2009 um 09:01

    ok, dann mach ich es direkt so:

    [autoit]

    While 1
    Sleep(100)
    If _IsPressed("1B") And WinGetState($Form1) = 15 Then _ToogleHide()
    WEnd

    [/autoit]

    wäre noch Frage 2 zum ListView offen =)

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™