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

  • taschenrechner problem

    • BugFix
    • 18. Oktober 2012 um 08:53
    Zitat von BugFix

    Tipp:

    Bitte poste dein Skript im Thread ( Tab:Quellcode, [ autoit ] DEIN SKRIPT [ /autoit ] <- ohne Leerzeichen )
    Wenn man es erst herunterladen muss, ist die Wahrscheinlichkeit für Hilfe geringer.

    Zitat von Kickass

    Was haltet ihr von dem taschenrechner jetzt ? :)


    Ich halte von einem DL-Link gar nichts. Du solltest Hinweise annehmen, die machen wir nicht aus Jux und Dallerei.

  • Manfred Spitzer - Digitale Demenz

    • BugFix
    • 18. Oktober 2012 um 08:48

    Das Buch habe ich nicht gelesen, den Typen aber mal im TV gesehen.
    Mein Eindruck: Der totale Vollpfosten.
    Er geht den üblichen Weg:
    - Thema von allgemeinem Interesse aussuchen
    - stark überspitzte Behauptungen aufstellen
    - deren "Wahrheitsgehalt" mit mehr als zweifelhaften Studien untermauern
    - alles in ein Buch packen
    - Promo-Touren durch ganz Deutschland
    Ergebnis: Die Kasse stimmt

    Und wenn euch das ganze jetzt an einen Herrn Sarrazin erinnert ist das nicht verwunderlich.

    Ich bin der festen Meinung:
    Weder Herr Spitzer noch Herr Sarrazin würden vor sich selbst ihre publizierten Ergüsse gelten lassen.
    Beiden geht es (mit Erfolg, wie man sieht) nur um Kohle, Kohle, Kohle... :whistling:

  • Mittlere Maustaste bei HotKeySet

    • BugFix
    • 16. Oktober 2012 um 17:29

    HotKey arbeitet mit gar keiner Maustaste. Damit klärt sich auch deine Frage.
    Im EN-Forum gibt es aber eine MouseOnEvent-UDF (oder ähnlich).

  • taschenrechner problem

    • BugFix
    • 16. Oktober 2012 um 13:48

    He Leute, haut euch nicht die Rübe ein. ;)

    General Kaboom:
    Eine Bitte, die du vielleicht beherzigen kannst. Ich kenn das aus meinen Anfängen, wollte auch gerne etwas von dem mir im Forum gegebenen Support an andere weitergeben. Da schießt man schnell mal übers Ziel hinaus, da einem ein Skript unbekannt und daher falsch vorkommt. Also lieber dann mal selbst die Hilfe bemühen und schauen, was diese Art der Programmierung bedeutet.
    Wer z.B. aus der VB-Ecke zu uns stößt, kann mit Msg-Loop nichts anfangen, ist aber bestens vertraut mit OnEvent-Mode.
    Ob eine Methode besser als die andere ist, sei völlig dahingestellt. Mit beiden kann man zuverlässig arbeiten. OnEvent-Mode erleichtert es m.M. große Skripte übersichtlich zu halten. Auch die zusätzlichen Makros in diesem Modus (@GUI_CtrlId, @GUI_CtrlHandle, @GUI_WinHandle, @GUI_DragFile, @GUI_DragId, @GUI_DropId) können einiges an Vorteil mit sich bringen. Aber das ist wirklich Geschmackssache. ;)

  • Stringbearbeitung mit Python-Syntax

    • BugFix
    • 16. Oktober 2012 um 13:30

    - Syntax erweitert auf alternative Verwendung von Operator Konstanten.
    - Installer für UserCallTips hinzugefügt
    s. Post #1

  • taschenrechner problem

    • BugFix
    • 16. Oktober 2012 um 08:40

    Tipp:

    Bitte poste dein Skript im Thread ( Tab:Quellcode, [ autoit ] DEIN SKRIPT [ /autoit ] <- ohne Leerzeichen )
    Wenn man es erst herunterladen muss, ist die Wahrscheinlichkeit für Hilfe geringer.

  • ZahlenRaten

    • BugFix
    • 15. Oktober 2012 um 16:18
    Zitat von minx

    - 64 + 4 sind 68
    - Du musst keine Variablen deklarieren, wenn du es nicht musst


    minx:
    Sorry, aber da sollte man anders herangehen.
    - 64 + 4 = 68 ---> dann weiß niemand mehr, wie sich der Style zusammensetzt, insofern durchaus sinnvoll
    - Das Deklarieren von Variablen ist immer guter Stil. So bequem es auch ist, dass AutoIt es nicht explizit fordert, so leicht verleitet es auch zur Schlamperei. Der beste Weg ist eigentlich mit Opt('MustDeclareVars', 1) zu arbeiten.

  • Autoit if Fehler

    • BugFix
    • 14. Oktober 2012 um 10:44
    Zitat von Andy

    Und die Reihenfolge dieser Abfragen bestimmt somit das Ergebnis bzw. den Datentyp.

    Zitat von Andy

    das ist eher Philosophisch^^


    :D
    Sehe ich auch so.
    Diese Abfragelogik erlaubt dann auch solche im ersten Moment seltsam erscheinenden Umwandlungsoperationen:

    [autoit]

    Func __Bool2Num($bool)
    Return BitAND($bool, True)
    EndFunc ;==>__Bool2Num

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

    Func __Num2Bool($num)
    Return Not Not $num
    EndFunc ;==>__Num2Bool

    [/autoit]

    ;)

  • Anna hat Geburtstag!

    • BugFix
    • 14. Oktober 2012 um 10:17

    Auch von mir Alles Gute!

    Und dazu ein kleines Ständchen: Anna

  • Autoit if Fehler

    • BugFix
    • 14. Oktober 2012 um 10:07
    Zitat von Andy

    NIL könnte man also imho in AutoIt mit FALSE ersetzen.


    Jein.
    So, wie AutoIt damit umgeht, kann 0 und Leerstring als FALSE betrachtet werden. Das beißt sich aber mit Inhalten bzw. Nicht-Inhalten von Variablen. Dadurch haben Variablen, die ohne Wertzuweisung erstellt werden, leider einen Wert, der als 0, Leerstring oder FALSE gelesen wird.
    Abhilfe schafft halt der typenkorrekte Vergleich bzw. das Vorbelegen der Variablen mit eineindeutigen Werten.
    Je länger ich mit AutoIt arbeite, desto unglücklicher bin ich mit dem Datentyp Variant. Er verleitet zu schnell zu Fehlern. Selbst eine typgenaue Deklaration schützt nicht davor, dass ein String in einer Integeroperation verwendet wird. Variant als Datentyp passt sich einfach an statt einen Fehler zu bringen, somit kann ein Flüchtigkeitsfehler sich gut verstecken. :wacko:

  • Autoit if Fehler

    • BugFix
    • 14. Oktober 2012 um 00:46

    Die Ursache liegt u.A. in der Verwendung des Datentyps Variant. So praktisch das i.A. ist -- hier tritt es uns in den Hintern.
    Folgende Probleme fallen hier zusammen:
    - AutoIt hat nicht einen Wert wie z.B. 'nil' in LUA, also das definierte 'Nichts'
    - eine frisch deklarierte Variable ohne Wertzuweisung hat nur ein "unklares Nichts" als Wert, sowohl 0 als auch Leerstring sind somit ein "unklares Nichts"

    Bei Vergleichen ist es somit zwingend erforderlich nicht Äpfel mit Birnen, sondern Datentypgleich zu vergleichen:

    [autoit]


    ; FALSCH:
    $a = 0
    If $a = 'abc' Then

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

    ; RICHTIG:
    If $a = 1234

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

    ; oder RICHTIG
    $a = '0'
    If $a = 'abc' Then

    [/autoit]

    Damit ist garantiert, dass der Vergleich auch gewünschte Ergebnisse liefert.

    Was passiert in den "gemischten" Abfragen?

    [autoit]

    $a = 0 ; also ein Integerwert
    If $a = "abc" ; laut dieser Abfrage soll ein Vergleich von Integerwert $a=0 mit einem anderen Wert stattfinden.

    [/autoit]


    Da Variant nun versucht die Werte typgleich zu gestalten wird mit Int("abc") verglichen - und das ergibt: 0
    Somit ist 0 = 0 und der Vergleich ist WAHR.
    w.z.b.w.

  • Wert auslesen und zur Variable machen

    • BugFix
    • 13. Oktober 2012 um 13:35

    Dein Konzept ist aus folgenden Gründen sinnfrei:

    Du kannst den Wert von Variablen nicht dynamisch mit deren Wert durch Auslesen Name/Wert speichern. Denn es gibt in AutoIt keine Möglichkeit den Namen einer Variablen auszulesen.
    Also musst du in deinem Skript sowieso auf den DIR BEKANNTEN Variablennamen zugreifen. Du kannst natürlich den zugehörigen Wert in Verbindung mit dem Namen in einer INI speichern (Variablenname=Wert). Aber beim Lesen aus der INI hat Assign nichts verloren. Das Auslesen erfolgt dann nach dem Muster:

    [autoit]

    ; z.B. für eine Variable $zaehler
    $zaehler = IniRead($INI, 'sektion', 'zaehler', '')

    [/autoit]
  • Die Anna

    • BugFix
    • 13. Oktober 2012 um 12:25

    Na dann Sei uns Willkommen! Auf viele schöne gemeinsame Stunden im Forum.
    Wie du sicher schon bemerkt hast, ist vielen von uns eine hintergründige Art von Ironie, teilweise auch Zynismus (aber nie böse) eigen. Also durchaus das Gelesene mit einem Zwinkern betrachten.

    Ich freue mich immer, wenn auch Mädels sich für AutoIt (bzw. generell Programmierung) begeistern können. Dieser Bereich ist viel zu stark von Männern dominiert. ;)

  • NCID Anrufmonitor

    • BugFix
    • 12. Oktober 2012 um 18:45

    Hallo Janine,

    habe mich gerade mal etwas mit dem Thema Easybox beschäftigt. Jetzt verstehe ich, was du mit "arme Easybox-Besitzerin" meinst. :S
    Ich habe einen Thread gefunden, indem beschrieben wird, wie man die Box im vollen Umfang konfigurieren kann. Vodafone Easybox 803 / 903/ 904 "jailbreaken"
    Vielleicht bringt dich das etwas weiter. Viel Glück dabei.

  • NCID Anrufmonitor

    • BugFix
    • 12. Oktober 2012 um 09:11
    Zitat von JaneDoe

    gibt es einen Grund für deine Beiden sinnfreien Kommentare in diesem Beitrag ?


    Den zweiten Beitrag habe ich deutlich als OT markiert, viele Nicks sind einfach bunt zusammengewürfelt. Jane Do hat aber in der Kriminalistik eine feste Bedeutung. Insofern war ich einfach nur neugierig, weshalb man sich damit identifiziert.
    Tut mir leid, wenn du Post 1 als sinnfrei betrachtest. Sehe ich anders. Solch Anrufmonitoring ist eine prima Sache. Und in diesem nicht bestreitbaren Sachzusammenhang wollte ich auf eine Möglichkeit bei vorhandener FritzBox hinweisen.

  • NCID Anrufmonitor

    • BugFix
    • 11. Oktober 2012 um 21:20

    [OT]
    Warum nennst du dich "Unbekannte Tote" ? :rofl:
    [/OT]

  • NCID Anrufmonitor

    • BugFix
    • 11. Oktober 2012 um 19:08
    Zitat von JaneDoe

    ein Anruferlog wenn man mal außer Haus ist usw.
    Möglichkeiten gibt es sehr viele, die Grundfunktionen sind ja in dem Script vorhanden.


    Für eine Fritzbox gibt es da "Fritz!AppTicker", da kann ich von überall sehen, wer angerufen hat - angerufen wurde, habe Zugriff auf das Telefonbuch der Box und kann dieses im Smartphone nutzen, kann auch die Box fernwarten.
    Ich denke, da gibt es kaum noch Erweiterungsmöglichkeiten /-Bedarf.

  • Exceldiagram in Autoit einfügen.

    • BugFix
    • 11. Oktober 2012 um 11:26

    Hier mal ein Bsp.:

    Spoiler anzeigen
    [autoit]

    Const $xlColumns = 2
    Const $xl3DPieExploded = 70
    Const $xlDataLabelsShowValue = 2

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

    Local $oExcel = ObjCreate("Excel.Application") ; Excel-Objekt erstellen
    $oExcel.Visible = 1
    $oExcel.SheetsInNewWorkbook = 1 ; Anzahl der gewünschten Sheets beim Erstellen festlegen
    Local $oBook = $oExcel.Workbooks.Add ; im Excel-Objekt ein Workbook-Objekt erstellen
    Local $oSheet = $oBook.Sheets(1) ; Sheet-Objekt für Sheet 1 erstellen (Name oder Index)
    $oSheet.Name = 'Mein Sheet' ; Eigenschft Name ändern

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

    ; oder vorhandene Datei öffnen:
    ;~ Local $oBook = $oExcel.WorkBooks.Open($sFilePath, Default, False)
    ;~ Local $oSheet = $oBook.Worksheets.Item(1) ; Index od. Name des Sheets

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

    ; Daten in neuem Sheet eintragen

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

    ; Die Range-Offset-Adressierung ermöglicht einfaches Navigieren mit Schleifen

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

    ; Syntax: NewRange = Objekt.Range("StartZelle").Offset(ZeilenOffset, SpaltenOffset)
    ; Offset=0 ist die betreffende Zeile/Spalte selbst, die Adressierung ist relativ zur StartZelle
    ; negative Werte betreffen also Zeilen/Spalten oberhalb/vor der StartZelle

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

    ; Spaltenbeschriftung B1:H1
    For $i = 0 To 7
    If $i = 7 Then
    $oSheet.Range("B1").Offset(0, $i).Value = 'SUMME'
    Else
    $oSheet.Range("B1").Offset(0, $i).Value = 'HEADER ' & $i+1
    EndIf
    Next

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

    ; Zeilenbeschriftung A2:A10
    For $i = 0 To 8
    $oSheet.Range("A2").Offset($i, 0).Value = 'NAME ' & $i+1
    Next

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

    ; Werte eintragen B2:H10
    For $i = 0 To 8
    For $j = 0 To 6
    $oSheet.Range("B2").Offset($i, $j).Value = Random(8,30,1)
    Next
    Next

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

    ; Formeln Summen Zeilen und Summe gesamt
    Local $r = 2
    For $i = 0 To 9
    If $i = 9 Then
    $oSheet.Range("I2").Offset($i, 0).Formula = "=SUMME(I2:I10)"
    Else
    $oSheet.Range("I2").Offset($i, 0).Formula = "=SUMME(B"&$r&":H"&$r&")"
    $r += 1
    EndIf
    Next

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

    ; Diagramm im $oSheet erstellen
    ; Um die Positionierung des Diagramms an einer Zelle auszurichten, kann man die Werte vorab abfragen
    ; und das Diagramm gleich mit diesen Parametern erstellen, oder anschließend verschieben

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

    Local $width = 300, $height = 200

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

    ; Ausrichtung linksbündig an Zelle B13:
    ;~ Local $left = $oSheet.Range("B13").Left
    ;~ Local $top = $oSheet.Range("B13").Top

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

    ; Ausrichtung rechtsbündig an Zelle I13:
    Local $left = $oSheet.Range("J13").Left - $width ; Zelle J13: left = Zelle I13: right !
    Local $top = $oSheet.Range("I13").Top

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

    ; Objekt Diagramm erstellen
    Local $oChart = $oSheet.ChartObjects.Add($left, $top, $width, $height).Chart

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

    With $oChart
    .ChartType = $xl3DPieExploded ; Diagrammtyp festlegen
    .SetSourceData($oSheet.Range("I2:I10"), $xlColumns) ; Datenbereich für Diagramm
    .SeriesCollection(1).XValues = "='Mein Sheet'!Z2S1:Z10S1" ; Beschriftung Legende setzen (Namen aus A2:A10)
    .HasTitle = True ; Titel aktivieren
    .ChartTitle.Characters.Text = "Einzelsummen / Name (Gesamt = " & $oSheet.Range('I11').Value & ")" ; Titel
    .ApplyDataLabels($xlDataLabelsShowValue, False, True) ; Segmente Beschriften mit Werten
    EndWith

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

    ; Diagramm (Zeichnungsfläche=Shape) ausrichten, wenn nicht vorab positioniert
    ;~ With $oSheet
    ;~ .Shapes(1).Top = $oSheet.Range("B13").Top ; Ausrichtung Top an Zelle B13.top
    ;~ .Shapes(1).Left = $oSheet.Range("B13").Left ; Ausrichtung Left an Zelle B13.left
    ;~ .Select
    ;~ EndWith

    [/autoit]

    Edit:
    Oops, ich sehe gerade du willst das Diagramm exportieren, hatte ich falsch verstanden. ;)

    Versuch erst mal manuell ob folgendes geht:
    - Diagramm markieren
    - Druckbereich festlegen
    - Drucken auf PDF-Drucker (pdf-Dateien kannst du in deine Präsentation einbasteln), -- wird dabei das Diagramm gedruckt?
    - PDF- Datei in Präsentation einfügen bzw. ersetzen

    Wenn du das zusammenbekommst, jeden einzelnen Schritt notieren -- dann kann man sich an die Automatisierung machen. Auch Powerpoint ist m.W. per AutoIt ansprechbar.

  • Abfrage des Checkbox-Status eines fremden Fensters

    • BugFix
    • 11. Oktober 2012 um 11:22
    Zitat von m-obi

    Aber auf der Applikation kann er doch auch die ID ermitteln mit dem Window Info Tool.


    Sofern dort eine ID ermittelbar ist - ja. Das ist aber nicht immer der Fall und es kommt auch vor das die ID nicht fix ist, also bei jedem Programmaufruf eine neue vergeben wird. Ich verwende i.A. CLASS + INSTANCE oder CLASSNAME, das ist treffsicherer.

  • Alles Gute! progandy wird 22!

    • BugFix
    • 11. Oktober 2012 um 00:40

    Alles Gute wünsch ich dir.
    Laß uns noch recht oft an deinem Know-How teilhaben. :thumbup:

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™