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

Beiträge von Greenhorn

  • Scrollen simulieren

    • Greenhorn
    • 4. Oktober 2010 um 21:49

    Hi,

    auf Anhieb würde ich sagen:

    [autoit]

    _GUIScrollBars_ScrollWindow($hWnd, $xChar * ($xPos - $Pos), 0)

    [/autoit]


    Gruß
    Greenhorn

  • Z-Order von Fenstern ermitteln?

    • Greenhorn
    • 4. Oktober 2010 um 21:43

    Hm,

    rein theoretisch sollte es so irgendwie Funktionieren, aber irgendwie listet es nicht alle Fenster auf ...

    Spoiler anzeigen
    [autoit]


    Global Const $user32dll = DllOpen ("user32.dll")

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

    #include <Constants.au3>

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

    Global Const $MAX_PATH = 260
    Global Const $HWND_DESKTOP = 0

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

    Func GetTopWindow ($hWnd)

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

    Local $aRes = DllCall ($user32dll, 'HWND', 'GetTopWindow', _
    'HWND', $hWnd)
    Return $aRes[0]

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

    EndFunc

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

    Func GetNextWindow ($hWnd, $wCmd)

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

    Local $aRes = DllCall ($user32dll, 'HWND', 'GetWindow', _
    'HWND', $hWnd, _
    'UINT', $wCmd)
    Return $aRes[0]

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

    EndFunc

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

    Func GetWindowText ($hWnd, ByRef $lpString, $nMaxCount)

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

    Local $aRes = DllCall ($user32dll, 'INT', 'GetWindowTextW', _
    'HWND', $hWnd, _
    'WSTR', $lpString, _
    'INT', $nMaxCount)
    If (not @error) Then
    $lpString = $aRes[2]
    Return $aRes[0]
    EndIf

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

    EndFunc

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

    Func GetWindowZOrder ($hWnd)

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

    Local $hwndTop
    Local $hwndNext
    Local $sText

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

    $hwndTop = GetTopWindow ($hWnd)

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

    If (not $hwndTop) Then _
    Return FALSE

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

    GetWindowText ($hwndTop, $sText, $MAX_PATH)
    ConsoleWrite (StringFormat ("--- HWND: %s; Text: %s\n", $hwndTop, $sText))

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

    $hwndNext = GetNextWindow ($hwndTop, $GW_HWNDNEXT)

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

    GetWindowText ($hwndNext, $sText, $MAX_PATH)
    ConsoleWrite (StringFormat ("--- HWND: %s; Text: %s\n", $hwndNext, $sText))

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

    While (($hwndNext = GetNextWindow ($hwndNext, $GW_HWNDNEXT)) <> 0)

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

    GetWindowText ($hwndNext, $sText, $MAX_PATH)
    ConsoleWrite (StringFormat ("--- HWND: %s; Text: %s\n", $hwndNext, $sText))
    WEnd

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

    Return TRUE

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

    EndFunc

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

    WinActivate ("PoEdit")
    Sleep (500)
    GetWindowZOrder ($HWND_DESKTOP) ; Desktop = 0
    DllClose ($user32dll)
    Exit (0)

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

    ;«««««««««««««««««««««««««««««««« End Of File «««««««««««««««««««««««««««««««««

    [/autoit]


    Gruß
    Greenhorn

  • Kommentare hinter Scriptzeilen "ausrichten"? Hat das schon jemand gemacht?

    • Greenhorn
    • 3. Oktober 2010 um 18:54

    Hmm, da gibt es einige Fallstricke ...

    Das einfachste wäre es die Tabs im Code/Text in Leerzeichen umzuwandeln.
    Da die Tabweite variieren kann, ist das wohl der beste Weg.
    Ich benutze z.B. eine Tabweite von 5 Leerzeichen, das Plugin scheint 4 zu nutzen ...


    Gruß
    Greenhorn

  • Anderen PC-Zeichensatz (auch Codepage)

    • Greenhorn
    • 3. Oktober 2010 um 13:27

    Hi,

    wenn Du in UTF-x de/kodieren möchtest, dann ist hier ein Anfang ...
    Unicode
    UTF
    Ist aber nicht ganz einfach ...


    Gruß
    Greenhorn

  • Statische Variablen in Funktionen

    • Greenhorn
    • 1. Oktober 2010 um 22:19
    Zitat von m-obi

    Greenhorn: Was meinst du denn mit Code-Faltung?


    Siehe SciTE Menüpunkt Ansicht (View) -> Alle Code-Falten ein|aus (toggle all folds) ...

    Ist aber noch fehlerhaft, wie ich gerade sehe ...

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


    Gruß
    Greenhorn

    Dateien

    FoldASM.jpg 147,88 kB – 0 Downloads
  • Statische Variablen in Funktionen

    • Greenhorn
    • 1. Oktober 2010 um 17:57
    Zitat von Andy

    Guter Tip! Vielen Dank dafür. Ich komme wahrscheinlich nie aus dem "Hobby-Programmierer-Status" raus, die ASM-Geschichte hatte mich interessiert, weil ich in den letzten Monaten aufgrund einer OP zwangsruhiggestellt war und ich beim Aufräumen einige "alte" Programmlistings gefunden hatte.
    Ob ich das Thema weiter vertiefe, weiss ich noch nicht genau, der Umzug auf 64Bit-Systeme wird mittelfristig anstehen, und für "Just for Fun" ist 64Bit-Asm doch etwas komlex^^
    Jedenfalls würde ich mich über dein Feedback/Verbesserungsvorschläge bzgl. ASM freuen, einige der "Autodidakten" hier im Forum (so wie ich) würden sicherlich gerne von deinem KnowHow profitieren :thumbup: und müssten nicht stundenlang herumprobieren, bis einem ein Kronleuchter aufgeht 8o


    Ich bin auch nur ein Hobby-Programmierer und Autodidakt.

    Mit ASM beschäftige ich mich seit ca. einem Jahr und ich habe eigentlich auch viel zu wenig Zeit dafür.
    64bit Programme in Assembler zu schreiben ist einfacher als 32bit ASM, finde ich.
    In 64bit ASM (MODEL FLAT) gibt es keine Segmente mehr, alles befindet sich im gleichen Segment. ;)

    Dein ASM Tutorium ist prima gemacht, aber aus den Antworten, bzw. den Eigenversuchen der Leute ersehe ich teilweise, dass die Grundlagen noch nicht richtig verstanden wurden. Ein Buch, dass ich jedem Interessierten empfehlen kann ist Assembler - Grundlagen der Programmierung von Joachim Rohde und Marcus Roming.

    Mach weiter so :) und mal sehen ob meine Kenntnisse ausreichend sind um mich positiv einzubringen ... ;)

    EDIT:
    Ich habe letzte Woche Code-Faltung für ASM in Scintilla eingebaut, bisher aber nur für MASM-Syntax. :)
    Vielleicht kannst Du mir ja bei Gelegenheit behilflich sein FASM-Syntax zu integrieren, sollte die Syntax stark von der MASM-Syntax abweichen (bei den Makros ist es jedenfalls so).
    Bisher habe ich Faltung für Makros, Strukturen/Records/Unions, Prozeduren, bedingte Assemblierung und für die (MASM) Pseudo-Direktiven .if/.elseif/.else und .while (.repeat/.until fehlt noch, fällt mir gerade ein).

    Gruß
    Greenhorn

  • Statische Variablen in Funktionen

    • Greenhorn
    • 30. September 2010 um 22:22
    Zitat von Großvater

    Es würde mich allerdings schon interessieren, warum dieser abschreckende Hinweis in der Hilfe steht. Hat Jemand eine Ahnung?


    Am Anfang gab es Probleme mit Arrays, die als statische Variable deklariert wurden. Genauer, bei der Benutzung von ReDim mit einer statischen Arrayvariable.
    Ob der Fehler inzwischen behoben wurde weiss ich nicht, aber könnte gut sein. Und ebenso könnte es gut sein, das einfach vergessen wurde, den Warnhinweis zu entfernen (wäre nicht das erste mal).

    Bei einem normal kompilierten Programm werden statische Variablen meist im __BSS Segment angelegt. Hier haben wir es aber mit einem Interpreter zu tun, der die Variablen aus dem Skript zur Laufzeit erzeugt.

    Andy
    Du kannst in ASM statische Variablen in Funktionen z.B. so implementieren:

    Spoiler anzeigen
    Code
    MyProc proc stdcall uses ebx, hwnd:HWND, message:UINT, wParam:WPARAM, lParam:LPARAM
    	_BSS segment DWORD public 'BSS'
    	myStaticVar dword 0DEADh
    	_BSS ends
    
    
    	mov ebx, myStaticVar
    	; ...
    	ret
    MyProc endp


    Gruß
    Greenhorn

  • Dynamische Anzahl an Buttons abfragen

    • Greenhorn
    • 30. September 2010 um 18:52

    Hi,

    siehe Dir einmal @GUI_CtrlId in der Funktionsbeschreibung

    [autoit]

    GUICtrlSetOnEvent (...)

    [/autoit]

    an ... ;)


    Gruß
    Greenhorn

  • Windows Areo Problem

    • Greenhorn
    • 28. September 2010 um 20:13

    Ei-ei-ei ... :D


    Gruß

  • Windows Areo Problem

    • Greenhorn
    • 28. September 2010 um 19:55

    Hi,

    die Anzeige ist bei mir auch normal. Ich glaube nicht, dass es an deiner Grafikkarte liegt.
    Allerdings funktioniert das Menü bei mir nicht.


    Gruß
    Greenhorn

  • Problem mit Screenshot auf Windows 7

    • Greenhorn
    • 24. September 2010 um 14:28

    Hi,

    wenn dein Spiel DirectX benutzt, dann musst du es über das DirectX API machen.
    Beispiel in C++


    Gruß
    Greenhorn

  • Gibt es eine Möglichkeit die WM_Notify Messages eines LIstviews per DllCallbackRegister auszuwerten?

    • Greenhorn
    • 22. September 2010 um 21:31

    Hi,

    die originale Beschreibung/Übersetzung ist doch eigentlich ganz klar.
    Ja, das setzt etwas Grundwissen voraus, das sollte man aber auch haben oder sich aneignen, wenn man die DllXxx Funktionen benutzen will.

    Grundsätzlich gilt: Jede Fensterklasse besitzt eine Fensterprozedur, in der die Nachrichten verarbeitet werden. Jedes Fenster der Klasse benutzt diese eine Fensterprozedur. Da sich das Programm im Speicher befindet, hat die Fensterprozedur natürlich auch eine Adresse. Jeder Funktionsaufruf ist letztendlich der Aufruf, bzw. Sprung, zu einer Adresse im Speicher, der Name der Prozedur/Funktion ist nur ein Synonym für die Adresse.

    Das Tutorial auf Pronix.de oder die Übersetzung von Iczelion's Win32 Tutorial sollte etwas Klarheit schaffen ...

    (Übrigens sind Steuerelemente auch nichts anderes als Fenster ;) )

    Sieh dir bitte noch einmal "EzBmpButton" und "Hello AutoIt3" an, dann hast Du es in AutoIt Code und kannst es vielleicht besser verstehen. In "PeaPad" ist ein Beispiel wie die Fensterprozedur des Eingabefeldes gegen eine eigene Prozedur ausgetauscht wird ...


    Gruß
    Greenhorn

  • Gibt es eine Möglichkeit die WM_Notify Messages eines LIstviews per DllCallbackRegister auszuwerten?

    • Greenhorn
    • 19. September 2010 um 20:16

    Hi,

    hmm, wenn ich es richtig verstanden habe, dann stellt Deine UDF eine Listenansicht zur Verfügung?

    Gruß
    Greenhorn

  • Happy Birthday Gun-Food! :-)

    • Greenhorn
    • 19. September 2010 um 19:09

    Schließe mich den Glückwünschen an und alles Gute zum Geburtstag, Gun! :)

    Feiere schön Deinen letzten Zwanziger ... ;)


    Lieben Gruß
    Greenhorn

  • Edit Box neue Zeile

    • Greenhorn
    • 18. September 2010 um 21:05

    Siehe EDIT in Post 7 ...

    Gruß

  • Edit Box neue Zeile

    • Greenhorn
    • 18. September 2010 um 20:48
    Zitat von Baaam


    Nun schreibt er den neuen Namen einfach dahinter?!


    Wenn der Cursor am Ende des Textes ist, dann ja, ansonsten wird er eingefügt. Also evtl. sicherstellen, daß der Cursor sich am Ende des Textes befindet.

    Zitat von GUICtrlSetData, 3. Parameter

    Edit, Input: wenn ein Parameter angegeben wird und dieser nicht aus "" besteht, wird der String an der Cursorposition eingefügt


    Du kannst es auch so machen wie der Doc es vorschlägt, frißt aber mehr Speicher, wenn der Text länger wird ...

    EDIT:

    [autoit]


    GUICtrlSendMsg ($IDC_EDIT, $EM_SETSEL, -1, -1) ; Cursor ans Ende des Textes setzen
    GUICtrlSetData ($IDC_EDIT, "Neue Zeile" & @CRLF, 1) ; Zeile einfügen

    [/autoit]


    Gruß
    Greenhorn

  • Edit Box neue Zeile

    • Greenhorn
    • 18. September 2010 um 20:28

    Hi,

    [autoit]

    GUICtrlSetData ($IDC_EDIT, "neue Zeile", 1)

    [/autoit]

    Gruß
    Greenhorn

  • WinSetState bei Windows 7

    • Greenhorn
    • 15. September 2010 um 01:35

    Hi,

    also bei mir funktioniert es immer noch ... ;)
    (Win7 x64)

    Spoiler anzeigen
    [autoit]


    Opt("WinTitleMatchMode", 2)

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

    Global $hwnd, $ret

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

    ConsoleWrite ("- Fensterhandle ermitteln" & @CRLF)
    $hwnd = WinWait ("Process Explorer - ")
    ConsoleWrite ("--- Rückgabe WinWait : "&$hwnd & @CRLF)

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

    ConsoleWrite ("- Minimieren" & @CRLF)
    $ret = WinSetState ($hwnd, 0, @SW_MINIMIZE)
    ConsoleWrite ("--- Rückgabe WinSetState : "&$ret & @CRLF)

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

    Sleep (500)

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

    ConsoleWrite ("- Wiederherstellen" & @CRLF)
    $ret = WinSetState ($hwnd, 0, @SW_RESTORE)
    ConsoleWrite ("--- Rückgabe WinSetState : "&$ret & @CRLF)

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

    Sleep (500)

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

    ConsoleWrite ("- Maximieren" & @CRLF)
    $ret = WinSetState ($hwnd, 0, @SW_MAXIMIZE)
    ConsoleWrite ("--- Rückgabe WinSetState : "&$ret & @CRLF)

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

    Sleep (500)

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

    ConsoleWrite ("- Wiederherstellen" & @CRLF)
    $ret = WinSetState ($hwnd, 0, @SW_RESTORE)
    ConsoleWrite ("--- Rückgabe WinSetState : "&$ret & @CRLF)

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

    Exit (0)

    [/autoit]


    Ausgabe

    Spoiler anzeigen
    Code
    >"C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "X:\AA\AutoIt\Temp\NeuTest.au3" /autoit3dir "C:\Program Files (x86)\AutoIt3" /UserParams    
    +>01:32:31 Starting AutoIt3Wrapper v.2.0.0.3    Environment(Language:0407  Keyboard:00000407  OS:WIN_VISTA/  CPU:X64 OS:X64)
    >Running AU3Check (1.54.19.0)  from:C:\Program Files (x86)\AutoIt3
    +>01:32:31 AU3Check ended.rc:0
    >Running:(3.3.6.1):C:\Program Files (x86)\AutoIt3\autoit3_x64.exe "X:\AA\AutoIt\Temp\NeuTest.au3"    
    - Fensterhandle ermitteln
    --- Rückgabe WinWait : 0x0000000000150708
    - Minimieren
    --- Rückgabe WinSetState : 1
    - Wiederherstellen
    --- Rückgabe WinSetState : 1
    - Maximieren
    --- Rückgabe WinSetState : 1
    >+ Wiederherstellen
    --- Rückgabe WinSetState : 1
    +>01:32:34 AutoIT3.exe ended.rc:0
    +>01:32:35 AutoIt3Wrapper Finished
    >Exit code: 0    Time: 4.165
    Alles anzeigen

    Gruß
    Greenhorn

  • AutoIt 3.3.6.1 komplett deutsche Hilfe verfügbar - Stand 2011.05.27

    • Greenhorn
    • 14. September 2010 um 20:07

    Hi Jungs,

    die News-Seite der Hilfe-Übersetzung sollte auch dementsprechend aktualisiert werden ... ;)


    Gruß
    Greenhorn

  • GDI Redraw

    • Greenhorn
    • 12. September 2010 um 21:00

    Hi,

    die Zeichenaktionen gehören in die WM_PAINT und der Aufruf von RedrawWindow gehört ausserhalb der WM_PAINT !!!

    WM_PAINT
    RedrawWindow
    Using the WM_PAINT Message

    Gruß

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™