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

Beiträge von Oscar

  • Geburtstag von Xeno

    • Oscar
    • 12. November 2009 um 05:10

    Moin Xeno!
    Alles Gute zu Deinem 30. Geburtstag.

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

  • StringRegExp - Geht nicht

    • Oscar
    • 11. November 2009 um 17:31

    Um bei StringRegExp zu bleiben:

    [autoit]


    $Text = "Moin!!!" & @CRLF & "Wie gehts?"
    $Text2 = StringRegExp($Text, "(?s)!!!(.*?)\z", 3)
    MsgBox(0, "", $Text2[0])

    [/autoit]


    Entscheidend ist: "(?s)" am Anfang des Pattern.

  • Mouse-Keyboard

    • Oscar
    • 10. November 2009 um 16:09

    Oh mann, na klar. Bin ich blöd! "Keyboard not found! Press F1 to continue." ^^:rolleyes:

    Hab's noch etwas bearbeitet. Neue Version in Post #1.

  • Mouse-Keyboard

    • Oscar
    • 10. November 2009 um 15:28

    Mir ist noch eine andere Möglichkeit eingefallen. Die ist so einfach, das ich erst gar nicht drauf gekommen bin.
    - Man startet mein Programm (neue Version siehe Post #1). Das packt sich in den Tray und aktiviert einen Hotkey [Alt] + [e].
    - Dann holt man das Programm in den Vordergrund, wohin die Eingabe gesendet werden soll (z.B. Notepad).
    - Danach öffnet man mein Eingabefenster per Hotkey. Dabei wird vor dem öffnen das aktive Fenster sowie das aktive Control-Element abgefragt. Und an das wird dann die Eingabe gesendet.

    eukalyptus: Das ist dann aber nicht in AutoIt. ;)

  • Mouse-Keyboard

    • Oscar
    • 10. November 2009 um 04:22

    Raupi : Habe versucht eine Eingabefenster-Erkennung zu machen, aber das war nicht sehr erfolgreich. Ich denke, es wird bei der ClipPut-Version bleiben müssen. :S

    Es gibt jetzt aber eine zusätzliche [LOCK]-Taste, mit der man dauerhaft auf Großschreibung umschalten kann. Die [SHIFT]-Taste hat nun nämlich die Funktion, um nur die nächste Taste in Groß zu schreiben und schaltet danach automatisch wieder auf Kleinschreibung.
    Ich finde das so praktischer.

  • Wie bekomme ich heraus welches Fenster gerade aktiv ist?

    • Oscar
    • 9. November 2009 um 19:10

    So:

    [autoit]

    WinGetTitle("[active]")

    [/autoit]
  • Mouse-Keyboard

    • Oscar
    • 9. November 2009 um 18:24

    Na gut, es scheint die Zeit für virtuelle Tastaturen zu sein. :D
    Hab mir gedacht, dass das doch auch kürzer gehen muss. Hier also meine Version:

    Screenshot:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Script:

    Spoiler anzeigen
    [autoit]


    #include <Constants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    Opt('GUIOnEventMode', 1)
    Opt('TrayMenuMode', 1)
    Global $bShift = False, $bLock = False, $bOld = False, $ahKeys[57], $wHWND, $cHWND
    Global $sTitle = 'Mouse-Keyboard v1.3 by Oscar (http://www.autoit.de)'
    Global $aKeys[57][6] = [ _
    ['^', '°', 010, 060, 32, 32],['1', '!', 044, 060, 32, 32],['2', '"', 078, 060, 32, 32],['3', '§', 112, 060, 32, 32], _
    ['4', '$', 146, 060, 32, 32],['5', '%', 180, 060, 32, 32],['6', '&&', 214, 060, 32, 32],['7', '/', 248, 060, 32, 32], _
    ['8', '(', 282, 060, 32, 32],['9', ')', 316, 060, 32, 32],['0', '=', 350, 060, 32, 32],['ß', '?', 384, 060, 32, 32], _
    ['´', '`', 418, 060, 32, 32],['<-', '<-', 452, 060, 66, 32], _
    ['q', 'Q', 010, 100, 32, 32],['w', 'W', 044, 100, 32, 32],['e', 'E', 078, 100, 32, 32],['r', 'R', 112, 100, 32, 32], _
    ['t', 'T', 146, 100, 32, 32],['z', 'Z', 180, 100, 32, 32],['u', 'U', 214, 100, 32, 32],['i', 'I', 248, 100, 32, 32], _
    ['o', 'O', 282, 100, 32, 32],['p', 'P', 316, 100, 32, 32],['ü', 'Ü', 350, 100, 32, 32],['*', '+', 384, 100, 32, 32], _
    ['@', '|', 418, 100, 32, 32],['[', '\', 452, 100, 32, 32],[']', '~', 486, 100, 32, 32], _
    ['a', 'A', 010, 140, 32, 32],['s', 'S', 044, 140, 32, 32],['d', 'D', 078, 140, 32, 32],['f', 'F', 112, 140, 32, 32], _
    ['g', 'G', 146, 140, 32, 32],['h', 'H', 180, 140, 32, 32],['j', 'J', 214, 140, 32, 32],['k', 'K', 248, 140, 32, 32], _
    ['l', 'L', 282, 140, 32, 32],['ö', 'Ö', 316, 140, 32, 32],['ä', 'Ä', 350, 140, 32, 32],['#', "'", 384, 140, 32, 32], _
    ['LOCK', 'LOCK', 418, 140, 100, 32], _
    ['y', 'Y', 010, 180, 32, 32],['x', 'X', 044, 180, 32, 32],['c', 'C', 078, 180, 32, 32],['v', 'V', 112, 180, 32, 32], _
    ['b', 'B', 146, 180, 32, 32],['n', 'N', 180, 180, 32, 32],['m', 'M', 214, 180, 32, 32],[',', ';', 248, 180, 32, 32], _
    ['.', ':', 282, 180, 32, 32],['-', '_', 316, 180, 32, 32],['<', '>', 350, 180, 32, 32],['€', 'µ', 384, 180, 32, 32], _
    ['SHIFT', 'SHIFT', 418, 180, 100, 32], _
    ['SPACE', 'SPACE', 10, 220, 406, 32],['ENTER', 'ENTER', 418, 220, 100, 32] _
    ]
    $hGui = GUICreate($sTitle, 530, 280)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
    GUISetIcon('shell32.dll', -174, $hGui)
    GUISetBkColor(0xCCCCCC)
    GUICtrlCreateLabel('Send input to (Window-Title):', 10, 10, 500, 16)
    $hSendWindow = GUICtrlCreateLabel('', 10, 30, 508, 18, $SS_SUNKEN)
    GUICtrlSetFont(-1, 9, 400, 0, 'Arial')

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

    For $i = 0 To UBound($aKeys) - 1
    $ahKeys[$i] = GUICtrlCreateButton($aKeys[$i][0], $aKeys[$i][2], $aKeys[$i][3], $aKeys[$i][4], $aKeys[$i][5])
    GUICtrlSetFont(-1, 14, 400, 0, 'Courier New')
    GUICtrlSetOnEvent(-1, '_Key')
    Next
    $hStatus = GUICtrlCreateLabel(' Status: NORMAL', -2, 264, 534, 16, Default, $WS_EX_STATICEDGE)
    GUICtrlSetBkColor(-1, 0xBBBBBB)
    TraySetIcon('shell32.dll', -174)
    TraySetClick(16)
    TrayCreateItem($sTitle)
    TrayItemSetState(-1, $TRAY_DISABLE)
    TrayCreateItem('')
    TrayCreateItem('Exit')
    TrayItemSetOnEvent(-1, '_End')

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

    GUISetState()
    WinSetOnTop($hGui, '', 1)

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

    While True
    If $wHWND <> WinGetHandle('') And WinGetHandle('') <> $hGui Then
    $wHWND = WinGetHandle('')
    $cHWND = ControlGetFocus($wHWND)
    GUICtrlSetData($hSendWindow, WinGetTitle($wHWND))
    Else
    Sleep(100)
    EndIf
    WEnd

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

    Func _End()
    Exit
    EndFunc ;==>_End

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

    Func _Key()
    Local $sKey = GUICtrlRead(@GUI_CtrlId)
    Switch $sKey
    Case '<-'
    ControlSend($wHWND, '', $cHWND, '{BACKSPACE}')
    Case 'LOCK'
    $bShift = False
    $bLock = True
    GUICtrlSetData($hStatus, ' Status: CAPS LOCK')
    _Shift()
    Case 'SHIFT'
    GUICtrlSetData($hStatus, ' Status: SHIFT')
    _Shift()
    $bLock = False
    Case 'SPACE'
    ControlSend($wHWND, '', $cHWND, '{SPACE}')
    Case 'ENTER'
    ControlSend($wHWND, '', $cHWND, '{ENTER}')
    Case '&&'
    ControlSend($wHWND, '', $cHWND, '{&}')
    If $bShift And Not $bLock Then _Shift()
    Case Else
    ControlSend($wHWND, '', $cHWND, $sKey)
    If $bShift And Not $bLock Then _Shift()
    EndSwitch
    EndFunc ;==>_Key

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

    Func _Shift()
    $bShift = Not $bShift
    If Not $bShift Then GUICtrlSetData($hStatus, ' Status: NORMAL')
    If $bShift = $bOld Then Return
    $bOld = $bShift
    For $i = 0 To UBound($aKeys) - 1
    GUICtrlSetData($ahKeys[$i], $aKeys[$i][$bShift])
    Next
    EndFunc ;==>_Shift

    [/autoit]

    Edit: Version 1.3
    Jetzt neue/geänderte Tasten:
    [Del] löscht das Eingabefeld, [<-] löscht das letzte Zeichen, [SHIFT] aktiviert Großschreibung für die nächste Taste und mit [LOCK] wird die Großschreibung dauerhaft aktiviert.

    Dateien

    Mouse-Keyboard.png 27,5 kB – 0 Downloads MouseKeyboard.au3 4,32 kB – 392 Downloads
  • VirtuelleKeyboard

    • Oscar
    • 9. November 2009 um 04:40
    Zitat von tobi_girst

    2. Ändere den Titel im 1. Post von "VirtuelleKeyboard" bitte auf "Virtuelles Keyboard", das tut beim Anschauen schon weh.

    Also, wenn schon ändern, dann aber richtig:
    Entweder "Virtual Keyboard" oder "Virtuelle Tastatur". ;)

  • GUICtrlSetImage funktioniert nicht richtig

    • Oscar
    • 9. November 2009 um 04:29

    @Nilo: Na, da hast Du beim abkupfern aber nicht richtig aufgepasst (Script von achim89 nicht verstanden). ;)
    Das Array "$feld" hat 3 Dimensionen. Die dritte unterscheidet zwischen dem Feld-Index und dem Feld-Inhalt. So, wie Du das übernommen hast, geht das nicht.

    BTW: Wenn Du schon derart viel übernimmst, könntest Du ein Dankeschön an den Author im Script unterbringen.

  • schleifenproblem

    • Oscar
    • 8. November 2009 um 19:11

    In Zeile 10 darf nach "Then" nicht direkt eine Anweisung folgen. Erst in der nächsten Zeile:

    Spoiler anzeigen
    [autoit]


    Func _checkVPNprocesses($processname, $searchstring)
    Global $readedRegkey
    If ProcessExists($processname) Then
    $readedRegkey = RegRead("HKEY_CURRENT_USER\Software\Classes\Software\Microsoft\XLive", "ConnectionOverride")
    GUICtrlSetData($input, GUICtrlRead($input) & @CRLF & "Connectionoverride-key is current:" & $readedRegkey)
    _SearchNetworknamesNoListView($searchstring)
    If $readedRegkey <> $networkname Then
    GUICtrlSetData($input, GUICtrlRead($input) & @CRLF & "Connectionoverride-key not equal to started networkadapter!")
    _SearchNetworknamesNoListView($searchstring)
    If $NetworkreadyFlag = ("YES") Then
    RegWrite("HKEY_CURRENT_USER\Software\Classes\Software\Microsoft\XLive", "ConnectionOverride", "REG_SZ", $networkname)
    GUICtrlSetData($input, GUICtrlRead($input) & @CRLF & "Writing (XLive) connectionoverride registration key:" & $networkname)
    GUICtrlSetData($input, GUICtrlRead($input) & @CRLF & "Writing to registration done!")
    Else
    GUICtrlSetData($input, GUICtrlRead($input) & @CRLF & "No running Proceess called:" & $processname & " or Networkname found!")
    EndIf
    Else

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

    EndIf
    Else

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

    EndIf
    EndFunc

    [/autoit]
  • Finde (bestimmt einfachen) fehler nicht

    • Oscar
    • 8. November 2009 um 12:19

    Hab den Beitrag wiederhergestellt.

  • Finde (bestimmt einfachen) fehler nicht

    • Oscar
    • 8. November 2009 um 07:22

    In Zeile 118 ist Dir ein Flüchtigkeitsfehler unterlaufen:

    [autoit]

    $feld[$bombe_pos[0] + $x][$bombe_pos[1]][0] = $boden

    [/autoit]


    das muss richtig so aussehen:

    [autoit]

    $feld[$bombe_pos[0] + $x][$bombe_pos[1]][1] = $boden

    [/autoit]

    Übrigens: Nettes Spiel hast Du da gescriptet. :thumbup:

  • Auto Shutdown

    • Oscar
    • 8. November 2009 um 00:49

    Oder so:

    Spoiler anzeigen
    [autoit]


    HotKeySet('{ESC}', '_End')
    While True
    $countdown = Int(10 - _Timer_GetMouseIdleTime() / 1000)
    ToolTip('Noch ' & $countdown & ' sekunden bis zum runterfahren.')
    If $countdown <= 0 Then
    MsgBox(0, 0, 'Rechner herunterfahren!')
    Exit
    EndIf
    Sleep(20)
    WEnd

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

    Func _Timer_GetMouseIdleTime()
    If Not IsDeclared('aMousePosOld') Then Global $aMousePosOld = MouseGetPos()
    If Not IsDeclared('iTimer') Then Global $iTimer = TimerInit()
    Local $aMousePos = MouseGetPos()
    If $aMousePos[0] <> $aMousePosOld[0] Or $aMousePos[1] <> $aMousePosOld[1] Then
    $aMousePosOld = $aMousePos
    $iTimer = TimerInit()
    EndIf
    Return Int(TimerDiff($iTimer))
    EndFunc

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

    Func _End()
    Exit
    EndFunc

    [/autoit]
  • Datenübertragung im Internet (Konzept) - Möglich?

    • Oscar
    • 8. November 2009 um 00:39
    Zitat von Andy

    Wenn du eine Frage an google hast, setzt du dich dann auf einen Stuhl und tust nichts ausser nur dazusitzen und zu warten bis irgendwann dein Rechner piept und auf dem Monitor ein Fenster aufgeht wo drinsteht "Hallo , hier ist Google! Sie haben eine Frage?"


    Ich schmeiss mich weg. :rofl:
    Herrlich, Du hast immer so tolle Vergleiche. :D

    @Reaker: Eigentlich beschreibt dieser Vergleich genau die Problematik und ich hoffe, dass Du das nun verstanden hast, weil mir sonst auch nichts einfällt, wie man das noch einfacher beschreiben kann.

  • ist die Anzahl der Zeilen im Ausgabefenster begrenzt ? Control "Edit"

    • Oscar
    • 8. November 2009 um 00:29

    Ich wollte den "Fehler" gerade mal nachvollziehen, aber bei mir tritt er gar nicht auf?! :huh:
    Mit diesem Script:

    [autoit]


    GUICreate('Test', 640, 480)
    $sText = FileRead('test.log')
    $hEdit = GUICtrlCreateEdit($sText, 5, 5, 630, 470)
    GUISetState()
    Do
    Until GUIGetMsg() = -3

    [/autoit]


    habe ich eine Logdatei (409 KB, mehr als 4000 Zeilen) eingelesen und angezeigt bekommen.

    Nachdem ich das gerade mal auf meinem anderen Rechner getestet habe, liegt das wohl an der 64Bit-Version.
    Also mit der 64Bit-Version funktioniert obiges bei mir einwandfrei, aber mit der X86-Version muss das so aussehen:

    [autoit]


    GUICreate('Test', 640, 480)
    $sText = FileRead('test.log')
    $hEdit = GUICtrlCreateEdit('', 5, 5, 630, 470)
    GUICtrlSetLimit(-1, 99999)
    GUICtrlSetData(-1, $sText)
    GUISetState()
    Do
    Until GUIGetMsg() = -3

    [/autoit]
  • [gelöst] Netzwerkproblem...

    • Oscar
    • 7. November 2009 um 21:10

    Nanu?
    Vorgestern erzählte mir ein Arbeitskollege von einem ähnlichen Problem. Immer wenn er bei YouTube ein Video ansehen will, wird das Video erst nach 20 sek. gestartet.
    Ich hatte erst vermutet, dass er sich irgendein "Optimierungsprogramm" installiert hat. Aber jetzt, wo ich das hier lese...
    Mein Arbeitskollege hat nämlich auch einen Internetzugang über Kabel-Deutschland. ?(
    Vielleicht suchst Du mal in dieser Richtung?!

  • Datenübertragung im Internet (Konzept) - Möglich?

    • Oscar
    • 7. November 2009 um 16:25

    Für so ein Konzept ist doch das klassische "ein Server/viele Clients" geeignet. Die Clients verbinden sich (sobald sie gestartet sind) mit dem Server und der verteilt dann die Befehle.
    Im umgekehrten Fall (wenn die "Clients" als Server fungieren) besteht doch eine viel größere Missbrauchsgefahr, weil sich dann jeder dort "einloggen" kann.

    @Reaker: Wenn Du vorhast dort Befehle auszuführen, dann bau aber unbedingt eine Sicherheitsabfrage (Passwort) ein. Oder nimm gleich ein fertiges Programm (VNC). Gerade wenn das irgendwelche Firmenrechner sind. :rolleyes:

  • Datenübertragung im Internet (Konzept) - Möglich?

    • Oscar
    • 7. November 2009 um 04:29

    Ja klar, und 20 Dyndns-Namen und 20 mal den Router konfigurieren (Portweiterleitung). :D

    @Reaker: Was soll das eigentlich werden?

  • Bestimmtes TreeView-Design + Minimal-/Maximal-Größe einer GUI festlegen

    • Oscar
    • 7. November 2009 um 03:53

    Meinst Du die Icons? Das geht mit _GUICtrlTreeView_SetIcon().

    Für die GUI-Größenfestlegung hier ein Beispiel:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Opt('GUIOnEventMode', 1)

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

    If Not IsDeclared('WS_EX_COMPOSITED') Then Global Const $WS_EX_COMPOSITED = 0x02000000
    Global $hGUI = GUICreate('Test', 600, 600, -1, 0, BitOR($WS_MAXIMIZEBOX, $WS_SIZEBOX), $WS_EX_COMPOSITED)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End')

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

    GUISetState()
    GUIRegisterMsg($WM_GETMINMAXINFO, "MY_WM_GETMINMAXINFO")

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

    While True
    Sleep(100)
    WEnd

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

    Func _End()
    Exit
    EndFunc ;==>_End

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

    Func MY_WM_GETMINMAXINFO($hWnd, $msg, $wParam, $lParam)
    If $hWnd = $hGUI Then
    Local $minmaxinfo = DllStructCreate("int;int;int;int;int;int;int;int;int;int", $lParam)
    DllStructSetData($minmaxinfo, 7, 400) ; min X
    DllStructSetData($minmaxinfo, 8, 400) ; min Y
    DllStructSetData($minmaxinfo, 9, 800) ; max X
    DllStructSetData($minmaxinfo, 10, 800) ; max Y
    EndIf
    EndFunc ;==>MY_WM_GETMINMAXINFO

    [/autoit]
  • Datenübertragung im Internet (Konzept) - Möglich?

    • Oscar
    • 6. November 2009 um 17:54

    Ich denke, Du verstehst das Konzept nicht. Nicht der Server verbindet sich mit den Clients, sondern genau umgekehrt.
    Der Server muss erstmal darauf warten, dass sich die Clients mit ihm verbinden und wenn das geschehen ist, dann kann der Server auch Nachrichten an die Clients verschicken.

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™