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

Beiträge von Prajoss

  • Fragen zu meinem nächsten projekt.

    • Prajoss
    • 8. April 2009 um 13:58

    Hey,

    ich hatte mal für ein Programm von mir nen Algorythmus geschrieben für Suche in Unterordnern ;)

    Das kannst du sicher gebrauchen.

    Spoiler anzeigen
    [autoit]

    Opt("TrayIconDebug", 1)

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

    _File_Search_Subfolder("C:\test\")

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

    Func _File_Search_Subfolder($folder)

    Dim $search_dir, $subfolder, $filedoc, $x = 0, $file_suche[5000]

    If StringTrimLeft($folder, StringLen($folder) - 1) <> "\" Then $folder = $folder & "\"

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

    $search_dir = FileFindFirstFile($folder & "*.*")

    MsgBox(0, "T", $folder)

    While 1

    $search = FileFindNextFile($search_dir)

    If @error Then ExitLoop

    If StringInStr(FileGetAttrib($folder & "\" & $search), "D") <> 0 Then
    $subfolder = $folder & $search & "\"
    _File_Search_Subfolder($subfolder)
    EndIf

    WEnd

    FileClose($search_dir)

    $search_file = FileFindFirstFile($folder & "*.*")

    While True

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

    $file_suche[$x] = $folder & FileFindNextFile($search_file)

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

    If @error Then ExitLoop

    MsgBox(0, "T", $file_suche[$x])

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

    $x = $x + 1

    WEnd

    Return

    EndFunc

    [/autoit]

    Stammt aus meinen Anfängen, deswegen ist der code vllt ein wenig grausam^^

    Gruß

    Prajoss

  • Hotkey & Remote- und ICA-Sitzungen

    • Prajoss
    • 31. März 2009 um 20:28

    An sich schon, leider nicht für die Druck-Taste^^

    "2C" in dem Fall :/

    Die geht nicht -.-

  • Hotkey & Remote- und ICA-Sitzungen

    • Prajoss
    • 31. März 2009 um 16:49

    Schon ok,

    bin grade dabei die Lösung zu finden.

    /Close

  • Hotkey & Remote- und ICA-Sitzungen

    • Prajoss
    • 31. März 2009 um 16:02

    ./push

  • DNA Programm

    • Prajoss
    • 31. März 2009 um 14:34

    Hey,

    schau dir doch einfach die ganzen String - FUnktionen wie

    Stringsplit an..

    Gruß Prajoss

  • Hotkey & Remote- und ICA-Sitzungen

    • Prajoss
    • 31. März 2009 um 14:33

    Inwiefern manuell ohne Auto-IT?

    Das Problem liegt irgendwo, dass er den Übergegebenen Tastendruck zwar an die Remote/Citrix Seassion übergibt,
    diese jedoch nicht als Hotkey erkannt wird?!

    Wenn ich die Drucktaste so probiere ohne das Script laufen zu haben dann sowohl mein lokales als auch
    das Windows in der Seassion einen Screenshot!

    Die Frage ist halt, wieso das Script dann nicht greift?

    Gruß

    Prajoss

  • Hotkey & Remote- und ICA-Sitzungen

    • Prajoss
    • 31. März 2009 um 13:52

    ./push

    :(

  • Platzhalter in einer Zeile

    • Prajoss
    • 31. März 2009 um 13:07

    Schau dir die String - Funktionen an,

    ich an deiner Stelle für den String für jedes Zeichen aufteilen und dann den String wieder zusammensetzten, aber nur
    die Zeichen verwenden, welche keine Zahlen sind.

    Gruß

    Prajoss

  • Hotkey & Remote- und ICA-Sitzungen

    • Prajoss
    • 31. März 2009 um 11:37

    Hallo,

    ich habe gerade folgende Problematik:

    Wenn ich mich per Remote oder über einen ICA-Client (Citrix) an einem Terminal-Server oder normalem PC anmelde, dann habe ich das Problem

    dass dieses Script nur dann funktioniert, wenn sich die Sitzung im Vollbildmodus befindet.

    Spoiler anzeigen
    [autoit]

    HotKeySet("{PRINTSCREEN}", "Box")

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

    While True

    Sleep(10)

    WEnd

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

    Func Box()

    MsgBox(0, "Erfolg", "So sollte es sein!")

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

    EndFunc

    [/autoit]

    Weis jemand warum die Hotkeys nur im Vollbildmodus funktionieren?

    Gruß

    Prajoss

  • _GDI+ Objekte löschen

    • Prajoss
    • 26. März 2009 um 09:53

    Hey,

    im moment sieht das Script so aus:

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #include <ScreenCapture.au3>
    #include <Misc.au3>

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

    Opt("TrayIconDebug", 1)

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

    HotKeySet("{ESC}", "ende")

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

    Global $CaptureFile = "C:\test.bmp"
    Global $Edit_Alt[2]

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

    $Fenster = GUICreate("Test", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP)
    _ScreenCapture_Capture($CaptureFile, 0, 0, -1, -1, 0)

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

    GUICtrlCreatePic($CaptureFile, 0, 0, @DesktopWidth, @DesktopHeight)

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

    GUISetCursor(3, 1)

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

    GUISetState(@SW_SHOW, $Fenster)
    GUISetState(@SW_DISABLE, $Fenster)

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

    $Fenster2 = GUICreate("Test2", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP, $WS_EX_LAYERED)
    GUISetBkColor(0xABCDEF)
    _WinAPI_SetLayeredWindowAttributes($Fenster2, 0xABCDEF, 255)

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

    GUISetState(@SW_SHOW, $Fenster2)

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

    GUISetCursor(3, 1)

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

    _GDIPlus_Startup()

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

    $Graphic = _GDIPlus_GraphicsCreateFromHWND($Fenster2)

    $Pinsel = _GDIPlus_PenCreate(0xFF000000, 4)

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

    $UserDLL = DllOpen("user32.dll")

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

    While 1
    If _IsPressed("01", $UserDLL) Then
    Local $Start_Pos = MouseGetPos()
    ExitLoop
    EndIf
    Sleep(100)
    WEnd

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

    While 1

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

    $Edit_Pos = MouseGetPos()

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

    If ($Edit_Pos[0] <> $Start_Pos[0] And $Edit_Pos[0] <> $Edit_Alt[0]) Or ($Edit_Pos[1] <> $Start_Pos[1] And $Edit_Pos[1] <> $Edit_Alt[1]) Then

    _GDIPlus_GraphicsClear($Graphic, 0xFFABCDEF)

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

    $line_x = _GDIPlus_GraphicsDrawLine($Graphic, $Start_Pos[0], $Start_Pos[1], $Edit_Pos[0], $Start_Pos[1], $Pinsel)
    $line_x2 = _GDIPlus_GraphicsDrawLine($Graphic, $Start_Pos[0], $Edit_Pos[1], $Edit_Pos[0], $Edit_Pos[1], $Pinsel)
    $line_y = _GDIPlus_GraphicsDrawLine($Graphic, $Start_Pos[0], $Start_Pos[1], $Start_Pos[0], $Edit_Pos[1], $Pinsel)
    $line_y2 = _GDIPlus_GraphicsDrawLine($Graphic, $Edit_Pos[0], $Start_Pos[1], $Edit_Pos[0], $Edit_Pos[1], $Pinsel)

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

    $Edit_Alt[0] = $Edit_Pos[0]
    $Edit_Alt[1] = $Edit_Pos[1]

    EndIf

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

    If Not _IsPressed("01", $UserDLL) Then
    Local $End_Pos = MouseGetPos()

    If $Start_Pos[0] < $End_Pos[0] Then
    $left = $Start_Pos[0]
    $right = $End_Pos[0]
    Else
    $left = $End_Pos[0]
    $right = $Start_Pos[0]
    EndIf

    If $Start_Pos[1] < $End_Pos[1] Then
    $top = $Start_Pos[1]
    $bottom = $End_Pos[1]
    Else
    $top = $End_Pos[1]
    $bottom = $Start_Pos[1]
    EndIf

    ExitLoop
    EndIf

    Sleep(100)
    WEnd

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

    _GDIPlus_GraphicsDispose($Graphic)
    _GDIPlus_Shutdown()

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

    Func ende()

    Exit

    EndFunc

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

    Func _WinAPI_SetLayeredWindowAttributes($hwnd, $i_transcolor, $Transparency = 255, $dwFlages = 0x03, $isColorRef = False)
    ; progandy
    If $dwFlages = Default Or $dwFlages = "" Or $dwFlages < 0 Then $dwFlages = 0x03
    If Not $isColorRef Then
    $i_transcolor = Hex(String($i_transcolor), 6)
    $i_transcolor = Execute('0x00' & StringMid($i_transcolor, 5, 2) & StringMid($i_transcolor, 3, 2) & StringMid($i_transcolor, 1, 2))
    EndIf
    Local $Ret = DllCall("user32.dll", "int", "SetLayeredWindowAttributes", "hwnd", $hwnd, "long", $i_transcolor, "byte", $Transparency, "long", $dwFlages)
    Select
    Case @error
    Return SetError(@error, 0, 0)
    Case $Ret[0] = 0
    Return SetError(4, _WinAPI_GetLastError(), 0)
    Case Else
    Return 1
    EndSelect
    EndFunc ;==>_WinAPI_SetLayeredWindowAttributes#cs ----------------------------------------------------------------------------

    [/autoit]

    Und so funktioniert es auch/gestern abend noch vor Feierabend hinbekommen^^), Danke hier nochmal an Progandy für diese Funktion :)

  • _GDI+ Objekte löschen

    • Prajoss
    • 25. März 2009 um 16:49

    Hatte nen Geistesblitz und es selbst gelöst,

    einfach ein 2. Gui erstellen, ebenfalls über den Bildschirm legen und Transparent machen *g* (komplizierte Geschichte^^)

  • send("text") ohne delay

    • Prajoss
    • 25. März 2009 um 16:40

    Dann bleibt dir nurnoch die Send Methode...

  • send("text") ohne delay

    • Prajoss
    • 25. März 2009 um 16:17

    Dann hast du ganz schlecht Karten, um welchen Chat handelt es sich?

    du könntest noch probieren einfach deinen Text in die Zwischenablage zu kopieren (Clipboard)

    und dann einfach den Befehl "Strg + V" für einfügen zu senden... mehr fällt mir nicht mehr ein

  • send("text") ohne delay

    • Prajoss
    • 25. März 2009 um 16:09

    Du musst bei ControlSetText natürlich das Eingabefeld mitangeben!!

    Lies doch bitte die Hilfe!

  • GUI mit Bild (Bild in der .exe)

    • Prajoss
    • 25. März 2009 um 15:56

    Fileinstall hilft ;)

    Edit: Mist, heute sind die Raupen besonders schnell ;P

  • send("text") ohne delay

    • Prajoss
    • 25. März 2009 um 15:49
    [autoit]

    ControlSend

    [/autoit]

    dann

    [autoit]

    ControlSetText

    [/autoit]

    und danach ein

    [autoit]

    ControlSend

    [/autoit]

    und im ControlSend nimmst du halt dein Enter rein...

  • _GDI+ Objekte löschen

    • Prajoss
    • 25. März 2009 um 15:46

    Hey,

    und mal wieder Ich ;/

    Leider komm ich an einem aktuellen Problem nicht weiter.

    Ich erstelle einen Screenshot, danach leg ich ne GUI über den gesamten Bildschirm und lade dort das Bild.

    Jetzt möchte ich sobald die linke Maustaste gedrückt und gehalten wird und weggezogen wird ein Viereck zeichnen, das funktioniert auch.

    Das Viereck dient dazu die Koordinaten für ein Screenshot festzulegen.

    Das Problem was ich jetzt habe, ich kann zwar das Viereck (Ich zeichne alle 4 linien einzeln) funktioniert zwar, aber das löschen des "alten" Vierecks nicht! Finde auch keine Befehle dafür.

    Als letzten Versuch habe ich probiert in der Schleife das GDI+ zu starten und zu beenden, aber auch das löscht nicht zuversichtlich die letzten Vierecke :/

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #include <ScreenCapture.au3>
    #include <Misc.au3>

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

    Opt("TrayIconDebug", 1)

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

    HotKeySet("{ESC}", "ende")

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

    Global $CaptureFile = "C:\test.bmp"
    Global $Edit_Alt[2]
    Global $line_x = 0

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

    $Fenster = GUICreate("Test", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP)
    _ScreenCapture_Capture($CaptureFile, 0, 0, -1, -1, 0)

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

    GUICtrlCreatePic($CaptureFile, 0, 0, @DesktopWidth, @DesktopHeight)

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

    GUISetState()

    $UserDLL = DllOpen("user32.dll")

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

    While 1
    If _IsPressed("01", $UserDLL) Then
    Local $Start_Pos = MouseGetPos()
    ExitLoop
    EndIf
    Sleep(100)
    WEnd

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

    While 1

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

    $Edit_Pos = MouseGetPos()

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

    _GDIPlus_Startup()

    $Graphic = _GDIPlus_GraphicsCreateFromHWND($Fenster)

    $Pinsel = _GDIPlus_PenCreate(0xFF000000, 4)

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

    If $Edit_Pos[0] <> $Start_Pos[0] And $Edit_Pos[0] <> $Edit_Alt[0] Then

    $line_x = _GDIPlus_GraphicsDrawLine($Graphic, $Start_Pos[0], $Start_Pos[1], $Edit_Pos[0], $Start_Pos[1], $Pinsel)
    $line_x2 = _GDIPlus_GraphicsDrawLine($Graphic, $Start_Pos[0], $Edit_Pos[1], $Edit_Pos[0], $Edit_Pos[1], $Pinsel)

    $Edit_Alt[0] = $Edit_Pos[0]

    EndIf

    If $Edit_Pos[1] <> $Start_Pos[1] And $Edit_Pos[1] <> $Edit_Alt[1] Then

    $line_y = _GDIPlus_GraphicsDrawLine($Graphic, $Start_Pos[0], $Start_Pos[1], $Start_Pos[0], $Edit_Pos[1], $Pinsel)
    $line_y2 = _GDIPlus_GraphicsDrawLine($Graphic, $Edit_Pos[0], $Start_Pos[1], $Edit_Pos[0], $Edit_Pos[1], $Pinsel)

    $Edit_Alt[1] = $Edit_Pos[1]

    EndIf

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

    _GDIPlus_GraphicsDispose($Graphic)
    _GDIPlus_Shutdown()

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

    If Not _IsPressed("01", $UserDLL) Then
    Local $End_Pos = MouseGetPos()

    If $Start_Pos[0] < $End_Pos[0] Then
    $left = $Start_Pos[0]
    $right = $End_Pos[0]
    Else
    $left = $End_Pos[0]
    $right = $Start_Pos[0]
    EndIf

    If $Start_Pos[1] < $End_Pos[1] Then
    $top = $Start_Pos[1]
    $bottom = $End_Pos[1]
    Else
    $top = $End_Pos[1]
    $bottom = $Start_Pos[1]
    EndIf

    ExitLoop
    EndIf

    Sleep(100)
    WEnd

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

    Func ende()

    Exit

    EndFunc

    [/autoit]

    Vllt hat ja jemand Erfahrung mit _GDI+ und dieser Problematik.

    Gruß

    Prajoss

  • Speicherauslastung so hoch?

    • Prajoss
    • 25. März 2009 um 15:38

    Standart Windows Dll ;)

  • send("text") ohne delay

    • Prajoss
    • 25. März 2009 um 15:34

    Hey,

    dann nimm statt Send einfach

    [autoit]

    ControlSetText()

    [/autoit]

    Gruß

    Prajoss

  • Speicherauslastung so hoch?

    • Prajoss
    • 25. März 2009 um 13:12

    Der Befehl bewirkt, dass mein gesamtes Script nurnoch 500 KB statt 7 MB verbraucht ^^

    Das Script selbst funktioniert sogar :D

    Hoffentlich killt mir das nicht irgendwelche Prozesse ^^

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™