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

Beiträge von BugFix

  • In einer Funktion includen

    • BugFix
    • 7. November 2010 um 20:40
    Zitat von Dr.No

    in dieser Funktion steht "#include <GUI2.au3>"


    Das Include darf nicht innerhalb einer Funktion erfolgen, sondern am Skriptanfang. Dann kannst du auf die in diesem Include hinterlegten Funktionen zugreifen.

  • Identifikationsnummer

    • BugFix
    • 7. November 2010 um 19:32
    Zitat von chesstiger

    Aber wie komme ich an die ID(in meinem Fall von einem Textfeld)?

    Na, das sagte ich doch in meiner Antwort bereits (mit Skriptbsp.) ;)

    Zitat von BugFix

    die du als Rückgabewert von Funktionen zur Erstellung von GUI-Elementen bekommst:

    ID = GuiCtrlCreate......

  • Identifikationsnummer

    • BugFix
    • 7. November 2010 um 11:29

    Ich denke mal eher, du meinst so etwas ganz simples, wie die Identifikationsnummer, die du als Rückgabewert von Funktionen zur Erstellung von GUI-Elementen bekommst:

    [autoit]

    $ID_Button = GuiCtrlCreateButton(...)
    $ID_Label = GuiCtrlCreateLabel(...)

    [/autoit]
  • Atomkraft? NEIN DANKE!

    • BugFix
    • 6. November 2010 um 14:27
    Zitat von nuts

    Im Strompreis für Atomkraft spiegeln sich zumindest die Rückstellungen für die Entsorgung wieder.

    Wie kommst du denn dadrauf? Wenn die Kosten enthalten wären, müßte die KWh mal geraten ca. 70 EUR kosten (oder mehr). Das ist ja die Krux, dass man diesen Preis nicht mal beziffern kann, weil wir noch nicht wissen, wieviel Tausend Milliarden an Kosten in Zukunft immer und immer wieder für diesen Müll aufgewendet werden müssen.

  • Vorschläge/Hilfe: Optimale GUIStruktur

    • BugFix
    • 6. November 2010 um 12:34
    Zitat von BadBunny

    Vllt kannst dus ja mit GDI+ versuchen? hab noch nicht getestet ob man das in die Scrollbar einbauen kann.


    Es ist leider nicht das erste mal, dass du Antworten in dieser Form bringst:
    "Ich weiß es nicht/hab es noch nie gemacht ... aber probier doch mal"
    Das ist wenig konstruktiv für das Forum. Bitte poste nur, wenn du auch wirklich etwas zum Thema beitragen kannst. Talken kannst du in der ShoutBox.

  • Atomkraft? NEIN DANKE!

    • BugFix
    • 6. November 2010 um 12:18
    Zitat von stayawayknight

    Man wird ohne Atomenergie (noch) nicht leben können, das ist ganz klar.


    Da sagt der aktuelle Untersuchungsbericht (den die Kanzlerin in unendlicher Dreistigkeit trotz gegenteiligen Ergebnisses als Begründung zur Laufzeitverlängerung heranzieht) aber etwas ganz anderes. Dieser Untersuchungsbericht wurde übrigens von der Bundesregierung selbst in Auftrag gegeben. Ein Ausstieg, wie bisher vorgesehen würde keinerlei Veränderungen an den Energiekosten herbeiführen. Da hatte wohl das Merkel gerade keine Brille zur Hand.

    Mir ist sowieso unklar, warum ausgerechnet die Energiebetreiber gegen den ansonsten per Grundgesetz heilig gehaltenen Gleichstellungsgrundsatz verstoßen dürfen. Alle, wirklich alle Produzenten, Fabriken etc. sind gesetzlich verpflichtet ihren Müll auf eigene Kosten zu entsorgen. Nur bei den Energiebetreibern muß der Steuerzahler diese Entsorgung bezahlen.
    Glaubt mir: Anwendung dieses Grundsatzes auf die Energiebetreiber und schon morgen würden diese selbst verkünden, dass Atomenergie absolut unnütz ist und alle Meiler sofort heruntergefahren werden.

    Es gibt ja wirklich Leute, die der Meinung verfallen sind, dass Atomenergie die billigste Energieform wäre. Nun wenn es nicht so traurig wär, könnte man über soviel Dummheit herzhaft lachen. Die Erzeugerkosten sind zwar niedriger als bei allen anderen Energieformen - aber die Kosten für Entsorgung und dauerhafte Lagerung sind noch nicht einmal ansatzweise zu erahnen. So dass man davon ausgehen kann, dass die KWh Atomenergie mindestens um den Faktor 100 teurer ist als alles, was es sonst noch gibt. Rechnet das mal auf eure Energierechnung aus. Ihr meint, das bezahlt ihr nicht? - Na was passiert wohl mit euren Steuern? Kultur und Bildung wird gestrichen - Endlagerung muß bezahlt werden. :cursing:

    AspirinJunkie: Dazu ist nunmal das OffTopic-Board da. Blende es doch einfach aus.

  • MouseClick Problem

    • BugFix
    • 3. November 2010 um 21:13

    MouseClick um eine Verknüpfung zu starten... :wacko:
    Fällt dir nicht noch was Komplizierteres ein? :whistling:

  • WinCap packet sniffen und umleiten

    • BugFix
    • 3. November 2010 um 21:03
    Zitat von sedas19

    autoit hat ja eine wincap udf.

    Jein :D, das ist eine von einem User erstellte UDF. Also wende dich an den Ersteller.

  • Textteile in einer Zelle unterschiedlich formatieren

    • BugFix
    • 2. November 2010 um 22:59

    So, hab nochmal nachgelesen. Es geht doch.
    Hier ein Bsp.:

    Spoiler anzeigen
    [autoit]

    Local $xlsPath = 'C:\test\test.xls'
    Local $oExcel = ObjCreate('Excel.Application')
    $oExcel.Visible = 1
    Local $oBook = $oExcel.Workbooks.Open($xlsPath)

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

    $oTextBox = $oBook.Worksheets("Tabelle1").Shapes.AddTextBox(1, 20, 20, 150, 100).OLEFormat.Object
    $oTextBox.Name = "TextBox_1"
    $oTextBox.Text = "Der Font ist Comic Sans MS"

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

    With $oTextBox.Characters(14, 13).Font
    .Name = "Comic Sans MS"
    .FontStyle = "Fett"
    .Size = 12
    .ColorIndex = 3
    EndWith

    [/autoit]
  • WinCap packet sniffen und umleiten

    • BugFix
    • 2. November 2010 um 22:19

    Ihr mit euren Wahnvorstellungen. :wacko:
    Der Grund ist schlicht und einfach, dass es sich hier um keine AutoIt-Frage handelt (dazu wären genug Experten hier), sondern um eine Frage zu WinCap. Ich kannte das Tool vorher noch nicht mal.
    Wende dich vielleicht besser an ein Forum für Computersicherheit o.ä. - da wird sicher damit gearbeitet.

  • Ordner nach jüngster Datei umbenennen?

    • BugFix
    • 1. November 2010 um 22:23

    Wie ich es machen würde:
    - Vergleichsdatum auf z.B. 1.1.2010 setzen
    - Ordner rekursiv durchgehen und Dateidatum abfragen
    - wenn jünger als Vergleichsdatum ==> dem Vergleichsdatum das Dateidatum zuweisen
    - somit hast du am Ende das jüngste Datum
    - Startordner nun einfach umbenennen

    Edit: Kaum poste ich dir Anregungen - da hat schon wer was Fertiges gepostet. Vergiß das, dabei lernst du nichts. Machs selber. :D

  • Textteile in einer Zelle unterschiedlich formatieren

    • BugFix
    • 1. November 2010 um 21:37

    Meines Wissens ist mit der TextBox-Klasse nur unformatierter Text darstellbar.
    Formatierten Text kannst du in einer RichTextBox darstellen.

  • Neuling sucht Hilfe für Wenn, dann mit Text und Ja/nein

    • BugFix
    • 1. November 2010 um 12:02
    Zitat von Likey

    PS: Dankeschön BugFix für die Äußerung


    Versteh darunter bitte aber keinen Freibrief. Sollte sich hier ein anderer (als von mir gutmütig angenommener) Weg herauskristallisieren, dann gibt es kein Pardon.

  • Neuling sucht Hilfe für Wenn, dann mit Text und Ja/nein

    • BugFix
    • 1. November 2010 um 11:47

    Nur um nochmal eindeutig klarzustellen, warum der Thread zugelassen wurde:

    Hier findet keinerlei Automatisierung des Spiels statt. Ebensowenig soll das Skript mit dem Spiel interagieren. Deswegen ist es kein Gamebot, sondern eine Entscheidungshilfe (oder, wie man es nennen möchte). Ein Taschenrechner mit x belegten Speicherfeldern ist nichts wesentlich anderes. ;)

  • Rueckgabe- Code von Regedit.exe pruefen.

    • BugFix
    • 31. Oktober 2010 um 22:33

    Warum nimmst du den Umweg über eine *.reg ? Schreib doch mit AutoIt direkt in die Registry.

  • Scrollbares Label ?

    • BugFix
    • 31. Oktober 2010 um 22:01

    Hier das MSDN-Bsp. dazu.
    Kannst du dir ja dann mal zu AutoIt portieren.

  • WinCap packet sniffen und umleiten

    • BugFix
    • 31. Oktober 2010 um 18:26
    Zitat von sedas19

    das mit den includes habe ich ja nur so so bin ich sicher das mir nichts fehlt^^


    Dazu gibt es doch: Organize Includes

  • Variierende Anzahl von Dimensionen in einem Array

    • BugFix
    • 31. Oktober 2010 um 17:38

    @Jeka:
    letzter Post: [ Sonntag, 23. Mai 2010, 16:07 ] <== Leichenschändung :D

  • Von Input zu Input

    • BugFix
    • 31. Oktober 2010 um 17:32

    Hatte ich mal ein Bsp. für gemacht, kannst es ja dann anpassen (zum nächsten Feld mit ENTER):

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WinAPI.au3>
    #include <WindowsConstants.au3>
    #include <StructureConstants.au3>
    #include <Array.au3>
    Opt("GUIOnEventMode", 1)
    OnAutoItExitRegister('OnAutoItExit')

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

    Global $hStub_KeyProc = DllCallbackRegister("_KeyProc", "long", "int;wparam;lparam")
    Global $hmod = _WinAPI_GetModuleHandle(0)
    Global $hHook = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, DllCallbackGetPtr($hStub_KeyProc), $hmod)
    Global $active = False, $gui, $ID_lastFocus = 0
    Enum $i1, $i2, $c1, $i3, $c2, $i4, $n ; <== hier die Reihenfolge, wie der Fokus 'wandern' soll ($n ist Zähler für Anz. Ctrl)
    Global $a[$n]

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

    $gui = GUICreate('')
    GUISetOnEvent(-3, '_ende')
    $a[$i1] = GUICtrlCreateInput('', 10,10,40)
    $a[$i2] = GUICtrlCreateInput('', 60,10,40)
    $a[$c1] = GUICtrlCreateCombo('', 110,10,40)
    $a[$i3] = GUICtrlCreateInput('', 160,10,40)
    $a[$c2] = GUICtrlCreateCombo('', 210,10,40)
    $a[$i4] = GUICtrlCreateInput('', 260,10,40)
    GUISetState()

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

    While 1
    If BitAND(WinGetState($gui), 8) Then
    $active = True
    Else
    $active = False
    EndIf
    Sleep(100)
    WEnd

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

    Func _ende()
    Exit
    EndFunc

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

    ;===========================================================
    ; callback function
    ;===========================================================
    Func _KeyProc($nCode, $wParam, $lParam)
    Local $tKEYHOOKS, $vkCode, $ID, $index
    $tKEYHOOKS = DllStructCreate($tagKBDLLHOOKSTRUCT, $lParam)
    If $nCode < 0 Or Not $active Then Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
    $vkCode = DllStructGetData($tKEYHOOKS, "vkCode")
    If $wParam = $WM_KEYDOWN And $vkCode = 13 Then ; ENTER gedrückt
    $ID = _WinAPI_GetDlgCtrlID(ControlGetHandle($gui, '', ControlGetFocus($gui)))
    ; Für ComboBoxen kann NICHT der Fokus abgefragt werden, da dieser auf dem Input-Ctrl der ComboBox liegt.
    ; Hier muß in der Instanz-Reihenfolge mit dem Wert des letzten Ctrl verglichen werden.
    ; Die Reihenfolge der Erstellung in der GUI ist egal, da der Fokus über die enumerierte Reihenfolge der Ctrl-Variablen
    ; weitergesetzt wird.
    ; Falls eine ComboBox als letztes Ctrl in der Folge erscheint, muß dies in der Abfragelogik berücksichtigt werden.
    If _WinAPI_GetClassName($ID) <> 'Edit' Then
    ; Variante 1: über Class+Instance
    $ID = _WinAPI_GetDlgCtrlID(ControlGetHandle($gui, "", "[CLASS:ComboBox; INSTANCE:1]"))
    If $ID_lastFocus > $ID Then $ID = _WinAPI_GetDlgCtrlID(ControlGetHandle($gui, "", "[CLASS:ComboBox; INSTANCE:2]"))
    ; Variante 2: über Enumerations-Reihenfolge der ComboCtrls
    ;~ $ID = $a[$c1]
    ;~ If $ID_lastFocus > $ID Then $ID = $a[$c2]
    EndIf
    $index = _ArraySearch($a, $ID)
    If @error Then Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
    If $index < UBound($a)-1 Then
    GUICtrlSetState($a[$index +1], $GUI_FOCUS)
    $ID_lastFocus = $a[$index +1]
    Else
    GUICtrlSetState($a[0], $GUI_FOCUS)
    $ID_lastFocus = $a[0]
    EndIf
    EndIf
    Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
    EndFunc

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

    Func OnAutoItExit()
    _WinAPI_UnhookWindowsHookEx($hHook)
    DllCallbackFree($hStub_KeyProc)
    EndFunc

    [/autoit]


    Edit: Hier die Variante "direkt weiter":

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <WindowsConstants.au3>
    Opt("GUIOnEventMode", 1)

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

    Global $gui
    Enum $i1, $i2, $i3, $i4, $n ; <== hier die Reihenfolge, wie der Fokus 'wandern' soll ($n ist Zähler für Anz. Ctrl)
    Global $a[$n]

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

    $gui = GUICreate('')
    GUISetOnEvent(-3, '_ende')
    $a[$i1] = GUICtrlCreateInput('', 10,10,40)
    $a[$i2] = GUICtrlCreateInput('', 60,10,40)
    $a[$i3] = GUICtrlCreateInput('', 160,10,40)
    $a[$i4] = GUICtrlCreateInput('', 260,10,40)
    GUISetState()

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

    ControlFocus($gui, '', $a[$i1])
    GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')

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

    While True
    Sleep(50)
    WEnd

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

    Func _ende()
    Exit
    EndFunc

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

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $hWndEdit, $sRead
    $hWndFrom = $ilParam
    $iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
    $iCode = BitShift($iwParam, 16) ; Hi Word
    For $i = 0 To UBound($a) -2
    Switch $hWndFrom
    Case GUICtrlGetHandle($a[$i])
    If $iCode = $EN_CHANGE Then
    ControlFocus($gui, '', $a[$i+1])
    ExitLoop
    EndIf
    EndSwitch
    Next
    Return 0
    EndFunc ;==>WM_COMMAND

    [/autoit]
  • Einstellungen speichern!

    • BugFix
    • 31. Oktober 2010 um 15:52

    Du mußt jede Änderung speichern. Hier mal ein Bsp. wie du es nutzen kannst:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    OnAutoItExitRegister('_WriteToIni') ; Beim Beenden des Programms wird autmatisch der CB-Status in die INI geschrieben

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

    Global $INI = @ScriptDir & '\test_CB.ini'
    If Not FileExists($INI) Then ; bei erstem Start Erstellen der INI, vorbelegt UNCHECKED
    IniWriteSection($INI, 'checkboxes', '1=0' & @LF & '2=0' & @LF & '3=0' & @LF & '4=0')
    EndIf

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

    Local $gui, $aCB[4], $y = 10
    Local $aState = IniReadSection($INI, 'checkboxes') ; Status der Checkboxen einlesen

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

    $gui = GUICreate('Test')
    For $i = 0 To 3
    $aCB[$i] = GUICtrlCreateCheckbox('CheckBox ' & $i+1, 10, $y, 80)
    If $aState[$i+1][1] = 1 Then
    GUICtrlSetState($aCB[$i], $GUI_CHECKED)
    Else
    GUICtrlSetState($aCB[$i], $GUI_UNCHECKED)
    EndIf
    $y += 25
    Next

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

    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    If $msg = -3 Then Exit
    For $i = 0 To UBound($aCB) -1 ; wenn CB geklickt wird, wird der Status im Array Status geändert
    If $msg = $aCB[$i] Then
    If BitAND(GUICtrlRead($aCB[$i]), $GUI_CHECKED) Then
    $aState[$i+1][1] = 1
    Else
    $aState[$i+1][1] = 0
    EndIf
    ExitLoop
    EndIf
    Next
    WEnd

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

    Func _WriteToIni() ; beim Beenden von AutoIt Zurückschreiben Status
    IniWriteSection($INI, 'checkboxes', $aState)
    EndFunc

    [/autoit]

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™