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

Beiträge von Andy

  • Weisse Pixel Transparent ?

    • Andy
    • 27. Oktober 2009 um 00:12

    Du könntest auch die Form der GUI wie ein X machen, also kein Rechteck, sondern ein X....
    bsp aus der Hilfe: _WinAPI_SetWindowRgn()

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <WinAPI.au3>

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

    ; get height of window title and width of window frame - may be different when XP theme is ON/OFF
    Global $htit = _WinAPI_GetSystemMetrics($SM_CYCAPTION)
    Global $frame = _WinAPI_GetSystemMetrics($SM_CXDLGFRAME)

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

    $gui = GUICreate("Test Windows regions", 350, 210)
    $btn_default = GUICtrlCreateButton("Default region", 100, 30, 150)
    $btn_round = GUICtrlCreateButton("Round region", 100, 60, 150)
    $btn_buble = GUICtrlCreateButton("Buble region ", 100, 90, 150)
    $btn_transparent = GUICtrlCreateButton("Transparent region", 100, 120, 150)
    $btn_exit = GUICtrlCreateButton("Exit", 100, 150, 150)
    GUISetState(@SW_SHOW)

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

    $pos = WinGetPos($gui) ; get whole window size (no client size defined in GUICreate)
    Global $width = $pos[2]
    Global $height = $pos[3]

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE Or $msg = $btn_exit
    ExitLoop

    Case $msg = $btn_default
    $rgn = _WinAPI_CreateRectRgn(0, 0, $width, $height)
    _WinAPI_SetWindowRgn($gui, $rgn)

    Case $msg = $btn_round
    $rgn = _WinAPI_CreateRoundRectRgn(0, 0, $width, $height, $width / 3, $height / 3)
    _WinAPI_SetWindowRgn($gui, $rgn)

    Case $msg = $btn_buble
    $rgn1 = _WinAPI_CreateRoundRectRgn(0, 0, $width / 2, $height / 2, $width / 2, $height / 2) ; left-top
    $rgn2 = _WinAPI_CreateRoundRectRgn($width / 2, 0, $width, $height / 2, $width / 2, $height / 2) ; right-top
    _WinAPI_CombineRgn($rgn1, $rgn1, $rgn2, $RGN_OR)
    _WinAPI_DeleteObject($rgn2)
    $rgn2 = _WinAPI_CreateRoundRectRgn(0, $height / 2, $width / 2, $height, $width / 2, $height / 2) ; left-bottom
    _WinAPI_CombineRgn($rgn1, $rgn1, $rgn2, $RGN_OR)
    _WinAPI_DeleteObject($rgn2)
    $rgn2 = _WinAPI_CreateRoundRectRgn($width / 2, $height / 2, $width, $height, $width / 2, $height / 2) ; right-bottom
    _WinAPI_CombineRgn($rgn1, $rgn1, $rgn2, $RGN_OR)
    _WinAPI_DeleteObject($rgn2)
    $rgn2 = _WinAPI_CreateRoundRectRgn(10, 10, $width - 10, $height - 10, $width, $height) ; middle
    _WinAPI_CombineRgn($rgn1, $rgn1, $rgn2, $RGN_OR)
    _WinAPI_DeleteObject($rgn2)
    _WinAPI_SetWindowRgn($gui, $rgn1)

    Case $msg = $btn_transparent
    _GuiHole($gui, 40, 40, 260, 170)

    EndSelect
    WEnd

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

    ; make inner transparent area but add controls
    Func _GuiHole($h_win, $i_x, $i_y, $i_sizew, $i_sizeh)
    Local $outer_rgn, $inner_rgn, $combined_rgn

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

    $outer_rgn = _WinAPI_CreateRectRgn(0, 0, $width, $height)
    $inner_rgn = _WinAPI_CreateRectRgn($i_x, $i_y, $i_x + $i_sizew, $i_y + $i_sizeh)
    $combined_rgn = _WinAPI_CreateRectRgn(0, 0, 0, 0)
    _WinAPI_CombineRgn($combined_rgn, $outer_rgn, $inner_rgn, $RGN_DIFF)
    _WinAPI_DeleteObject($outer_rgn)
    _WinAPI_DeleteObject($inner_rgn)
    _AddCtrlRegion($combined_rgn, $btn_default)
    _AddCtrlRegion($combined_rgn, $btn_round)
    _AddCtrlRegion($combined_rgn, $btn_buble)
    _AddCtrlRegion($combined_rgn, $btn_transparent)
    _AddCtrlRegion($combined_rgn, $btn_exit)
    _WinAPI_SetWindowRgn($h_win, $combined_rgn)
    EndFunc ;==>_GuiHole

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

    ; add control's area to given region
    ; respecting also window title/frame sizes
    Func _AddCtrlRegion($full_rgn, $ctrl_id)
    Local $ctrl_pos, $ctrl_rgn

    $ctrl_pos = ControlGetPos($gui, "", $ctrl_id)
    $ctrl_rgn = _WinAPI_CreateRectRgn($ctrl_pos[0] + $frame, $ctrl_pos[1] + $htit + $frame, _
    $ctrl_pos[0] + $ctrl_pos[2] + $frame, $ctrl_pos[1] + $ctrl_pos[3] + $htit + $frame)
    _WinAPI_CombineRgn($full_rgn, $full_rgn, $ctrl_rgn, $RGN_OR)
    _WinAPI_DeleteObject($ctrl_rgn)
    EndFunc ;==>_AddCtrlRegion

    [/autoit]
  • Ordner mit WinRar archivieren und verschlüsseln - AuoIt Script Hilfe

    • Andy
    • 26. Oktober 2009 um 18:51
    Zitat

    Problematisch finde ich eben, dass ich ja im WInRar Progarmm selber rumschalten muss
    also ich muss auf "Advaced" mit der Maus klicken und dann eben auf "Set Passwort" um das PW zu vergeben.

    genau dafür gibt es doch die command-line version rar.exe

  • Timeout bei ObjGet?

    • Andy
    • 26. Oktober 2009 um 18:12
    Zitat

    das wenn diese Auslesen aus irgendwelchen Gründen nicht möglich ist

    Welche Gründe könnten da in Frage kommen? Kann man das Script so schreiben, daß ObjGet nur dann abfragt, wenn es auch eine Antwort gibt? Könnte man mit adlibenable() nach einer bestimmten Zeitspanne eine Funktion aufrufen, welche den Misserfolg anzeigt? Fragen über Fragen......

  • [Zahlen] Mit Punkten abgränzen

    • Andy
    • 26. Oktober 2009 um 17:18

    Alle "hellblauen" AutoIt-Befehle sind in den Funktionsbibliotheken im Include-Verzeichnis enthalten (wie schon von Progandy beschrieben) und können somit nach Belieben abgeändert und/oder an eigene Bedürfnisse angepasst werden!

  • Pixelchecksum probleme auf mehreren system

    • Andy
    • 26. Oktober 2009 um 15:28

    ich quote mich mal selbst....

    Zitat

    Btw. um welches Skatprogramm geht es?

  • Pixelchecksum probleme auf mehreren system

    • Andy
    • 26. Oktober 2009 um 10:02

    Hallo,
    zunächst verweise ich mal auf die Forenregeln insbesondere die 2. Hälfte.

    Dann zum Topic:
    Es gibt Scripte, die mit Pixelchecksum auch auf Rechnern mit unterschiedlicher Bildschirmauflösung zurechtkommen. Bisher habe ich da keine negativen Erfahrungen gemacht.
    Da ein Script aber immer nur auf einem Rechner gleichzeitig läuft sind die auf den anderen Rechnern maßgeblichen Einstellungen für Schriftart, Gamma usw irrelevant. Bilde lokal deine Pixelchecksum und vergleiche sie mit den bisher in diesem Bereich aufgetretenen Checksummen auf den anderen Rechnern. Bei maximal 4 Beteiligten (und vollkommen unterschiedlichen Rechnern) würde ich mir dahingehend keinen Stress machen, und einfach vier Vergleiche durchführen.
    Bei einem Skatprogramm kommt es bestimmt nicht auf die hundertstel Sekunde an, da reicht es, wenn man nach einer Zehntelsekunde das Ergebnis eines Vergleichs bekommt.
    Falls das Skatprogramm im Fenstermodus laufen sollte, wäre es hilfreich, dieses Fenster immer in derselben Größe zu haben (im Verhältnis zur Bildschirmauflösung), schau dir dazu

    [autoit]

    @desktopwidth @desktopheight und winmove()

    [/autoit]

    an.

    Btw. um welches Skatprogramm geht es?

    ciao
    Andy

  • Zeit abfragen und starten

    • Andy
    • 26. Oktober 2009 um 00:38

    Hallo,
    wenn es nur um eine Startzeit geht, dann ggf so

    [autoit]

    #Include <Date.au3>

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

    $Startzeit="13:45:00" ;HH:MM:SS stunde:minute:sekunde

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

    Do ;Warteschleife....
    sleep(100)
    until _nowtime()=$startzeit ;....solange, bis die aktuelle Uhrzeit die Startzeit ist

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

    msgbox (0,"Uhrzeit = "&_nowtime(),"Genug gewartet, jetzt gehts los....START")

    [/autoit]
  • Funktionen der user32.dll,shell32.dll,kernel32.dll herausbekommen

    • Andy
    • 23. Oktober 2009 um 15:19

    http://msdn.microsoft.com/en-us/library/default.aspx
    http://msdn.microsoft.com/de-de/library/default.aspxsollte erste Anlaufstelle sein, aber bei geschätzten 10- 15tausend Funktionen ist es sehr unwahrscheinlich, jemals eine komplette Liste ALLER Funktionen zu erwarten.
    http://msdn.microsoft.com/de-de/library/…-us,VS.85).aspx grobe Einteilung
    http://msdn.microsoft.com/en-us/library/aa383749(VS.85).aspx

  • GDI+: Rotating Letters

    • Andy
    • 23. Oktober 2009 um 14:27

    was soll man anderes sagen, immer wieder SCHÖÖÖÖÖN!

  • StringRegExp Problem

    • Andy
    • 23. Oktober 2009 um 11:43
    Zitat

    das problem was ich an diesen StringTrim etc. Funktionen sehe ist, dass das NC Programm ja nicht nur aus den Werkzeuganweisungen besteht, sondern zwischendrin auch immer andere Anweisungen vorkommen und die Ergebnisse so auch falsch sein können (zB. sowas hier "(7: T3 2D BREITE MASS 325 FERTIG)"):

    ...diese Informationen wären am Anfang auch nicht schlecht gewesen....
    btw. JEDES Regex kann durch eine Kombinationen einfachster Stringfunktionen ersetzt werden, daher ist nicht die Frage ob regex oder nicht (da das Ergebnis identisch ist), sondern welche Vorgaben bestehen, damit die Suchfunktion ausschliesslich die "richtigen" Strings findet.
    Keine Frage, Regex sind extrem hilfreich für den, der sie lesen und verstehen KANN, aber das Problem sehe ich darin, daß jemand, der nicht in der Lage ist das Regex zu verstehen, in keinster Weise in der Lage ist, das Regex auf seine Bedürfnisse anzupassen. Nur "damit man eins hat" ein Regex zu verwenden halte ich für.. :wacko: ...

    Zitat

    ( * egal was ) T<Nummer (auch mehrere Zahlen) ( * egal was ) <Klammer auf> ( * egal was) <Klammer zu>

    wäre im 1. Post zu plazieren gewesen^^

  • StringRegExp Problem

    • Andy
    • 23. Oktober 2009 um 11:05
    [autoit]

    #include <Array.au3>
    #include <String.au3>
    $zeile="N186 S1800 T3 M6 (HM - Schlichtfraeser D=20,0)"

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

    $Werkzeugnummer=_stringbetween($zeile,"T"," ")
    _arraydisplay($werkzeugnummer)
    $werkzeug=_stringbetween($zeile,"(",")")
    _arraydisplay($werkzeug)
    msgbox(0,"T"&$werkzeugnummer[0],$werkzeug[0])

    [/autoit]


    man könnte bei _stringbetween() auch im regex-modus "suchen" aber warum bei diesen einfachen Strings)

  • Text von programminternem Fenster auslesen

    • Andy
    • 22. Oktober 2009 um 20:15

    keine Ahnung warum das nicht klappt, versuch mal bei send (ctrl+c) ein kleines c statt des C
    kann sein dass er das grosse C als shift+c interpretiert, also ctrl+shif+c und ob das dasselbe ist wie ctrl+c weiss ich nicht^^

  • Aktivitaet der Maus ausgeben

    • Andy
    • 22. Oktober 2009 um 18:03

    ich habe natürlich kein Inifile, und das Script läuft....
    Du solltest ggf beim Auslkesen der INI auch die Parameter so setzen, daß bei nichtvorhandensein oder fehlerhafter INI ein Wert eingetragen wird!

    [autoit]

    $maxIdle_min = number(IniRead(@ScriptDir & "\test.ini", "Test", "Time",20 ))

    [/autoit]

    und natürlich hattest du richtig

    [autoit]

    Until $timer > $maxIdle_min*60*1000

    [/autoit]
  • Aktivitaet der Maus ausgeben

    • Andy
    • 22. Oktober 2009 um 17:31

    Hi,

    [autoit]

    Until $timer > $maxIdle_min*60*1000

    [/autoit]

    muss doch wohl

    [autoit]

    Until $timer < $maxIdle_min*60*1000

    [/autoit]
  • Notebook abdocken

    • Andy
    • 22. Oktober 2009 um 17:16
    Zitat

    Nun, ich mag solche Lösungen nicht. Mal lagt der PC, mal klickt man ausversehen dazwischen

    ganz ehrlich, mir bleibt die Spucke weg...du hast WEDER das Script getestet, noch weisst du was es macht!
    Wo kann hier "aus versehen dazwischengeklickt werden"? Es wird garkeine Maus benutzt....

    Wo bitte bzw wann "lagt" denn ein PC? Die sleeps zwischen den Tastenanschlägen reichen auch auf der langsamsten Mühle, um das Logoutfenster zu öffnen.....wenn nicht, dann mach sie halt auf 1 Sekunde oder überlege dir mal einen Grund der "Lags"...

    Zitat

    Das Herunterfahren bzw. der Standby Mode mit AutoIt war jetzt nun wirklich nicht das Problem, ich will eher wissen wie ich das System abdocken kann

    DU willst das wissen? Das ist ja lustig, woher sollen WIR das denn bitteschön wissen, du hast KEINERLEI weitere Informationen gegeben! Da bei mir bekannten Laptops mittels Tastenkombi abgedockt wird, habe ich das auch so in das Script geschrieben.....

    /EDIT/

    Zitat

    Das Abdocken ist eine Windows Funktion und muss nicht über ein Tool des Notebook Herstellers gemacht werden.

    Na also, DOCH Tastenkombi.....

  • Notebook abdocken

    • Andy
    • 22. Oktober 2009 um 13:42

    Hi,
    das sollte doch mit

    [autoit]

    send("{Lwin}") ;linke windowstaste öffnet startmenü
    sleep(100)
    ;send("Tastenkombination fürs abdocken")
    sleep(1000)
    send("+c") ;shift+c Ausschalten
    sleep(100)
    send("s") ;Standby

    [/autoit]

    eigentlich kein Problem sein, du musst doch nur die Tastendrücke aufzeichnen.

  • Hilfe bei Inputbox abfrage

    • Andy
    • 22. Oktober 2009 um 13:31

    sollten schon ziemlich viel abdecken....

    [autoit]

    _GUICtrlIpAddress_Create()
    _GUICtrlIpAddress_SetRange()

    [/autoit]
  • Text aus Zwischenablage zeichenweise lesen

    • Andy
    • 22. Oktober 2009 um 11:37

    Hallo,
    Quellcode mit ctrl-c kopieren, im Forum-Editor auf das 2. Button von rechts klicken (das mit dem AutoIt -Logo), Ctrl-V drücken , fertig^^

  • Text von programminternem Fenster auslesen

    • Andy
    • 22. Oktober 2009 um 10:37

    @TinkyWinky
    Die Bildschirmauflösung ist nicht das Problem, eher die diversen Schriftgrößeneinstellungen der User. Solange das aber festliegt, ist die "Bilderkennung" eine Option, ggf macht man auf jedem "System" (XP,Vista, Win7) ein "Foto" und gibt alle diese Pics dem Such-Programm mit. Da ca. 20 Bilder pro Sekunde auf dem Bildschirm gefunden werden können, wäre somit das System egal.

    Aber probiere vorher bitte mal etwas aus.
    Sobald das Fenster erscheint, drück mal Ctrl-C für kopieren. Öffne Notepad/Editor und drück dann Ctrl-V für einfügen. Wenn dann dein Meldungstext erscheint, dann hast du gewonnen ^^
    Wenn nicht, dann helfe ich dir gerne mit einem Script zur Erkennung per Bildersuche.

    ciao
    Andy

  • Dateiendung mit Script verknüpfen.

    • Andy
    • 22. Oktober 2009 um 10:13

    Hi,
    wenn du dein kompiliertes Script (oder eine Verknüpfung) in den \\ Dokumente und Einstellungen\User\SENDTO-Ordner legst, dann könntest du im Explorer mit Rechtsklick auf die ausgewählte(n) *.rtf-Dateien diese an dein Script schicken.
    Somit könnte man z.B. alle ausgewählten Dateien in einem Verzeichnis auf einen Rutsch "umwandeln", ohne die Dateiendungsverknüpfung zu ändern (was ich für suboptimal halte)
    ciao
    Andy

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™