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

Beiträge von nuts

  • GUI Problem, mal wieder

    • nuts
    • 30. April 2009 um 13:20

    Bei Fileopen den Modus 2 verwenden.

  • GUI Problem, mal wieder

    • nuts
    • 30. April 2009 um 13:15
    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 394, 447, 193, 125)
    $Input1 = GUICtrlCreateInput("Input1", 128, 24, 129, 21)
    $Button1 = GUICtrlCreateButton("Button1", 120, 72, 65, 33, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    Global $file = @ScriptDir & "\text.txt"

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

    _Fileread() ; .txt Datei einlesen und den Inhalt der ersten Zeile ins Input schreiben

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    case $Button1
    _Filewrite()
    EndSwitch
    WEnd

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

    Func _Filewrite() ;Input in eine .txt Datei speichern
    local $data = GUICtrlRead($Input1) ;Input auslesen
    if FileExists($file) then ;prüfen obs es die .txt Datei überhaupt gibt
    local $openfile = FileOpen($file,2) ;öffnen
    FileWrite( $openfile, $data) ;ausgelesenen Inhalt des Inputs in die Datei schreiben
    MsgBox(1, "", "Gespeichert")
    else
    _FileCreate($file)
    local $openfile = FileOpen($file,2)
    FileWrite($openfile, $data)
    MsgBox(1, "", "Gespeichert")
    endif
    FileClose($openfile)
    endfunc

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

    Func _Fileread() ;.txt Datei einlesen
    if FileExists($file) then
    local $openfile = FileOpen($file,0)
    local $data = FileReadline($openfile)
    GUICtrlSetData($input1, $data)
    FileClose($openfile)
    else
    MsgBox(1, "", "Datei konnte nicht geöffnet werden")
    endif
    endfunc

    [/autoit]

    Beispiel für eine .txt Datei - finde ich für ein Aufgaben-Tool besser.

  • Kurze Frage zu _Ispressed

    • nuts
    • 29. April 2009 um 15:39

    Ah solangsam komm ich dahinter wie ich Hotkeyset einbauen kann - danke!

  • Kurze Frage zu _Ispressed

    • nuts
    • 29. April 2009 um 14:45

    Hey,

    wie schalte ich Hotkeyset denn wieder aus?
    Mein ganzes Skript ist leider auf dem Arbeits-Pc (kein i.net erlaubt, sonst hätt ichs von dort schnell reingestellt).

    Ich hab verschiedene Gui-Fenster und will die Hotkey/IsPressed Aktion nur in einem bestimmten aufrufen.
    Ok man könnte abfagen ob das Fenster existiert/aktiv ist, aber vielleicht gibts noch was bessere?

    edit \ anders gefragt: _IsPressed lässt die gedrückte Taste immer durch?

  • Kurze Frage zu _Ispressed

    • nuts
    • 29. April 2009 um 13:52

    Ok hier mal ein Beispiel ohne auf den Fokus (das ist erstmal auch nicht das Problem) einzugehen

    Spoiler anzeigen
    [autoit]


    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 633, 438, 193, 133)
    $Input1 = GUICtrlCreateInput("Input1", 48, 56, 129, 24)
    $Input2 = GUICtrlCreateInput("Input2", 232, 56, 161, 24)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    Dllopen("user32.dll")
    While 1
    _test()
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd
    DllClose("user32.dll")

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

    func _test()
    if _IsPressed("6B") then MsgBox(1, "", "Input1")
    if _IsPressed("6D") then MsgBox(1, "", "Input2")
    endfunc

    [/autoit]

    Ist der Fokus über einem der Inputs wird eben +/- ins Inputfeld geschrieben und das wollte ich gerne vermeiden.

    @HotkeySet: Ich dachte das geht nur global fürs ganze Skript?

  • Kurze Frage zu _Ispressed

    • nuts
    • 29. April 2009 um 12:28

    Hey,

    ich habe bei _Ispressed ein kleines Verständnisproblem:

    Also ich hab 2 Inputboxen, drücke ich + und der Fokus liegt auf Input1 erscheint eine Nachricht, drücke ich - und der Fokus liegt auf Input2, dann erscheinte eine andere Nachricht.

    Soweit so gut, die Sache läuft.

    Problem: Die Inputboxen werden durch die Eingabe von jeweiles +/- in ihrem Inhalt verändert und das ist nichts erwünscht.
    _IsPressed soll also praktisch nichts durchlassen, sondern einfach nur die hinterlegte Funktion aufrufen.

    Bin mir nicht ganz sicher ob das mit _IsPressed überhaupt funktioniert, daher dieser Thread.

    Alternativ: Man schließt die definierten Tasten von _IsPressed bei den möglichen Eingaben ins Input aus - ist aber irgendwie wieder ziemlich kompliziert für ein im Prinzip ziemlich einfaches Problem.

    Gruß nuts

  • Text Verschlüssler

    • nuts
    • 28. April 2009 um 17:51
    [autoit]

    #include <String.au3>

    [/autoit]


    fehlt ja auch oben.

  • String bis zu einem speziellen Zeichen verkürzen?

    • nuts
    • 27. April 2009 um 20:40

    Danke. :thumbup:

  • String bis zu einem speziellen Zeichen verkürzen?

    • nuts
    • 27. April 2009 um 20:07

    Meiner irgendwie auch. Bitte um Erläuterung der Parameter "pattern" und "replace" :S

  • Ordnersuche - oder sowas ähnliches

    • nuts
    • 24. April 2009 um 19:18

    Habs etwas ausgebaut.
    So kann man auch durch einen Doppelklick einen Ordner öffnen und man kann per TAB direkt in die Listbox und mit Hoch/Runter darin navigieren.

    Spoiler anzeigen
    [autoit]


    #include <GuiListBox.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>

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

    Local $Ordner = 'C:\Programme'
    Local $TempFile = _TempFile()
    Global $aOrdner
    HotKeySet("{ENTER}", "_Open_Ordner")

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

    RunWait(@ComSpec & " /c " & 'dir "'&$Ordner&'" /ad /b > "'&$TempFile&'"', "", @SW_HIDE)
    _FileReadToArray($TempFile, $aOrdner)
    FileDelete($TempFile)

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

    Opt('GUIOnEventMode', 1)

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

    $gui = GUICreate('Schnelle Ordnerauswahl by funkey', 400, 600, -1, -1)
    GUISetOnEvent(-3, '_Ende')
    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

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

    Global $Input = GUICtrlCreateInput('', 10, 10, 380, 20)
    Global $List = GUICtrlCreateList('', 10, 40, 380, 560)
    Global $hList = GUICtrlGetHandle(-1)

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

    For $i = 1 To $aOrdner[0]
    GUICtrlSetData(-1, $aOrdner[$i])
    Next

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

    GUISetState()

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

    While 1
    Sleep(100000)
    WEnd

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

    Func _Check_Eingabe($iwParam)
    switch $iwParam
    case 0x03000003
    _GUICtrlListBox_SetCurSel($hList, _GUICtrlListBox_FindString($hList, GUICtrlRead($Input)))
    EndSwitch
    EndFunc

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

    Func _Open_Ordner()
    If GUICtrlRead($List) <> "" Then ShellExecute($Ordner & '\' & GUICtrlRead($List))
    EndFunc

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

    Func _Ende()
    Exit
    EndFunc

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

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    _Check_Eingabe($iwParam)
    Local $hWndFrom, $iIDFrom, $iCode, $hWndListBox
    If Not IsHWnd($List) Then $hWndListBox = GUICtrlGetHandle($List)
    $hWndFrom = $ilParam
    $iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
    $iCode = BitShift($iwParam, 16) ; Hi Word
    Switch $hWndFrom
    Case $List, $hWndListBox
    Switch $iCode
    Case $LBN_DBLCLK
    _Open_Ordner()
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND (Bugfix - http://www.autoit.de)

    [/autoit]

    Beeindruckend ist der Speed beim Einlesen der Ordner.

    [autoit]

    RunWait(@ComSpec & " /c " & 'dir "'&$Ordner&'" /ad /b > "'&$TempFile&'"', "", @SW_HIDE)
    _FileReadToArray($TempFile, $aOrdner)
    FileDelete($TempFile)

    [/autoit]


    Das sind wohl diese Zeilen. Vielleicht kann mir noch jemand die erste Zeile erklären? Auch Verzeichnisse mit sehr vielen Ordnern sind sofort geladen (als Vergleich meine "drumherum" aus Post1) und ich wüsste gerne wie genau der gute funkey das gemacht hat.

    edit \ Noch ne Frage ..
    Es gibt ja verschieden Windows Konstanten, die in der <WindowsConstants.au3> deklariert sind.
    Hier im Skript wird z.B. $WM_COMMAND verwendete. Wo sind diese näher erklärt? Im Beispiel quasi: Mit welchem COMMAND wird die jeweilige Funktion angesprochen?
    In der Hilfe bin ich nicht fündig geworden.

  • Ordnersuche - oder sowas ähnliches

    • nuts
    • 23. April 2009 um 15:42

    Klaro - mir hat nur die Vorstellungskraft gefehlt wie sowas umzusetzen ist.

    Mit deinem Skript hab ich aber eine sehr gute Basis!

  • Ordnersuche - oder sowas ähnliches

    • nuts
    • 23. April 2009 um 12:00

    Danke funkey.
    Ist genau das was ich suche :thumbup:

  • Ordnersuche - oder sowas ähnliches

    • nuts
    • 23. April 2009 um 00:14

    hey,

    ein Umsetzung mit Autoit wäre aber auch cool.
    So richtig weitergekommen bin ich noch nicht - für kreative Vorschläge wäre ich sehr dankbar ;)

  • Ordnersuche - oder sowas ähnliches

    • nuts
    • 22. April 2009 um 17:53

    Hey,

    bei und im Büro werden alle Kundeninformationen (Schriftverkehr, Anlagen usw.) in einem zentralen Ordner gespeichert.
    Ordnerstruktur:

    Code
    Serverlaufwerk 
                          -  Kunden 
                                          - Kunde1
                                          - Kunde2
                                          - Kunde3


    Dadurch muss ich mich immer durch die lange Kundenliste kämpfen um zum gesuchten Ordner zu kommen. Mit der Windowshilfe komme ich irgendwie auch nicht so zurecht.

    Daher dachte ich an ein kleines Autoit-Programm - das ist aber gar nicht so einfach X(

    Ich wollte den gesuchten Ordner mit hilfe der Infos aus einer Inputbox ermitteln.
    Quasi so:

    1. Schritt: alle Ordner einlesen
    2. Schritt: Eingabe in die Inputbox, z.B. den Buchstaben A
    3. Schritt: es werden nurnoch alle Ordner mit Anfangsbuchstabe A angezeigt

    Allerdings fehlt mir irgendwie der Ansatz dazu. Muss ich bei jedem aufgelisteten Ordner den Anfangsbuchstaben ermittel und dann mit der Eingabe vergleichen?
    Gibts vielleicht eine viel einfachere Lösung mit dem Mitteln der Windowshilfe?
    Beim Schreiben fällt mir noch eine gute Beschreibung ein: Ich suche die Funktion der Autoithilfe (Index) nur eben für Ordnernamen


    So und damit es nicht heisst ich hab gar nichts gemacht ( :D ) hier mal das drumherum:

    Spoiler anzeigen
    [autoit]


    #include<Guilistview.au3>
    #include <File.au3>
    ;#include <Array.au3>

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

    Global Const $NB_DBLCLK = -3
    Global Const $WM_NOTIFY = 0x004E
    Global Const $GUI_EVENT_CLOSE = -3

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

    Global $hGui = GUICreate("", 300, 480)
    Global $hListView = GUICtrlCreateListView("Ordner", 0, 0, 280, 420, $LVS_SHOWSELALWAYS)
    Global $hLoad = GUICtrlCreateButton("Test", 180, 440, 70, 20)
    Global $isuche = GUICtrlCreateInput("", 10, 440,150)
    Global $path = 'C:\Programme' ;Beispiel

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

    Global $hLVHandle = GUICtrlGetHandle($hListView)
    _GUICtrlListView_SetColumn($hLVHandle, 0, "Ordner", 240, 0)

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

    _GUICtrlListView_RegisterSortCallBack($hLVHandle)
    GUISetState(@SW_SHOW, $hGui)
    GUIRegisterMsg($WM_NOTIFY, "_DoubleClickOnListView")
    _Load()

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

    while 1
    $Msg = GUIGetMsg()
    switch $Msg
    case $GUI_EVENT_CLOSE
    _GUICtrlListView_UnRegisterSortCallBack($hLVHandle)
    Exit
    case $hLoad
    MsgBox(1, "", _GUICtrlListView_GetItemCount($hLVHandle)) ;nur zu testzwecken
    EndSwitch
    wend

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

    Func _Load() ;Array ins Listview laden
    _GUICtrlListView_BeginUpdate($hLVHandle) ; Listview sperren
    $aFolder = _FileListToArray($path, "*", 2)
    for $i = 1 to $aFolder[0]
    $string = stringsplit($afolder[$i], "\")
    GUICtrlCreateListViewItem($string[$string[0]], $hListView) ; mit den eingelesenen Daten einen neuen Listview-Eintrag erstellen
    next
    _GUICtrlListView_EndUpdate($hLVHandle) ; Listview wieder freigeben
    EndFunc

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

    Func _Openfolder()
    local $iselection = _GUICtrlListView_GetSelectionMark($hLVHandle)
    local $itext =_GUICtrlListView_GetItemText ($hLVHandle,$iselection)
    ShellExecute($path & "\" & $itext)
    endfunc

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

    Func _DoubleClickOnListView($hWnd, $Msg, $wParam, $lParam) ;Doppelklick auf ein Listviewitem
    Local $tagNMHDR, $event, $hwndFrom, $code
    $tagNMHDR = DllStructCreate("int;int;int", $lParam)
    If @error Then Return
    $event = DllStructGetData($tagNMHDR, 3); Checkt wie das EVENT aussieht
    If $wParam = $hListView and $event = $NB_DBLCLK Then ;Wenn der Klick auf das ListView ging und es ein Doppelklick war, dann
    _Openfolder()
    EndIf
    $tagNMHDR = 0
    $event = 0
    $lParam = 0
    EndFunc ;==>_DoubleClickOnListView

    [/autoit]
  • PluginOpen()

    • nuts
    • 21. April 2009 um 18:10

    Ich dachte .dll werden über DllCall aufgerufen?

  • ListView-Text anpassen?

    • nuts
    • 21. April 2009 um 18:04

    Kennst du schon die Funktion von Bugfix? ListView - SubItem einzeln färben/formatieren
    Ist jetzt fürs normale Listview und nicht gerade einfach zu verstehen.

    Bei Bedarf lässt sie das vielleicht auch für die UDF (wieso erstellst du dein Listview darüber?) umbauen? Allerdings nicht von mir, da ich die Funktion von Bugfix nicht verstehe.

  • Hallo Kann Mir Jemand Mit MAC Adresse Changen helfen

    • nuts
    • 20. April 2009 um 15:39
    Zitat von Matthias_199

    würde sogar sinn machen wenn man 2 leptops hat und immer nur eins benutzt und der router ein MAc filter aktive hat


    hö?

    Wenn ein Router verwendet wird muss doch vermutlich sowieso die MAC vom Router geändert werden.
    Es gibt einige Router die so eine Funktion bieten (MAC Spoofing).

  • Hacker gesucht!

    • nuts
    • 18. April 2009 um 03:27
    Zitat von L3viathan2142

    kann man den abgesicherten modus eigtl. verbieten?


    Hoffentlich nicht!

  • Resoursenfresser

    • nuts
    • 16. April 2009 um 17:53

    Oder ich lass mein Skript ganz aus und verbrauche gar keine CPU Power - so klar war das mit dem Oneventmode jetzt auch nicht :P

  • Resoursenfresser

    • nuts
    • 16. April 2009 um 17:45

    Was Sleep so macht ist schon klar. Nur wieso senkt mir das die CPU Last?

    edit \ Aha thx - jetzt ists klar.

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™