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

  • Abfrage des Checkbox-Status eines fremden Fensters

    • BugFix
    • 10. Oktober 2012 um 23:55
    Zitat von m-obi

    @MG: Wieso extra ControlGetHandle?? Du nutzt doch nur die ID. Wozu das Handle?


    Im Bsp. von MG würde die ID reichen.
    Der TE schreibt aber:

    Zitat

    auf der Oberfläche einer anderen Applikation befindet

    und somit ist der Weg über das Handle durchaus zu empfehlen.

  • Listview und @CRLF...Win7=Ja WinXp=Nein

    • BugFix
    • 10. Oktober 2012 um 21:18
    Zitat von JaneDoe

    Wieso hat das da nichts zu suchen ?


    Weil das Listview-Control nicht für MultiLine-Darstellung gedacht ist.

  • Listview und @CRLF...Win7=Ja WinXp=Nein

    • BugFix
    • 10. Oktober 2012 um 20:59

    Das dürfte ein Fehler in Win7 sein. Ein Zeilenumbruch hat in einem ListviewItem nunmal überhaupt nix zu suchen.

  • Adventskalender für Freundin

    • BugFix
    • 10. Oktober 2012 um 15:45
    Zitat von Gianni

    Was könnte man aber einer Frau schenken?

    Wenn du jemanden findest, der diese Frage umfassend und zufriedenstellend beantworten kann, werde ich ihn für den Nobelpreis vorschlagen. :rofl:

    Wenn du einer Frau etwas schenkst, kannst du nur verlieren - aber auch wenn du ihr nichts schenkst. Ein klassisches Dilemma.
    Bsp. - Du schenkst ihre Lieblingsparalinen:
    "Das ist aber lieb von dir. Aber die haben ja sooo vieeel Kalorien! - Du willst doch nicht etwa, dass ich DICK WERDE?!"

    - Du schenkst ihr nichts:
    "Was, nicht mal eine lumpige Packung Pralinen bin ich dir wert??"

    Wie du es machst - es wird immer falsch sein. :D

  • Abfrage des Checkbox-Status eines fremden Fensters

    • BugFix
    • 10. Oktober 2012 um 13:54

    Bei Fremdanwendungen brauchst du Titel/Handle des Fensters, ID/classname des Controls und kannst dann mit

    [autoit]

    ControlCommand('title', 'text', 'id / classname', 'IsChecked', '')

    [/autoit]

    den Status abfragen.

  • Gui_Event_Close mit mehreren GUIs

    • BugFix
    • 10. Oktober 2012 um 13:38

    :D
    Ich bezog mich mit meinem Bsp. auf die reine Fragestellung des TE. :P

  • Gui_Event_Close mit mehreren GUIs

    • BugFix
    • 10. Oktober 2012 um 11:13

    @m-obi
    Deine Variante ist aber recht aufwändig und wirkt unübersichtlich.
    Kürzer tuts auch. ;)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    Opt("GUIOnEventMode", 1)

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

    $Gui1 = GUICreate("Erste GUI", 200, 200, -1, -1)
    $Button1 = GUICtrlCreateButton("Zweite GUI zeigen", 10, 30, 120, 25)
    GUISetState()

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

    $Gui2 = GUICreate("Zweite GUI", 200, 200, -1, -1)
    $Button2 = GUICtrlCreateButton("Zurück zu GUI_1", 10, 30, 120, 25)
    GUISetState(@SW_HIDE)

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

    GUISetOnEvent(-3, '_close', $Gui1)
    GUISetOnEvent(-3, '_close', $Gui2)
    GUICtrlSetOnEvent($Button1, '_clickButton')
    GUICtrlSetOnEvent($Button2, '_clickButton')

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

    While 1
    Sleep(100)
    WEnd

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

    Func _close()
    Switch @GUI_WinHandle
    Case $Gui1
    Exit
    Case $Gui2
    GUISetState(@SW_HIDE, $Gui2)
    EndSwitch
    EndFunc

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

    Func _clickButton()
    Switch @GUI_CtrlId
    Case $Button1
    GUISetState(@SW_SHOW, $Gui2)
    Case $Button2
    GUISetState(@SW_HIDE, $Gui2)
    EndSwitch
    EndFunc

    [/autoit]
  • Kfz-Kennzeichen

    • BugFix
    • 10. Oktober 2012 um 09:22

    Oscar
    Wird ziemlich aufwändig, das zu pflegen.
    Das Bundesverkehrsministerium hat es den Ländern freigestellt, bei Wunsch in den Regionen auch "alte" Kennzeichen wieder zuzulassen.
    Bsp.
    Der jetzige Bördekreis (BK vorm. BÖ) setzt sich aus etlichen ehemaligen Kreisen/Städten zusammen (Wanzleben-WZL, Oschersleben-OC ..).
    Es können aber nicht alle alten Kennz. wieder verwendet werden, da das hier verwendete BK früher der Stadt Backnang zugeteilt war. Die könnten also nicht ihr altes Kennz. wieder nutzen.
    Das wird noch ein heilloses Durcheinander geben... :whistling:

    Nichtsdestotrotz: Schön umgesetzt.

  • Handy kommuniziert mit Computer

    • BugFix
    • 8. Oktober 2012 um 20:45
    Zitat von Mr.SaxoI3eat

    ich möchte euch nur schnell demonstrieren


    Wäre nett, wenn du das tust. Z.B. in einem YouTube-Video.

    Ich denke kaum jemand wird eine unbekannte App einfach so auf seinem Handy installieren.

  • Windows 7 - "externe" Controls?

    • BugFix
    • 8. Oktober 2012 um 19:28

    Solltest du mit ReBar realisieren können.

  • Array nach der Häufigkeit des Inhaltes sortieren

    • BugFix
    • 8. Oktober 2012 um 16:40

    Als Tipp:
    Das Array ByRef übergeben, sonst wird es völlig unnütz beim Aufruf der Funktion kopiert.

    Ein 1D-Array nach Häufigkeit von Einträgen zu sortieren macht aber wenig Sinn. Da ja kein Partnerwert (wie bei einer Schlüssel-Wert-Verknüpfung) existiert, ist es doch völlig ohne Belang wo die Werte im Array abgelegt sind. Schlimmer noch: durch den Sortiervorgang wird auch noch die Verknüpfung Index-Wert zerrissen.
    Es gibt sicher Einsatzvarianten, wo das Sinn macht. Aber in der Regel ist man dort mit einem anderen Datentyp besser bedient.

  • StringRegExp Problem

    • BugFix
    • 8. Oktober 2012 um 16:29

    OK

    Also da hier in jedem Fall ein ODER gefragt werden muß, wirst du in einem Fall immer ein leeres Arrayelement haben.
    Kannst du aber recht einfach händeln:

    [autoit]

    $s1 = '<span title="Max Mustermann"><a href="www.google.de">Max Mus..mann</a></span>'
    $s2 = '<a href="www.google.de">Max Mustermann</a>'

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

    ConsoleWrite(_GetMatch($s1) & @CRLF)
    ConsoleWrite(_GetMatch($s2) & @CRLF)

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

    Func _GetMatch($sString)
    Local $sPatt = '<span title="([\w\s]+)">|<a href=[^>]+>([\w\s]+)</a>'
    Local $aRet = StringRegExp($sString, $sPatt, 3)
    If Not IsArray($aRet) Then Return ''
    If $aRet[0] = '' Then Return $aRet[1]
    Return $aRet[0]
    EndFunc

    [/autoit]
  • StringRegExp Problem

    • BugFix
    • 8. Oktober 2012 um 15:52
    Zitat von Alcros

    K4z : leider nein, das Ergebnis ist das selbe.
    @ Bugfix :
    Wenn ich in Input

    Code
    <span title="Max Mustermann"><a href="www.google.de">Max Mus..mann</a></span>


    schcreibe, erhalte ich das :
    [Blockierte Grafik: http://www.abload.de/img/or18yove.jpg]
    Wenn ich aber

    Code
    <a href="www.google.de">Max Mustermann</a>


    in die Input schreibe, kommt folgendes :
    [Blockierte Grafik: http://www.abload.de/img/or236ost.jpg]

    Und das Element 0 stört mich, und ich will wissen, ob ich das sofort in der RegExp verhindern kann, dass das gespeichert wird.

    Alles anzeigen


    OMG - Ist es wirklich so schwer eine eindeutige Frage zu stellen?
    Ich übersetze mal:

    Der Ausgangstext kann dieser:

    Code
    <span title="Max Mustermann"><a href="www.google.de">Max Mus..mann</a></span>

    oder jener:

    Code
    <a href="www.google.de">Max Mustermann</a>

    sein.
    Mit welchem Pattern erhalte ich in jedem Fall nur
    Max Mustermann
    als Lösung?

    Ist die Fragestellung so korrekt?

  • Zeile aus Array auswählen und in Variable speichern

    • BugFix
    • 8. Oktober 2012 um 15:43
    Zitat von ExChill

    1. Frage: Der erste Eintrag im Array hat, wenn ich "$processclick = GUICtrlRead($processlist)" benutze, nicht den Wert 0 sondern 6. Woran liegt das?
    2. Frage: Was muss ich bei den Fragezeichen eintragen, damit der richtige Wert beendet wird?


    zu 1.
    Du kannst nicht die ID des Listview verwenden, sondern mußt die ID des ausgewählten ListViewItem nutzen. Besser: Arbeite mit der Listview-UDF (s. Hilfe)

    zu 2.
    Da gehört die PID des zu schließenden Prozesses rein, also bei deinem Listview, der Eintrag aus SpaltenIndex 1 des selektierten Item.

  • Water hat Geburtstag!!!

    • BugFix
    • 8. Oktober 2012 um 13:46

    Hallo water,
    auch von mir Alle Gute.

    Und als Schmankerl gibt es eine Simulation deiner Geburtstagsparty, mußt nur noch deine Daten anpassen. :D

    Spoiler anzeigen
    [autoit]

    #include "AutoItObject.au3"

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

    _AutoItObject_Startup()

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

    $o_water = _BirthdayPartyCreate('water')

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

    $o_water.Gender = 'm'
    $o_water.Gewicht = 75

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

    Local $sTimeLast, $indexDrink
    Local $Glas_Bier = 250, $ProzAlcBier = 5
    Local $Korn = 20, $ProzAlcKorn = 38
    Local $aDrink[2][2] = [[$Glas_Bier,$ProzAlcBier], [$Korn,$ProzAlcKorn]]

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

    ; es geht los: ein Bier, hinterher ein Korn
    $o_water.Drink($Glas_Bier, $ProzAlcBier, '20:00')
    $o_water.Drink($Korn, $ProzAlcKorn, '20:05')
    $o_water.AnzahlBier = $o_water.AnzahlBier +1
    $o_water.AnzahlKorn = $o_water.AnzahlKorn +1
    $sTimeLast = '20:05'

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

    ; und nun steigt die Party, Runde für Runde, alle 10 - 20 min wird getrunken
    ; mal ein Bier, mal ein Korn, rein zufällig -- aber bei 2,5 Promille ist Schluß ;)
    While $o_water.Promille <= 2.5
    $sTimeLast = _TimeAdd($sTimeLast, Random(10, 20, 1))
    $indexDrink = Random(0, 1, 1)
    $o_water.Drink($aDrink[$indexDrink][0], $aDrink[$indexDrink][1], $sTimeLast)
    If $indexDrink = 0 Then
    $o_water.AnzahlBier = $o_water.AnzahlBier +1
    Else
    $o_water.AnzahlKorn = $o_water.AnzahlKorn +1
    EndIf
    WEnd

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

    MsgBox(0, 'Feierabend', 'Die Party ist beendet' & @CRLF & @CRLF & _
    'Die letzte Runde gab es um: ' & $sTimeLast & ' Uhr' & @CRLF & @CRLF & _
    'Pegelstand: ' & StringFormat('%.2f', $o_water.Promille) & ' ' & Chr(137) & @CRLF & @CRLF & _
    'getrunken wurden:' & @CRLF & _
    'Bier: ' & $o_water.AnzahlBier & @CRLF & _
    'Korn: ' & $o_water.AnzahlKorn )

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

    Func _BirthdayPartyCreate($sName)
    Local $self = _AutoItObject_Create()
    _AutoItObject_AddProperty($self, 'Name', $ELSCOPE_READONLY, $sName)
    _AutoItObject_AddProperty($self, 'Gender', $ELSCOPE_PUBLIC, 'm')
    _AutoItObject_AddProperty($self, 'Gewicht', $ELSCOPE_PUBLIC, 85)
    _AutoItObject_AddProperty($self, 'tLastDrink', $ELSCOPE_PUBLIC, 0)
    _AutoItObject_AddProperty($self, 'Promille', $ELSCOPE_PUBLIC, 0)
    _AutoItObject_AddProperty($self, 'AnzahlBier', $ELSCOPE_PUBLIC, 0)
    _AutoItObject_AddProperty($self, 'AnzahlKorn', $ELSCOPE_PUBLIC, 0)
    _AutoItObject_AddMethod($self, 'Drink', "_DrinkAlc")
    Return $self
    EndFunc

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

    Func _DrinkAlc(ByRef $self, $iMenge_ml, $iProzAlc, $iUhrZeit)
    #cs
    Widmark'sche Formel:

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

    A Flüssigkeit in ml * Alkoholgehalt in % * 0.81
    /
    B Körpergewicht * 0.7 [w=0.6]
    C - Resorptionsdefizit
    D - Alkoholabbau
    = Blutalkoholgehalt in ‰
    #ce
    If $self.tLastDrink = 0 Then $self.tLastDrink = $iUhrZeit
    Local $iTimeDiff = _TimeDiff($self.tLastDrink, $iUhrZeit)
    Local $iFactor = 0.7
    If $self.Gender = 'w' Then $iFactor = 0.6
    Local $A, $B, $C, $D
    $A = $iMenge_ml * $iProzAlc / 100 * 0.81
    $B = $self.Gewicht * $iFactor
    $C = 0.2 * $A / $B
    $self.Promille = $self.Promille + ($A / $B - $C)
    $D = $iTimeDiff * 0.15
    If $D > 0 Then
    $self.Promille = $self.Promille - $D
    If $self.Promille < 0 Then $self.Promille = 0
    EndIf
    $self.tLastDrink = $iUhrZeit
    EndFunc

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

    Func _TimeDiff($t1, $t2)
    Local $iPos = StringInStr($t1, ':')
    If $iPos Then $t1 = StringLeft($t1, $iPos-1) + StringTrimLeft($t1, $iPos) * 1/60
    $iPos = StringInStr($t2, ':')
    If $iPos Then $t2 = StringLeft($t2, $iPos-1) + StringTrimLeft($t2, $iPos) * 1/60
    Local $iDiff = $t2 - $t1
    If $iDiff < 0 Then $iDiff = ($t2 + 24) - $t1
    Return $iDiff
    EndFunc

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

    Func _TimeAdd($t1, $iDiff)
    Local $iPos = StringInStr($t1, ':')
    If $iPos Then $t1 = StringLeft($t1, $iPos-1) + StringTrimLeft($t1, $iPos) * 1/60
    $t1 += ($iDiff * 1/60)
    If $t1 >= 24 Then $t1 -= 24
    Local $iHour = Int($t1), $iMin = Ceiling(($t1 - $iHour) * 60)
    Return $iHour & ':' & StringFormat('%02d', $iMin)
    EndFunc

    [/autoit]
  • Registrierung im Forum

    • BugFix
    • 8. Oktober 2012 um 09:52

    Soweit ich weiß, gibt es z.Zt. Probleme mit dem MailServer.

  • StringRegExp Problem

    • BugFix
    • 7. Oktober 2012 um 21:31
    Zitat von Alcros

    klappt alles.


    Du solltest dir angewöhnen dein Problem nachvollziehbar zu beschreiben. Was bedeutet "klappt alles"?
    Besser ist:
    - Text vorher
    - gewünschtes Ergebnis

    Dann kann man auch konkret helfen.

  • SciTE - Markierten Bereich paarig einfassen + Arraydeklaration mit Wertzuweisung und Scopeauswahl

    • BugFix
    • 6. Oktober 2012 um 11:47

    Und noch eine Änderung hinterher:

    Jetzt kann bei der Arraydeklaration gleich der Gültigkeitsbereich festgelegt werden.
    s. Post #1

  • Alternativen zum Array

    • BugFix
    • 6. Oktober 2012 um 11:26
    Zitat von AspirinJunkie

    Die Frage für mich ist daher: Welche Datenbank läuft dann genau im Hintergrund oder stellt das Objekt selbst eine Art native Datenbank zur Verfügung?


    Ich habe das bisher so verstanden, dass ADO eine Schnittstelle für Datenbanken aller Art (egal ob relational oder hierarchisch) darstellt mit Basismethoden/ -Eigenschaften von Datenbanken.
    Somit kann man das ADO-Objekt durchaus als eine LowLevel Datenbank ansehen.
    In der Vergangenheit war ADO bzw. damals DAO aber aufgrund des implementierten Recordsets recht verrufen, da dieses eine Schwachstelle im Sicherheitsbereich darstellte. Aktuell sind m.W. diese Sicherheitslücken aber abgestellt.

    Ich nutze ADO vorrangig um meine SQL-Datenbank z.B. mit AutoIt-Skripten anzuzapfen. :D


    Hier mal noch der MSDN-Link zum ADO-Objekt.

  • SciTE - Markierten Bereich paarig einfassen + Arraydeklaration mit Wertzuweisung und Scopeauswahl

    • BugFix
    • 5. Oktober 2012 um 23:34

    Nach einem Jahr etwas Neues: Arraydeklaration mit Wertzuweisung
    Auf einfache Weise Daten, die in der Form ein Eintrag je Zeile vorliegen (was ja recht oft der Fall ist) in einem Schritt in eine Arraydeklaration mit Wertzuweisung packen.
    s. Post #1

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™