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

  • SQL Einführung

    • BugFix
    • 1. August 2009 um 20:25

    Wir haben in H&U ein Unterforum Datenbanken.
    Lies dich dort einmal durch. Dort wirst du einiges an Bsp. finden.

  • TextMeter

    • BugFix
    • 1. August 2009 um 20:19
    Zitat von tobi_girst

    Also ich finde, wenn Kastln für Häkchen da sind, sollte man sie auch verwenden können. Meine ich.


    Eine sehr eigenwillige Betrachtungsweise. :P
    Wenn der Programmierer ( in diesem Falle also ich ;) ), das Checkbox-Ctrl ausschließlich als Anzeigeelement für einen Status verwendet, dann ist das legitim. Wo steht denn geschrieben, dass der User alle Funktionen eines Controls anwenden darf. :rofl:
    Dann müßtest du eigentlich auch den ReadOnly-Status der Inputs monieren... :rolleyes:

  • Farbverlauf in Autoit

    • BugFix
    • 1. August 2009 um 14:08

    Wo möchtest du einen Farbverlauf erzeugen? Titelbar, Control, GUI...?
    Grundsätzlich: Ja, es geht. Du kannst mit GDI+ zeichnen. Hängt dann vom verwendeten Brush ab.

  • Execute Problem

    • BugFix
    • 1. August 2009 um 12:41
    Zitat von Freaky

    geht das auch wen jemand kein autoit besitzt ?
    weil es soll so funktionieren


    Welchen Sinn soll denn das Ausführen von AutoIt-Befehlen außerhalb der AutoIt-Umgebung haben? Was soll das werden?

  • Execute Problem

    • BugFix
    • 1. August 2009 um 12:37

    Es geht auch anders.
    Aber du hattest dir eine Endlosschleife gebaut. :D
    Was soll die zählergesteuerte Schleife innerhalb einer Endlosschleife. ?

    So gehts:

    [autoit]

    $befehl = 'For $a = 1 to 99' & @CRLF & _
    'Tooltip ($a,0,0)' & @CRLF & _
    'Sleep(20)' & @CRLF & _
    'Next'
    FileWrite(@TempDir & "\temp.script.au3", $befehl)
    RunWait(@AutoItExe & ' /AutoIt3ExecuteScript "' & @TempDir & '\temp.script.au3"')
    FileDelete(@TempDir & "\temp.script.au3")

    [/autoit]
  • Auto-Ersetzen u. Input-Check mit Hook

    • BugFix
    • 1. August 2009 um 10:41

    Neues Bsp. in Post 1: Input Check Floatwert

  • Dynamische Button bedienen

    • BugFix
    • 1. August 2009 um 00:08

    Meines Erachtens reicht es völlig, wenn du ein Array für alle Button verwendest.
    Weise allen Button beim Erstellen dasselbe Event zu. Auswertung wie folgt:

    [autoit]

    For $i = 0 To UBound($aButton) -1
    $aButton[$i] = GUICtrlCreateButton(...)
    GUICtrlSetOnEvent(-1, '_btnClick')
    Next

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

    Func _btnClick()
    Switch @GUI_CtrlId
    Case $aButton[0]
    ; Code
    Case $aButton[1]
    ; ...
    EndSwitch
    EndFunc

    [/autoit]
  • TextMeter

    • BugFix
    • 31. Juli 2009 um 20:45
    Zitat von tobi_girst

    Tolle Idee, aber irgendwie kann ich die Atribute nicht anklicken.


    Das sollst du ja auch nicht können. :D
    Dazu hast du den Fontauswahl-Button. Dort wählst du den Font mit den gewünschten Attributen.

    Zitat von Depreed

    die breite und die höhe muss man doch gar nicht mit angeben oder?
    Statt Höhe und Breite reicht es doch aus -1 hinzuschreiben !?!

    Un wie platzierst du dann ein Element daneben, ohne zu wissen, wo das vorige aufhört.. :rolleyes:

  • Auto-Ersetzen u. Input-Check mit Hook

    • BugFix
    • 31. Juli 2009 um 20:42

    Führe einfach das Bsp.-Skript zu _WinAPI_CallNextHookEx() aus. Dann kannst du alle Tasten drücken und den Code auslesen.

  • Auto-Ersetzen u. Input-Check mit Hook

    • BugFix
    • 31. Juli 2009 um 13:08
    Zitat von Alina

    Aber wie schaut es aus bei Änderungsmeldung oder Überwasserfahrzeug bzw. Örtlichkeiten. Da werden dann die ersten beiden Buchstaben große geschrieben. Hier wäre es schön, wenn nur der erste Buchstabe groß ist, der zweite dann klein.


    Auch das läßt sich realisieren, werde ich vllt. noch ergänzen.

    Habe jetzt erst mal noch ein zusätzliches Bsp. eingefügt, dass den Hook auf eine GUI beschränkt. s. Post 1

  • screencapture übertragen

    • BugFix
    • 31. Juli 2009 um 12:28
    Zitat von alexh94

    Wie kommunizieren die beiden Computer miteinander.


    Kannst du alles hier nachlesen.

    Zitat von alexh94

    kann man das nicht mit Autoit?


    Macht keinen Sinn in AutoIt. Ist dazu viel zu langsam. Und hier gilt auch: Wozu das Fahrrad neu erfinden, wenn das Auto umsonst zu kriegen ist. :D

  • screencapture übertragen

    • BugFix
    • 31. Juli 2009 um 12:21
    Zitat von alexh94

    Wie kann man es so machen, dass es fast zeitgleich übertragen wird? ?(


    Du wirst immer eine nicht unerhebliche Verzögerung mit solch einer Methode haben.
    Verwende doch einfach TeamViewer.

  • Auto-Ersetzen u. Input-Check mit Hook

    • BugFix
    • 31. Juli 2009 um 12:08

    Hi,
    hier mal ein Bsp. wie man mittels Hook Umlaute und ß abfängt und durch ae... bzw ss ersetzt.
    Der Hook ist systemweit, also nicht auf ein Anwendungsfenster gerichtet.

    Edit:
    Hab das Bsp. nochmal erweitert.
    - Der Hook gilt jetzt nur für ein Ctrl. auf der GUI.
    - Mit LShift wird ersetzt zu Ae, Oe, Ue und mit RShift/CapsLock zu AE, OE, UE

    Edit:
    Ein weiteres Bsp.: Input Check
    - In das Input können nur Ziffern und Punkt geschrieben werden (für Floatwerte)
    - Komma wird zu Punkt gewandelt

    Auto Ersetzen
    [autoit]

    #cs
    Bsp. Auto-Ersetzen mit Hook
    Umlaute und ß
    linke Shift ergibt z.B. Ä-Ae, rechte Shift und CapsLock ergibt Ä-AE
    Ä - Ae (AE) ä - ae
    Ö - Oe (OE) ö - oe
    Ü - Ue (UE) ü - ue
    ß - ss

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

    Hook ist nur wirksam für die GUI (Statusabfrage in der Schleife) und das benannte Ctrl.
    #ce

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

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

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

    Opt('MustDeclareVars', 1)
    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, $isShift = False, $ctrl2Effect = 'Edit2' ; <== erfordert Classname !!

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

    _Main()

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

    Func _Main()
    Local $gui = GUICreate('Auto Ersetzen: Umlaute und "ß"', 400, 300)
    GUICtrlCreateLabel('Im Input keine Ersetzung', 10, 10, 380)
    GUICtrlCreateInput('', 10, 30, 380) ; Classname: Edit1 (Class: Edit, Ctrl: 1)
    GUICtrlCreateLabel('Im Edit werden ersetzt: ä ==> ae ö ==> oe ü ==> ue ß ==> ss', 10, 60, 380)
    Local $edit = GUICtrlCreateEdit('', 10, 80, 380, 210) ; Classname: Edit2 (Class: Edit, Ctrl: 2)
    GUISetState()

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

    Do
    If BitAND(WinGetState($gui), 8) And ControlGetFocus($gui) = $ctrl2Effect Then
    $active = True
    Else
    $active = False
    EndIf
    Until GUIGetMsg() = -3
    EndFunc

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

    Func _Exit()
    Exit
    EndFunc

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

    ;===========================================================
    ; callback function
    ;===========================================================
    Func _KeyProc($nCode, $wParam, $lParam)
    Local $tKEYHOOKS, $vkCode, $ret, $isCapsLock = 0
    $ret = DllCall("user32.dll","long","GetKeyState","long", 0x14)
    If $ret[0] Then $isCapsLock = 1
    $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 Then
    If $vkCode = 0xA0 Or $vkCode = 0xA1 Then
    $isShift = True
    EndIf
    Switch $vkCode
    Case 0xBA ; ü ==> ue
    If $isShift Then
    _keybd_event(0x55)
    _keybd_event(0xA0, 0x2)
    Else
    _keybd_event(0x55)
    EndIf
    _keybd_event(0x45)
    Return -1
    Case 0xC0 ; ö ==>oe
    If $isShift Then
    _keybd_event(0x4F)
    _keybd_event(0xA0, 0x2)
    Else
    _keybd_event(0x4F)
    EndIf
    _keybd_event(0x45)
    Return -1
    Case 0xDB ; ß ==> ss
    If $isShift Or $isCapsLock Then Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
    _keybd_event(0x53)
    _keybd_event(0x53)
    Return -1
    Case 0xDE ; ä ==> ae
    If $isShift Then
    _keybd_event(0x41)
    _keybd_event(0xA0, 0x2)
    Else
    _keybd_event(0x41)
    EndIf
    _keybd_event(0x45)
    Return -1
    EndSwitch
    Else
    Switch DllStructGetData($tKEYHOOKS, "flags")
    Case 0x80, 0x81 ; 0x80= UP für 'normale' Tasten u. li. paarige, 0x81= UP für re. paarige
    If $vkCode = 0xA0 Or $vkCode = 0xA1 Then $isShift = False ; LShift, RShift
    EndSwitch
    EndIf
    Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
    EndFunc

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

    Func _keybd_event($vkCode, $Flag=0)
    DllCall('user32.dll', 'int', 'keybd_event', 'int', $vkCode, 'int', 0, 'int', $Flag, 'ptr', 0)
    EndFunc

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

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

    [/autoit]
    Input Check
    [autoit]

    #cs
    Bsp. Input-Check mit Hook
    nur Ziffern und Punkt erlaubt, Komma wird zu Punkt

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

    Hook ist nur wirksam für die GUI (Statusabfrage in der Schleife) und das benannte Ctrl.
    #ce

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

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

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

    Opt('MustDeclareVars', 1)
    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, $ctrl2Effect = 'Edit1' ; <== erfordert Classname !!

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

    _Main()

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

    Func _Main()
    Local $gui = GUICreate('Auto Ersetzen: Umlaute und "ß"', 400, 300)
    GUICtrlCreateLabel('Im Input sind nur Ziffern und Punkt möglich, Komma wird zu Punkt', 10, 10, 380)
    GUICtrlCreateInput('', 10, 30, 380) ; Classname: Edit1 (Class: Edit, Ctrl: 1)
    GUICtrlCreateLabel('Im Edit kann frei geschrieben werden', 10, 60, 380)
    Local $edit = GUICtrlCreateEdit('', 10, 80, 380, 210) ; Classname: Edit2 (Class: Edit, Ctrl: 2)
    GUISetState()

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

    Do
    If BitAND(WinGetState($gui), 8) And ControlGetFocus($gui) = $ctrl2Effect Then
    $active = True
    Else
    $active = False
    EndIf
    Until GUIGetMsg() = -3
    EndFunc

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

    Func _Exit()
    Exit
    EndFunc

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

    ;===========================================================
    ; callback function
    ;===========================================================
    Func _KeyProc($nCode, $wParam, $lParam)
    Local $tKEYHOOKS, $vkCode, $aSafedKey[250]
    For $i = 48 To 57 ; 0-9
    $aSafedKey[$i] = 1
    Next
    $aSafedKey[188] = 1 ; ','
    $aSafedKey[190] = 1 ; '.'
    $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 Then
    If Not $aSafedKey[$vkCode] Then
    _keybd_event(0x0)
    Return -1
    ElseIf $vkCode = 0xBC Then
    _keybd_event(0xBE)
    Return -1
    EndIf
    EndIf
    Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
    EndFunc

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

    Func _keybd_event($vkCode, $Flag=0)
    DllCall('user32.dll', 'int', 'keybd_event', 'int', $vkCode, 'int', 0, 'int', $Flag, 'ptr', 0)
    EndFunc

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

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

    [/autoit]
  • Windows Taste deaktivieren

    • BugFix
    • 30. Juli 2009 um 21:32

    Geht ausschließlich per Registryeintrag und ist erst ab Neustart wirksam.
    Hier ein Link

    Oder du fängst den Tastendruck per Hook ab.

    Edit:
    Hier mal das Bsp. für den Hook. Solange das Skript läuft, werden Tastatureingaben der beiden WIN-Tasten ins Nirvana umgeleitet. :D

    Spoiler anzeigen
    [autoit]

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

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

    Global $hHookKeyboard, $pStub_KeyProc
    Global Const $VK_WIN_LEFT = 0x5B
    Global Const $VK_WIN_RIGHT = 0x5C
    Global Const $Key_NONE = 0x0

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

    HotKeySet("!e", "ExitNow") ; Exit Alt+e

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

    $pStub_KeyProc = DllCallbackRegister("_KeyProc", "int", "int;ptr;ptr")
    $hHookKeyboard = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, DllCallbackGetPtr($pStub_KeyProc), _WinAPI_GetModuleHandle(0), 0)

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

    While 1
    Sleep(10)
    WEnd

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

    Func ExitNow()
    Exit
    EndFunc ;==>ExitNow

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

    Func OnAutoITExit()
    DllCallbackFree($pStub_KeyProc)
    _WinAPI_UnhookWindowsHookEx($hHookKeyboard)
    EndFunc ;==>OnAutoITExit

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

    Func _KeyProc($nCode, $wParam, $lParam)
    If $nCode < 0 Then Return _WinAPI_CallNextHookEx($hHookKeyboard, $nCode, $wParam, $lParam)
    Local $tKEYHOOKS = DllStructCreate($tagKBDLLHOOKSTRUCT, $lParam)
    Local $vkCode = DllStructGetData($tKEYHOOKS, "vkCode")
    If ($wParam = $WM_KEYDOWN) And ($vkCode = $VK_WIN_LEFT Or $vkCode = $VK_WIN_RIGHT) Then
    DllCall('user32.dll', 'int', 'keybd_event', 'int', $Key_NONE, 'int', 0, 'int', 0, 'ptr', 0)
    Return -1
    EndIf
    Return _WinAPI_CallNextHookEx($hHookKeyboard, $nCode, $wParam, $lParam)
    EndFunc ;==>_KeyProc

    [/autoit]
  • Generell funktioniert es aber Zugriff auf ein Objekt - For each Objekt tut nicht ! Citrix MFCOM !

    • BugFix
    • 30. Juli 2009 um 19:11

    Du kannst mal versuchen, die Objekte etwas auseineinderzupflücken:

    [autoit]


    $oSessions = $objFarm.Sessions
    For $Session In $oSessions
    MsgBox(0,"",$Session.UserName)
    Next

    [/autoit]
  • Array logisch sortieren BugFix hier was für dich ;)

    • BugFix
    • 30. Juli 2009 um 16:27

    Noch eine Variante von mir:

    Spoiler anzeigen
    [autoit]

    #include <array.au3>
    Global $aTest[10][2] = [ _
    ['Beispiel5',''], _
    ['Beispiel7',''], _
    ['Beispiel1',''], _
    ['Beispiel6',''], _
    ['Beispiel4',''], _
    ['Beispiel9',''], _
    ['Beispiel8',''], _
    ['Beispiel3',''], _
    ['Beispiel10',''], _
    ['Beispiel2','']]

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

    Local $pos
    For $i = 0 To UBound($aTest) -1
    $pos = _LastNumPosInStr($aTest[$i][0], -1)
    $aTest[$i][1] = Number(StringMid($aTest[$i][0], $pos, StringLen($aTest[$i][1])-($pos-1)))
    Next
    _ArraySort($aTest,0,0,0,1)
    _ArrayDisplay($aTest)

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

    Func _LastNumPosInStr($sString, $occurrence=1)
    Local $start = 1, $ende = StringLen($sString), $step = 1
    If $occurrence = -1 Then
    $start = $ende
    $ende = 1
    $step = -1
    EndIf
    For $i = $start To $ende Step $step
    If StringRegExp((StringMid($sString, $i, 1)), '\D', 0) Then ExitLoop
    Next
    If $occurrence = 1 Then
    Return $i-1
    Else
    Return $i+1
    EndIf
    EndFunc

    [/autoit]
  • Suche Prog zum Daten weiderherstellen

    • BugFix
    • 30. Juli 2009 um 00:18

    Dann nimm den: http://pc-inspector-file-recovery.softonic.de/

  • HotKey - Liste???

    • BugFix
    • 30. Juli 2009 um 00:12

    Schau mal hier: [ offen ] Wo sind ö/ä/ü bei _IsPressed?

  • Suche Prog zum Daten weiderherstellen

    • BugFix
    • 30. Juli 2009 um 00:07

    Das funzt recht gut: http://www.pro-datenrettung.net/datenrettung-s…e_Recovery.html

  • WM_Command - Message beim Verlieren des Fokus abfangen.

    • BugFix
    • 29. Juli 2009 um 23:59

    OK, hier mal der eigentliche Inhalt einer Msg:

    [autoit]

    WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    $hWnd ; - Handle des Fensters, das die Nachricht bringt
    $iMsg ; - die Nachricht
    $iwParam ; - DWORD-Wert
    ; Lo = ID des Ctrl, das die Nachricht bringt
    ; Hi = Code der Nachricht
    $ilParam ; - Handle des Ctrl, das die Nachricht bringt

    [/autoit]


    Übersicht WM-Codes
    Über Messages

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™