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

  • 2 Explorer horizontal/vertikal

    • BugFix
    • 22. März 2008 um 15:07

    Hi,
    um Dateien hin- und herzuschieben ist es oft notwendig 2 Explorerinstanzen zu öffnen.
    Da ich ungern die Fenster dann in der Größe anpasse und verschiebe, hab ich ein Skript geschrieben, das das erledigt.
    Ich rufe hier den Arbeitsplatz auf, das kann man natürlich anpassen und z.B. Eigene Dateien verwenden. Die CLSID dazu findet ihr in der Hilfe.
    Wird das Skript mit Parameter "/h" aufgerufen, werden die Fenster nebeneinander angeordnet auf voller Bildschirmgröße.
    Ohne Parameter (bzw. bei jedem anderen) werden die Fenster untereinander angeordnet.

    Spoiler anzeigen
    [autoit]

    Global $appHorizontal = False ; wenn True, horizontale Anordnung
    Global $aSize[3][5] ; [0]=Handle, [1]=Breite, [2]=Höhe, [3]=x, [4]=y
    $aSize[0][1] = @DesktopWidth
    $aSize[0][2] = @DesktopHeight
    If $CmdLine[0] > 0 Then
    If $CmdLine[1] = '/h' Then $appHorizontal = True
    EndIf
    If $appHorizontal Then
    $aSize[1][1] = @DesktopWidth/2
    $aSize[2][1] = @DesktopWidth/2
    $aSize[1][2] = @DesktopHeight
    $aSize[2][2] = @DesktopHeight
    $aSize[1][3] = 0
    $aSize[2][3] = @DesktopWidth/2
    $aSize[1][4] = 0
    $aSize[2][4] = 0
    Else
    $aSize[1][1] = @DesktopWidth
    $aSize[2][1] = @DesktopWidth
    $aSize[1][2] = @DesktopHeight/2
    $aSize[2][2] = @DesktopHeight/2
    $aSize[1][3] = 0
    $aSize[2][3] = 0
    $aSize[1][4] = 0
    $aSize[2][4] = @DesktopHeight/2
    EndIf
    Run ('Explorer.exe /n, ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}', '', @SW_HIDE)
    WinWaitActive('Arbeitsplatz')
    $aSize[1][0] = WinGetHandle('Arbeitsplatz')
    WinMove($aSize[1][0], '', $aSize[1][3], $aSize[1][4], $aSize[1][1], $aSize[1][2])
    WinSetTitle('Arbeitsplatz', '', 'Arbeitsplatz_1')
    Run ('Explorer.exe /n, ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}', '', @SW_HIDE)
    WinWaitActive('Arbeitsplatz')
    $aSize[2][0] = WinGetHandle('Arbeitsplatz')
    WinMove($aSize[2][0], '', $aSize[2][3], $aSize[2][4], $aSize[2][1], $aSize[2][2])
    WinSetTitle('Arbeitsplatz', '', 'Arbeitsplatz_2')
    WinSetState($aSize[1][0], '', @SW_SHOW)
    WinSetState($aSize[2][0], '', @SW_SHOW)

    [/autoit]

    Dateien

    2Explorer.au3 1,43 kB – 337 Downloads
  • MemoryRead

    • BugFix
    • 22. März 2008 um 08:44
    Zitat

    Aber könntest du den unwissenden mal erklären was man mit sowas machen kann?


    Ich bin mal so frei und antworte dadrauf :)
    Da als Bsp. calc.exe angeführt war, verwende ich das gleich mal.
    Möchtest du den Calculator benutzen ohne die Werte mit Send oder ControlCommand an das Programm zu übergeben, kannst du direkt in die verwendeten Speicherregister schreiben bzw. auch von dort lesen.
    Du kannst auch auf diese Art Daten aus anderen Programmen auslesen. Wenn z.B. ein Festplattentool in einem bestimmten Register die Festplattentemperatur ablegt, kannst du somit dadrauf zugreifen.

  • Problem mit Controlclick

    • BugFix
    • 21. März 2008 um 23:19

    Probier das mal:

    [autoit]

    ControlClick("Xfire Installation", "", "[CLASS:Button; INSTANCE:4]")

    [/autoit]
  • Problem mit Controlclick

    • BugFix
    • 21. März 2008 um 22:58

    Du mußt mit der Maus über dem Kontrollkästchen sein und dann die Infos auslesen.
    Kontrollkästchen sind Klasse: Button, hier vermutlich Button1.
    Dann funzt es auch mit ControlClick.

  • Abkürzungen in SciTE verwalten

    • BugFix
    • 21. März 2008 um 22:31

    Neue Version.

    Der Pfad für die au3.keywords.abbreviations.properties liegt in SciTE jetzt in einem eigenen Ordner.
    Das Programm wurde entsprechend angepaßt.

  • Problem GUIRegisterMsg und $WM_KEYDOWN

    • BugFix
    • 21. März 2008 um 20:14

    Hier die Erklärung aus der Hilfe:

    Zitat

    Some controls consume internally specific Windows Message ID, so registrating them will have no effect, e.g; WM_CHAR, WM_KEYDOWN, WM_KEYUP are consumed by an edit control.


    Also hast du einfach Pech. Es geht nicht.

  • MemoryRead

    • BugFix
    • 21. März 2008 um 19:49

    Mit Ollydbg öffnen?

  • Doppelclick in Listview

    • BugFix
    • 21. März 2008 um 13:47

    Hier ein Beispiel:

    Spoiler anzeigen
    [autoit]

    #include <GUIListBox.au3>

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

    $hGUI = GUICreate("List Box Create", 400, 296)
    $hListBox = _GUICtrlListBox_Create ($hGUI,"", 2, 2, 396, 296)
    GUISetState()

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

    For $i = 1 To 10
    _GUICtrlListBox_AddString($hListBox, 'Eintrag ' & $i)
    Next

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

    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

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

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    Func ListDblClick()
    MsgBox(0, '', _GUICtrlListBox_GetText($hListBox, _GUICtrlListBox_GetCurSel($hListBox)))
    EndFunc

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

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $hWndListBox
    If Not IsHWnd($hListBox) Then $hWndListBox = GUICtrlGetHandle($hListBox)
    $hWndFrom = $ilParam
    $iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
    $iCode = BitShift($iwParam, 16) ; Hi Word
    Switch $hWndFrom
    Case $hListBox, $hWndListBox
    Switch $iCode
    Case $LBN_DBLCLK
    ListDblClick()
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND

    [/autoit]
  • Doppelclick in Listview

    • BugFix
    • 21. März 2008 um 13:33

    Du brauchst aber kein ListView-Doppelklick sondern List-Doppelklick

    [autoit]

    $userlist = GUICtrlCreateList("", 10, 50, 100, 100)
    $clientlist = GUICtrlCreateList("", 140, 50, 100, 100)

    [/autoit]


    Du erzeugst 2 Listen.

  • Link_Label

    • BugFix
    • 21. März 2008 um 12:43

    Was verstehst du unter Linklabel?

  • Einzelne Zeile in einem Edit andere Farbe zuweisen

    • BugFix
    • 21. März 2008 um 01:03

    Erste Textzeile mit:

    [autoit]

    _GUICtrlRichEditSetText

    [/autoit]


    Weitere Zeilen mit:

    [autoit]

    _GUICtrlRichEditAppendText

    [/autoit]
  • Einzelne Zeile in einem Edit andere Farbe zuweisen

    • BugFix
    • 21. März 2008 um 00:02

    Ja probier das. :)

    Ich hab mal die Datei angepaßt, jetzt läufts auch unter der aktuellen Version.

    Dateien

    GuiRichEdit.au3 38,75 kB – 308 Downloads
  • Einzelne Zeile in einem Edit andere Farbe zuweisen

    • BugFix
    • 20. März 2008 um 22:41

    Sollte mit RichEdit-Ctrl funktionieren, wenn ich mich recht erinnere.
    Die UDF findest du hier.

  • Textzeile aus Datei neu zusammensetzen

    • BugFix
    • 20. März 2008 um 22:04
    [autoit]

    For $x = 1 to $aRecords[0] -1

    [/autoit]


    Deshalb nimmt er die letzte Zeile nicht. Auch wenn es bequem scheint, die zurückgegebene Anzahl aus Array[0] zu verwenden, so rate ich doch davon ab. Sind z.B. 5 Zeilen, so hätte das Array 6 Elemente, da in [0] die Anzahl steht. Somit ist -1 nicht erforderlich.
    Gleich dran gewöhnen immer mit Ubound(Array)-1 zu arbeiten. Dann gibt es keine Irritationen. ;)

  • Einige kleinere(!?) Fragen

    • BugFix
    • 19. März 2008 um 07:35
    Zitat von MisterBill

    Aber wie kann ich das bewerkstelligen, das das GUI je nachdem wieviel ich ausgewählt habe auch von der Größe her passt?

    2 Möglichkeiten
    - für GUI und alle Controls die Positionen mit Variablen angeben und in Abhängigkeit der Auswahl verschieben (sehr aufwändig, da z.B. bei 4 Gruppen bereits 15 verschieden Anzeigemöglichkeiten existieren)
    - für jede Gruppe ein Child-Window erstellen und dann diese(s) in Abhängigkeit der Auswahl positionieren

  • "Invalid Window Handle"-Fehler

    • BugFix
    • 18. März 2008 um 17:16

    Du nutzt die neuen Edit-UDF. Diese verlangen aber ein Win-Handle.
    GUICtrlCreateEdit gibt aber nur eine ID zurück.
    Um alle Funktionen der UDF nutzen zu können solltest du dein Edit mit

    [autoit]

    _GUICtrlEdit_Create

    [/autoit]

    erstellen, dann gibts keine Probleme.

  • drop down eintrag auswählen

    • BugFix
    • 18. März 2008 um 17:03

    Die Liste wird mit Index angesprochen: also erster Wert = 0, zweiter Wert = 1 usw.
    Und den Index NICHT in Gänsefüßchen.

  • Nutzen von SVN (Subversion) in SciTe klappt nicht wie gewollt.

    • BugFix
    • 18. März 2008 um 15:23

    Ich hatte es mit CVS und mit SVN getestet - Ergebnis, wie oben beschrieben.
    Vielleicht gibt es ja einen "geheimen Schalter", der das zu einem tatsächlichen Repository erweitert. Hab da aber bisher nichts gefunden.

  • Nutzen von SVN (Subversion) in SciTe klappt nicht wie gewollt.

    • BugFix
    • 18. März 2008 um 14:23

    Also der CVS-Wrapper in SciTE bringt nicht viel. Er behält ein Double deiner Datei solange vor, bis du diese erneut speicherst. Direkt nach dem Speichern sind beide Versionen identisch bzw. der Wrapper sagt dir, dass keine andere Version vorhanden ist.
    Also für eine Versionsverwaltung wenig sinnvoll.
    Ich versuche gerade ein echtes SVN-Repository an SciTE zu koppeln. Wird noch etwas dauern, aber wenn es klappt, stelle ich es ins Forum.

  • drop down eintrag auswählen

    • BugFix
    • 18. März 2008 um 14:18

    Wenn du den Namen des Monitors nicht weißt - aber du die Listenposition kennst:

    [autoit]

    ControlCommand("Intel(R) Graphics Media Accelerator Driver", "", $cb_clone, "SetCurrentSelection", 'Listenposition')

    [/autoit]


    Jetzt ist der Eintrag markiert.

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™