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

  • Error aus Funktionen mit _INetSmtpMail versenden

    • BugFix
    • 6. Januar 2009 um 15:10
    [autoit]

    Global $sReturn = ''
    $sReturn & = _Func1() & '|' ; oder Trenner deiner Wahl
    $sReturn & = _Func2() & '|'
    $sReturn & = _Func3() & '|'
    $sReturn & = _Func4()

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

    Global $aReturn = StringSplit($sReturn, '|')

    [/autoit]
  • Checkbox soll markiert werden durch iniread...

    • BugFix
    • 6. Januar 2009 um 15:00

    Hi,
    speichere gleich einen Wert in die INI, den du direkt (logisch [0,1]) abfragen kannst:

    [autoit]

    ; schreiben:
    Case $Checkbox1
    If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) Then
    iniwrite("config.ini","Settings","AutoUpdate", 1)
    Else
    iniwrite("config.ini","Settings","AutoUpdate", 0)
    EndIf

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

    ; lesen:
    If IniRead("config.ini","Settings","AutoUpdate", 0) Then GUICtrlSetState($Checkbox1, $GUI_CHECKED)

    [/autoit]
  • MouseHotKey - Beispiel

    • BugFix
    • 6. Januar 2009 um 14:50

    Hi,
    üblicherweise sind Hotkeys auf die Tastatur beschränkt. Ich hab mal eine Möglichkeit geschaffen auch die Maustasten zu verwenden. Ist sicher noch nicht der Goldstandard, aber erfüllt schonmal seinen Zweck ;)
    Es können verwendet werden:
    Maus ('left', 'right', 'middle') + ('0-9' und 'A-Z')
    Weiterhin könnt ihr die Zeitdauer festlegen, in der die Taste gedrückt werden muß, Standard ist 1000 ms.
    Syntax:
    Erstellen: HotKeyMouseSet('Maustaste', 'Keyboardtaste', 'Func', 'Responsezeit')
    Aufheben: HotKeyMouseSet()
    Es ist nur ein HKM möglich, da zur Ausführung AdlibEnable verwendet wird. Heißt also auch, dass ihr im Skript auf Adlibenable verzichten müßt. (oder es entsprechend erweitert)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <Misc.au3>
    Opt("GUIOnEventMode", 1)

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

    HotKeySet("{ESC}", "closeGUI")
    Global $isMHK = 0
    Global $m_checkParam[4], $user_dll = DllOpen("user32.dll")

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

    $gui = GUICreate('Test Mouse-Hotkey')
    GUISetOnEvent($GUI_EVENT_CLOSE, 'closeGUI')
    GUICtrlCreateLabel('Beenden mit <ESC> oder |X|', 50, 20, 150)
    GUICtrlCreateLabel('Mouse:', 10, 78, 50)
    $coMouse = GUICtrlCreateCombo('left', 70, 75, 50)
    GUICtrlSetData(-1, 'right|middle', 'left')
    GUICtrlCreateLabel('+ Key:', 150, 78, 50)
    $coKey = GUICtrlCreateCombo('0', 190, 75, 40)
    $sItem = ''
    For $i = 49 To 90
    If $i = 58 Then $i = 65
    $sItem &= Chr($i) & '|'
    Next
    GUICtrlSetData($coKey, StringTrimRight($sItem, 1), '0')
    $btSetMHK = GUICtrlCreateButton('Mouse-Hotkey setzen', 40, 120, 180, 20)
    GUICtrlSetOnEvent(-1, 'setMHK')
    GUISetState()

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

    While 1
    Sleep(20)
    WEnd

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

    Func closeGUI()
    If $isMHK Then HotKeyMouseSet()
    DllClose($user_dll)
    Exit
    EndFunc ;==>closeGUI

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

    Func setMHK()
    If $isMHK Then
    HotKeyMouseSet()
    GUICtrlSetData($btSetMHK, 'Mouse-HotKey setzen')
    WinSetTitle($gui, '', 'Hotkey ist jetzt deaktiviert')
    Else
    HotKeyMouseSet(GUICtrlRead($coMouse), GUICtrlRead($coKey), 'test')
    GUICtrlSetData($btSetMHK, 'Mouse-HotKey löschen')
    WinSetTitle($gui, '', 'aktueller MHK: ' & StringUpper(GUICtrlRead($coMouse)) & ' + ' & GUICtrlRead($coKey))
    EndIf
    $isMHK = BitXOR($isMHK, 1)
    EndFunc ;==>setMHK

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

    Func HotKeyMouseSet($m_button = '', $key = '', $func = '', $r_time = 1000)
    If Not $m_button Then Return AdlibDisable()
    If Not $key Or Not $func Then Return SetError(1, 0, 0)
    If Not IsString($func) Then Return SetError(2, 0, 0)
    $key = Asc(StringUpper($key))
    If $m_button = 'left' Then
    $m_checkParam[0] = '01'
    ElseIf $m_button = 'right' Then
    $m_checkParam[0] = '02'
    ElseIf $m_button = 'middle' Then
    $m_checkParam[0] = '04'
    Else
    Return SetError(3, 0, 0)
    EndIf
    $m_checkParam[1] = $key
    $m_checkParam[2] = $func
    $m_checkParam[3] = $r_time
    Local $ret
    Do ; Tastaturpuffer leeren
    For $i = 1 To 256
    $ret = DllCall($user_dll, "int", "GetAsyncKeyState", "int", "0x" & Hex($i, 2))
    Next
    Until $ret[0] = 0
    AdlibEnable('_checkMouse', 100)
    EndFunc ;==>HotKeyMouseSet

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

    Func _checkMouse()
    Local $ts, $ret
    If _IsPressed($m_checkParam[0], $user_dll) Then
    $ts = TimerInit()
    Do
    $ret = DllCall($user_dll, "int", "GetAsyncKeyState", "int", "0x" & Hex($m_checkParam[1], 2))
    If $ret[0] Then Return Call($m_checkParam[2])
    Until TimerDiff($ts) > $m_checkParam[3]
    EndIf
    EndFunc ;==>_checkMouse

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

    Func test()
    MsgBox(0, 'MausHotKey', 'Hotkey wurde ausgeführt')
    EndFunc ;==>test

    [/autoit]
  • Inputbox nur maximal vier Zeichen, aber wie?

    • BugFix
    • 6. Januar 2009 um 02:34

    Hier hab ich mal 'ne individuelle InputBox erstellt:

    Spoiler anzeigen
    [autoit]

    MsgBox(0, 'Inhalt Input', _InBox('Test', 'Bitte eingeben:', '', 'ES_NUMBER', 4) )

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

    ;===============================================================================
    ; Function Name: _InBox($title, $Prompt [, $Default='' [, $Style=Default [, $Len=0]]])
    ; Description:: Individuelle Inputbox
    ; Parameter(s): $title Titel
    ; $Prompt Prompt
    ; optional: $Default Vorgabe Input
    ; optional: $Style Style des Inputfeldes (Übergabe als String OHNE "$")
    ; optional: $Len max. Länge der Eingabe
    ; Return Value(s): Erfolg Eingabe aus Inputfeld
    ; Fehler @error Leerstring
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;===============================================================================
    Func _InBox($title, $Prompt, $Default='', $Style=Default, $Len=0)
    #include-once
    #include <GUIConstantsEx.au3>
    #include <EditConstants.au3>
    Local $mode = Opt("GUIOnEventMode", 0), $msg
    Local $InBox = GUICreate($title, 200, 140)
    Local $text = GUICtrlCreateLabel('', 10, 20, 180, 17)
    Local $Input = GUICtrlCreateInput('', 10, 60, 180, 20, Eval($Style))
    If $Len Then GUICtrlSetLimit(-1, $Len)
    Local $OK = GUICtrlCreateButton('OK', 10, 100, 80, 20)
    Local $Esc = GUICtrlCreateButton('Abbrechen', 110, 100, 80, 20)
    GUICtrlSetData($InBox, $title)
    GUICtrlSetData($text, $Prompt)
    If $Default Then GUICtrlSetData($Input, $Default)
    GUISetState()
    Do
    $msg = GUIGetMsg()
    If $msg = $Esc Or $msg = $GUI_EVENT_CLOSE Then Return SetError(1,0,'')
    Until $msg = $OK
    Local $ret = GUICtrlRead($Input)
    GUIDelete($InBox)
    Opt("GUIOnEventMode", $mode)
    Return $ret
    EndFunc ;==>_InBox

    [/autoit]
  • prozess überwachen

    • BugFix
    • 5. Januar 2009 um 23:44
    Zitat von fabulous

    ich hab es schon versucht aber es geht nicht


    Das sind Fehlerbeschreibungen, die einen zum Wahnsinn treiben...
    Wie wärs denn mal, wenn du deinen Code präsentierst?

  • AutoIt Editor

    • BugFix
    • 5. Januar 2009 um 22:49
    Zitat von Yakumo500

    Also bei der Installation kann man unter Benutzerdefiniert einstellen ob portabel installiert werden soll und auch ob die Datentypen verknüpft werden sollen.


    Prima, vllt. einfach diese Auswahlmöglichkeit gleich neben dem Begriff "Benutzerdefiniert" aufführen. Dann wird das auch deutlich.

  • Outlook und AutoIT

    • BugFix
    • 5. Januar 2009 um 21:50

    Du kannst auch eine Lösung über das "Outlook Objekt Modell" erstellen. Näheres findest du hier.

  • Bat2Exe

    • BugFix
    • 5. Januar 2009 um 20:09
    Zitat von FirePanther

    fileopen und fileclose... filewrite reicht...


    Das können wir so nicht stehen lassen. Bei gaaanz einfachen Operationen mag das gehen, aber wenn du einen bestimmten Dateizugriff benötigst (z.B. alten Inhalt überschreiben), mußt du mit FileOpen arbeiten. Und ein besserer Stil ist es ohnehin.

  • Registry-Zugriff OHNE Regedit oder Reg.exe

    • BugFix
    • 5. Januar 2009 um 20:02

    Du kannst dir doch mit Read&Write selber ein Import/Export-Tool erstellen.

  • Hilfe-Inputbox?

    • BugFix
    • 5. Januar 2009 um 18:36

    Aus deinem ersten Post kann ich nicht genau erkennen, was du vorhast? Vielleicht solltest du einfach mal mit den Hilfebeispielen anfangen (Tutorial 'Hallo Welt' usw.)

  • Hilfe-Inputbox?

    • BugFix
    • 5. Januar 2009 um 18:26

    Das ist dann aber keine Inputbox! (Input = Eingabe)
    Du kannst dir eine POPUP-GUI erstellen und entweder Button oder wenn du willst auch Label als Schaltelemente verwenden.
    Aber du wirst doch so ein MiniMenü nicht freischwebend haben, sondern sicher in einer GUI, somit ist es vorteilhafter, gleich ein Menü zu verwenden.

  • Script "Registry-Activator"-Include "kelöscher" + Frage

    • BugFix
    • 4. Januar 2009 um 21:27
    Zitat von videotuner

    Was ist daran falsch? Ich versuche vergebens das, wenn man in die InputBox OK eingibt, dass dann das Fenster aufgeht "Sie haben OK eingegeben".


    Schau dir doch bitte mal in der Hilfe an, wie InputBox arbeitet.

  • _GUICtrlTreeView_CreateDirectory (erstellt ein TreeView mit Verzeichnissen +Dateien)

    • BugFix
    • 4. Januar 2009 um 17:11

    Feine Sache! :thumbup:
    Fragen dazu tauchen ja auch regelmäßig auf - nun können wir immer auf dein Skript verweisen. :D

  • AutoIt Editor

    • BugFix
    • 4. Januar 2009 um 13:15

    Hi,
    also erst mal: Gute Arbeit bisher, optisch ansprechender als Scite aber ähnlich funktionell.
    Den Boardmanager würde ich aber in den Hintergrund verbannen und nur bei Bedarf (per Hotkey, Menü) nach vorn holen.
    Wird der Boardmanager nicht geschlossen und ich habe Inhalt in der Zwischenablage, wenn ich den Editor erneut starte, so wird ein zweiter Boardmanager angezeigt!
    Da ich den Editor in Sandboxi ausführe, sind meine Fenstertitel in [#] eingefaßt.
    Wenn ich in ein geöffnetes Dokument Text aus der Zwischenablage einfüge, sieht mein Fenstertitel hinterher so aus:
    "[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#]" ???
    Was ich noch begrüßen würde, sind Abbrevs. Auch nicht schlecht wäre die Möglichkeit, ein Skript in zwei Fenstern nebeneinander darzustellen, so wie wir es für Scite auch erstellt haben.
    Und nochmal die Bitte:
    Macht die Installation mit Registryeinträgen optional und bietet auch eine ZIP-Installation an. Ihr könnt ja gern einen Menüpunkt einfügen, über den der User, so er es denn wirklich will, die Verknüpfung des Editors über die Registry erstellen kann. Ich habe extra Sandboxi installiert um die Regeinträge zu verhindern.

  • extended TimerDiff()

    • BugFix
    • 4. Januar 2009 um 12:07

    Neue Version.

  • Mehrere Infos aus einer Ini datei rauslesen

    • BugFix
    • 4. Januar 2009 um 10:57

    OK, ich hab dir mal ein Bsp. erstellt.

    Deine INI sollte dann so aussehen:

    Spoiler anzeigen
    Code
    [user1]
    Game1=Path;Account;Pass
    Game2=Path;Account;Pass
    Game3=Path;Account;Pass
    Game4=Path;Account;Pass
    
    
    [user2]
    Game1=Path;Account;Pass
    Game2=Path;Account;Pass
    Game3=Path;Account;Pass
    Game4=Path;Account;Pass
    
    
    [user3]
    Game1=Path;Account;Pass
    Game2=Path;Account;Pass
    Game3=Path;Account;Pass
    Game4=Path;Account;Pass
    Alles anzeigen


    Und so in etwa könntest du es verwenden:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>

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

    Global $user = InputBox('User', 'Bitte deinen Usernamen eingeben')
    If $user = '' Then Exit MsgBox(0, 'Fehler', 'Kein User angegeben!')

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

    Global $INI = @ScriptDir & '\meine.ini'
    Global $aSection = IniReadSection($INI, $user), $val

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

    Global $aUserGames[$aSection[0][0]][4]
    For $i = 1 To UBound($aSection) -1
    $aUserGames[$i-1][0] = $aSection[$i][0]
    $val = StringSplit($aSection[$i][1], ';')
    For $j = 1 To UBound($val) -1
    $aUserGames[$i-1][$j] = $val[$j]
    Next
    Next

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

    _ArrayDisplay($aUserGames)

    [/autoit]
  • exe in exe binden script

    • BugFix
    • 4. Januar 2009 um 10:06

    OK "exe binden" mag ein Indiz sein. Aber es ist schwierig hieraus tatsächlich unlautere Absichten abzuleiten. Da ja gerade junge Leute auch dazu neigen mit großen Worten (deren Inhalt, sie oft gar nicht verstehen) um sich zu werfen.
    Und bis jetzt wurde auch nichts supported, was nicht 90% der Forumnutzer im Schlaf fabrizieren würden. Also bitte etwas durchatmen und schauen ob sich der Verdacht erhärtet - dann kommt eh ein Riegel vor, vertraut uns.

  • Brauch eine Funktion um ListView Items auszulesen

    • BugFix
    • 4. Januar 2009 um 09:59

    Brauchst nur mal die Funktionsübersicht zur UDF ListView durchsuchen:

    [autoit]

    Func _Ping()
    For $i = 1 To _GUICtrlListView_GetItemCount($ListView1) Step +1
    MsgBox (0,"", _GUICtrlListView_GetItemText(GUICtrlGetHandle($ListView1), $i-1)
    Next
    EndFunc ;==>_Ping

    [/autoit]
  • Mehrere Infos aus einer Ini datei rauslesen

    • BugFix
    • 4. Januar 2009 um 09:53

    1.
    Ich empfehle dir mal, den Pfad der INI anzugeben:

    [autoit]

    $INI = @ScriptDir & '\meine.ini'
    IniWrite($INI, 'section', 'key', 'value')

    [/autoit]


    2.
    Schau dir mal an, wie eine INI aufgebaut ist!

    Code
    [section]
    key1=value
    key2=value


    Und nun überdenke nochmal dein Konzept.

  • Kommandozeilenanwendung

    • BugFix
    • 4. Januar 2009 um 09:43
    Zitat von Alina

    Jetzt frage ich mich, wieso das von Dir nicht funktionierte ???!!!???


    :D - Es fehlte in dieser Zeile die schließende Klammer für den MsgBox-Aufruf.

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™