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

Beiträge von Marthog

  • Erkennen ob Edit,Label,...

    • Marthog
    • 29. Juni 2010 um 15:03
    Spoiler anzeigen
    [autoit]

    Func _GetWindowStyles($hwnd)
    If Not IsHWnd($hwnd) Then
    $hwnd = GUICtrlGetHandle($hwnd)
    EndIf

    $tagWINDOWINFO = DllStructCreate("DWORD cbSize; long[4]; long[4]; DWORD dwStyle; DWORD dwExStyle; DWORD dwWindowStatus;UINT;UINT;WORD;WORD")

    DllStructSetData($tagWINDOWINFO, "cbSize", DllStructGetSize($tagWINDOWINFO))

    DllCall("User32.dll", "BOOL", "GetWindowInfo", "hwnd", $hwnd, "ptr", DllStructGetPtr($tagWINDOWINFO))

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

    Return DllStructGetData($tagWINDOWINFO, "dwStyle")
    EndFunc

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

    Func _ControlGetClassName($hwnd)
    Switch _WinAPI_GetClassName($hwnd)
    Case "Static"
    $class="Label"
    Case "Edit"
    If BitAND(_GetWindowStyles($hwnd), $ES_MULTILINE) = $ES_MULTILINE Then
    $class="Edit"
    Else
    $class="Input"
    EndIf
    Case "Button"
    $class="Button"
    Case "ComboBox"
    $class="Combo"
    Case Else
    $class=_WinAPI_GetClassName($hwnd)
    EndSwitch
    Return $class
    EndFunc

    [/autoit]
  • Erkennen ob Edit,Label,...

    • Marthog
    • 28. Juni 2010 um 18:50

    Du kannst mit _WinAPI_GetClassName den Klassennamen herausfinden. Dann kannst du anhand der Styles herausfinden, um welches es sich genau handelt, z.B. Input und Edit haben beide "Edit" als Klassennamen, aber Ein Edit hat ES_MULTILINE als style.

  • Edit - Zeichenlimit für jede Zeile

    • Marthog
    • 26. Juni 2010 um 23:07

    GUICtrlSetLimit setzt nur die maximale Gesamtanzahl fest. Du musst schon selber was schreiben.


    Spoiler anzeigen
    [autoit]

    $lineLimit = 10

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

    GUICreate("")

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

    $edit = GUICtrlCreateEdit("", 0, 0, 400, 400)

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

    AdlibRegister("CheckLimit", 250)

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

    GUISetState()

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

    Do
    Until GUIGetMsg()=-3

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

    Func CheckLimit()
    Local $lines = StringSplit(GUICtrlRead($edit), @CRLF, 1)
    Local $text = ""
    Local $change = False
    For $i=1 To $lines[0]
    If StringLen($lines[$i]) > $lineLimit Then
    $lines[$i] = StringLeft($lines[$i], $lineLimit)
    $change = True
    EndIf
    $text&=$lines[$i]
    If $i<$lines[0] Then
    $text&=@CRLF
    EndIf
    Next
    If $change Then GUICtrlSetData($edit, $text)
    EndFunc

    [/autoit]


    Hierbei wird die Zeile gekürzt, wenn sie zu lang ist. Es kann Probleme geben, wenn der Text im Edit viele Zeilen enthält.

  • Aus welchem Bundesland kommt ihr ?

    • Marthog
    • 24. Juni 2010 um 21:31

    Ich bin aus Schleswig Holstein. Noch der einzige, aber ich weiß, dass es ein paar mehr User aus Kiel gibt.

  • "Drücken sie eine beliebige Taste"

    • Marthog
    • 24. Juni 2010 um 20:27

    Sobald aber ein Edit den Fokus hat, wird darin geschrieben statt dem WM_KEYDOWN-aufruf, also stimmt das aus der Hilfe.


    EDIT: Zu spät

  • Projektideen

    • Marthog
    • 24. Juni 2010 um 15:51
    Zitat von TheShadowAE

    Für Betriebssysteme brauch man Assembler

    Oder man schreibt ein eigenes System mit dem Linux-Kernel komplett in C. Aber damit läuft kein GDI+. Muss man sich halt ein eigenes schreiben.

  • X- Minimieren -Maximieren -Titelleiste erhöhen und Elemente darauf darstellen

    • Marthog
    • 23. Juni 2010 um 19:37

    Ich denke, dass wird nicht so einfach sein, weil das von allen, bei mir installierten Programmen, nur der Indernetexplorer und der normale Explorer haben.

  • C++ UpdateLayeredWindow

    • Marthog
    • 19. Juni 2010 um 23:04

    Das liegt daran, dass der Dev-C++ etwas älter ist.
    Wenn du ganz an den Anfang des Programms

    Code
    #undef _WIN32_WINNT
    #define _WIN32_WINNT 0x0500


    schreibst, findet er bei mir die Funktion.
    Allerdings gibt es noch einige Link-errors.

    Mit MV-C++ funktioniert es (vorrausgesetzt, es gehört so, dass das Fenster komplett unsichtbar ist)

  • Textdokument-Fragen

    • Marthog
    • 19. Juni 2010 um 16:07

    Was genau willst du machen?
    Willst du Text aus einem GUIedit speichern oder den normalen Windowseditor steuern?

  • C++ Debugerfunktion auch in AutoIt möglich?

    • Marthog
    • 19. Juni 2010 um 14:30

    Wie man DLLs an einen Prozss anhängt, weiß ich nicht. Beim Microsoft Visual C++ kann man ja zwischen Release- und Debugmodus wechseln. Bei Debugmodus werden afaik beim kompilieren zusätzliche Funktionsaufrufe in den Quellcode eingefügt, sodass dieser Informationen sendet.

  • Edits kein enter???

    • Marthog
    • 17. Juni 2010 um 22:32

    Ini-values enthalten nunmal keine Zeilenumbrüche. Entweder du "entwickelst" eiun eigenes Dateiformat dafür oder du ersetzt alle Zeilenumbrüche durch ein anderes Zeichen, dass du sonst nicht darin verwendest, z.B.

    [autoit]

    $value = GUICtrlRead($EDIT)
    $value = StringReplace($value, @CRLF, Chr(1))
    IniWrite("INI.ini", "SECTION", "KEY", $value)

    [/autoit]


    Beim Einlesen muss es halt entsprechen zurückgewandelt werden.

  • C++ Scriptsprache mit DirectX

    • Marthog
    • 16. Juni 2010 um 21:25

    Ihr müsst die Skripte im Beispielordner daraufziehen.

  • C# oder C++

    • Marthog
    • 8. Juni 2010 um 11:35
    Zitat von L3viathan

    C++ ist platformunabhängig, und wird deshalb von mir empfohlen.

    C# ist auch plattformunabhängig, da es das .NET-Framework auch für andere Systeme gibt. C++ muss für jedes Betriebssystem neu kompiliert werden, vorrausgesetzt, es wird nicht Betriebssystemeigenes verwendet, z.B. Windows-GUIs

  • Richtextbox Hilfe...

    • Marthog
    • 7. Juni 2010 um 23:20

    3. Das funktioniert teilweise:

    [autoit]

    Func _SetState($HWND, $state)
    DllCall("User32.dll", "BOOL", "ShowWindow", "HWND", $HWND, "int", $state)
    Return @error
    EndFunc

    [/autoit]

    Als $state-Parameter werden die @SW_????-Macros verwendet. @SW_DISABLE funktioniert nicht.

  • Richtextbox Hilfe...

    • Marthog
    • 7. Juni 2010 um 22:45

    1. Bei exstyle (der letzte Parameter) 0 eintragen

  • Splash Ladebildschirm (ähnlich wie bei Office 2010)

    • Marthog
    • 7. Juni 2010 um 20:15

    Das sieht ja super aus!!!!

    Bei mir auf Vista 64-bit läuft es.

  • Einzeiliger Script funktioniert nicht >.<

    • Marthog
    • 7. Juni 2010 um 18:39
    [autoit]

    If @ScriptDir<>"C:\Dokumente und Einstellungen\USER\Startmenü\Programme\Autostart" Then MsgBox(0, "", "")

    [/autoit]

    geht auch und ist kürzer.

  • Timer intit/diff in C++

    • Marthog
    • 6. Juni 2010 um 22:13
    Code
    #include <Time.h>
    unsigned int VariablenName= clock();
    int diff = clock()-Timer;


    EDIT: Das funktioniert nur mit Windows.

  • [Abstimmung] Multimedia-Wettbewerb

    • Marthog
    • 2. Juni 2010 um 22:01
    Zitat von XXlolimanxx

    bitte für mich auch kritik ;D

    Wenn kein Lied in der Playlist ist und man abspielen drückt, zeigt er an Zeit: 0 von 0 und das Label flackert
    Beim manuellen Zeiteinstellen kann man nur in großen Stufen einstellen.
    Wenn man einmal auf Radio schaltet, ist die Playlist weg (man muss neu laden)
    Statt einem Pause-Button und einem Play-Button finde ich einen Button besser, der wechelt (jenachdem ob gerade Pause ist oder gespielt wird)


    Nun zufrieden?

  • [Abstimmung] Multimedia-Wettbewerb

    • Marthog
    • 2. Juni 2010 um 21:23

    Ich kann leider das von L3viathan testen (man hört bei Beep nichts), deswegen werde ich nicht abstimmen.


    Kritikpunkte:
    - bei Alizames wird bei Radio die Datei Sender.txt nicht gefunden, der Pausebutton geht nicht und beim drücken auf den Playbutton fängt er jedesmal von vorne an (auch wenn er gerade spielt)
    - bei Black_Scorpis wird firefox benötigt und er brauchte bei mir einige Minuten, bis er läuft und ein Firefox-fenster wird am Anfang geöffnet.

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™