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

Beiträge von fakeraol

  • [Anregung] zu GUISetState und "Skripte ausführen"

    • fakeraol
    • 21. März 2012 um 03:42
    Code
    @SW_SHOWDEFAULT		Setzt den Fensterstatus eines Fensters entsprechend dem SW_-Wert der aufrufenden Applikation. 
    @SW_SHOWMAXIMIZED	Aktiviert das Fenster und zeigt es maximiert an. 
    @SW_SHOWMINIMIZED	Aktiviert das Fenster und zeigt es minimiert an. 
    @SW_SHOWMINNOACTIVE	Zeigt das Fenster minimiert an. Das ist ähnlich zu @SW_SHOWMINIMIZED, außer dass das Fenster nicht aktiviert wird. 
    @SW_SHOWNA		Zeigt das Fenster in seiner aktuellen Position und Größe. Dieser Wert ist ähnlich zu @SW_SHOW, außer dass das Fenster nicht aktiviert wird. 
    @SW_SHOWNOACTIVATE	Zeigt das Fenster in seiner letzten Position und Größe. Dieser Wert ist ähnlich zu @SW_SHOWNORMAL, außer dass das Fenster nicht aktiviert wird. 
    @SW_SHOWNORMAL		Aktiviert und zeigt ein Fenster. Wenn das Fenster minimiert oder maximiert ist, dann stellt das System es in seiner Originalgröße und -position wieder her. Eine Anwendung sollte dieses Flag setzen, wenn ein Fenster zum ersten Mal aufgerufen wird.

    Hab das Ganze nochmal überarbeitet. Wenn ich die Hintergrundfarbe setzen könnte, würde es noch anschaulicher werden.
    HINWEIS: Ich habe für die Darstellung der Befehle die Schriftart 'Courier New, Courier, mono' verwendet, um die Anführungszeichen besser unterscheidbar zu machen.

    Form4: Es gibt zwei Möglichkeiten, Anführungszeichen maskieren, um einen Befehl als Zeichenkette einem anderen Befehl zur Ausführung zu übergeben:
    Man umschliesst den zu übergebenden Befehl mit den jeweils anderen Anführungszeichen, also
    $string = "MsgBox(0, 'Hallo Welt!', 'Hi!')"
    oder
    $string = 'MsgBox(0, "Hallo Welt!", "Hi!")'

    Zweite Möglichkeit, Anführungszeichen durch Verdopplung maskieren:
    $string = "MsgBox(0, ""Hallo Welt!"", ""Hi!"")"
    $string = 'MsgBox(0, ''Hallo Welt!'', ''Hi!'')'

    Beispiel:
    MsgBox(0, 'Hallo Welt!', 'Hi!')

    bei direkter Eingabe an der Eingabeaufforderung würde das so aussehen:
    AutoIt.exe /AutoIt3ExecuteLine "MsgBox(0, 'Hallo Welt!', 'Hi!')"
    (Maskierung der einfachen Anführungszeichen mittels doppelter Anführungszeichen)

    Befehlszeile an Run() übergeben:
    Run('AutoIt.exe /AutoIt3ExecuteLine "MsgBox(0, ''Hallo Welt!'', ''Hi!'')"')
    oder
    Run(@AutoItExe & ' /AutoIt3ExecuteLine "MsgBox(0, ''Hallo Welt!'', ''Hi!'')"')


    auch das wäre möglich:
    AutoIt.exe /AutoIt3ExecuteLine 'MsgBox(0, ''Hallo Welt!'', ''Hi!'')'
    (Maskierung der einfachen Anführungszeichen mittels Verdopplung)
    Run(@AutoItExe & ' /AutoIt3ExecuteLine ''MsgBox(0, ''''Hallo Welt!'''', ''''Hi!'''')'' ')
    Die Anführungszeichen der MsgBox werden zur Übergabe an die AutoIt.exe maskiert, und beide zur Übergabe an Run() jeweils erneut maskiert

  • C#-DLL in AutoIt einbinden

    • fakeraol
    • 20. März 2012 um 00:42

    @ RAPTOR-ONE

    Ich hab mir die ildasm.exe besorgt und aus dem framework-ordner die ilasm.exe und fusion.dll kopiert, so das ich von hand de/compilieren konnte.
    Könntest Du Dein Tool evtl. so modifizieren, dass es ohne Regkeys abzufragen und dann Fehler zu werfen, diese beiden Programme nutzt, wenn es sie im gleichen Ordner findet?
    Zweite Frage: eine Methode in der ManagedWifi.dll von Codeplex war als Void deklariert, und die dritte Methode in Deinem Beispiel ja auch als String. Müssen die trotzdem als Int32 exportiert werden, oder müsste das dann nicht auch so übernommen werden für den Export?

  • [Anregung] zu GUISetState und "Skripte ausführen"

    • fakeraol
    • 17. März 2012 um 20:19

    Auch wenns in der engl. Version nicht so ist, sollte bei GUISetState entweder die vollständige Liste der möglichen Parameter angegeben werden (alle @SW_***) oder ein Link auf die Macroseite integriert werden. Deshalb haben auch andere schon die Lösung nicht gefunden: http://www.autoitscript.com/forum/topic/12…ve-gui-and-tab/

    Bei "Skripte ausführen" > "AutoIt spezifische Kommandozeilenparameter" > "Form4" sollte erklärt werden, warum da im Beispiel "doppelte einfache" Anführungszeichen benötigt werden. Da ich AutoIt aus einer Funktion in Notepad++ aufrufe, hab ich ewig rumexperimentiert, bis ich drauf gekommen bin, das für Autoit.exe /AutoIt3ExecuteLine "MsgBox(0, 'Hallo Welt!', 'Hi!')" eben keine doppelten Singlequotes nötig sind.

  • Computer-Info

    • fakeraol
    • 7. März 2012 um 19:07
    Zitat


    ---------------------------
    AutoIt Error
    ---------------------------
    Line 696 (File "E:\CODE\AutoIt\Computer-Info\Computer-Info.au3"):

    $aReturn[$x][2] = $aMaxDataWidth[$objItem.MaxDataWidth] & ' Bits'
    $aReturn[$x][2] = ^ ERROR

    Error: Array variable has incorrect number of subscripts or subscript dimension range exceeded.
    ---------------------------
    OK
    ---------------------------

    Alles anzeigen


    tritt auf beim Report erstellen, Report 13 / 13.

    PS: Ich hab 2 Monitore, es wird aber nur der erste angezeigt.

    PPS: $objItem.MaxDataWidth in der Zeile 696 gibt bei mir dreimal "2" zurück, und dann "10", was natürlich zum Absturz führt.
    nach der "10" wird noch zweimal "5" zurückgegeben, wenn ich den Fehler abfange.

    Das Flimmern beim Einlesen sollte sich vermeiden lassen, und die Funktionen für die anderen Tabs könnten nach Anzeige des ersten schon im Hintergrund abgearbeitet werden, evtl. über den aufruf von unterscripten als selbständige Prozesse, und das Ergebnis jeweis in einer Variable zwischengespeichert werden, so das der Report sofort fertig wäre. Zum Refreshen der Ausgaen könnte man ja noch nen Button einbauen.

    Zitat


    Func GUICtrlListView_Update($hWnd, $wParam)
    Local Const $__LISTVIEWCONSTANT_WM_SETREDRAW = 0x000B
    If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)

    Local $aResult = DllCall("user32.dll","lresult","SendMessageW","hwnd",$hWnd,"uint",$__LISTVIEWCONSTANT_WM_SETREDRAW,"wparam",$wParam, "lparam",0)
    If @error Then Return SetError(@error, @extended, "")
    Return $aResult[0]
    EndFunc

    ; neuzeichnen des Controls unterbinden:
    GUICtrlListView_Update($LISTVIEW,0)
    ; neuzeichnen des Controls wieder aktivieren:
    GUICtrlListView_Update($LISTVIEW,1)

    Alles anzeigen

    "Schnellöschen" der ListView-Elemente:
    GUICtrlSendMsg($LISTVIEW,$LVM_DELETEALLITEMS,-1,0)

  • GUICtrlSetData - Übersetzungsfehler

    • fakeraol
    • 6. März 2012 um 22:48

    Bei GUICtrlSetData wurde (anscheinend mit search&replace) aus dem control "Monthcal" ein "Monathcal" gemacht.

    Zitat


    Bemerkungen

    Für Combo oder List-Controls:
    Wenn "data" mit einem bereits existierenden Eintrag übereinstimmt, wird dieser als Standard (default) verwendet.
    Wenn "data" mit dem über GUIDataSeparatorChar definierten Zeichen beginnt oder einen leeren String ist (""), wird die vorherige Liste gelöscht.

    Für ListView, ListViewItem Controls:
    Um eine bestimmte Spalte zu verändern, wird für die anderen Spalten einfach "nichts" angegeben, z.B. verändert "||update" nur die dritte Spalte.

    Falls "update" leer ist, wird die Spalte bzw. subitem gelöscht. Zum Beispiel wird "|" die zweite Spalte bzw. Subitem löschen, "" wird die erste Spalte löschen.

    Für Daten, Monathcal Controls:
    Das "data" Datumsformat lautet "yyyy/mm/dd".

    Das Daten soll vermutlich auch "Date" heissen?

  • Beispielscripte unter "Zeichenketten, Strings" nicht übersetzt

    • fakeraol
    • 21. Oktober 2011 um 15:00

    genau, die scripte, die man über den button startet, meinte ich. in der chm sind die doch aber enthalten? oder wird da aus der chm heraus auf den ordner mit den beispielscripten zugegriffen?

    ich seh grad, bei GUICtrlSetData wurde (anscheinend mit search&replace) aus dem control "monthcal" ein "monathcal" gemacht.

  • Beispielscripte unter "Zeichenketten, Strings" nicht übersetzt

    • fakeraol
    • 14. Oktober 2011 um 19:29

    Da durch die unterschiedlichen Sprachen (de in der Hilfe, en in den Beispielen) die Veranschaulichung teilweise verloren geht, sollten die Beispielscripte auch übersetzt werden.

    Das z.B. bei StringLeft aus dem deutschen "Ich bin ein String" die ersten 3 Buchstaben mit "I a" (statt "Ich") extrahiert werden, könnte für jemanden, der kein Englisch kann, zu Unverständnis führen.

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™