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

Beiträge von opaed

  • Com Objects - Neuling - Tutorial

    • opaed
    • 20. Dezember 2009 um 17:32

    Hi
    lese dir mal die Hilfe ueber OBJ/COM durch, aber nicht fluechtig, sondern sehr genau. Es steht wirklich alles wissenswerte drin.
    Mit den Beispielen gebe ich dir recht, aber zum Anschauen und Vergleichen reicht es.
    Such dir im Internet freie ActiveX.DLL oder .OCX mit Beschreibung und verwende diese zum Ueben. (Es gibt auch zahlreiche shareware , die laueft dann 30 Tage und Beschreibung ueber die Eigenschaften und Methoden ist meistens dabei)
    So kommst du am schnellsten hinter die Syntax, die ja eigentlich sehr einfach ist und viel Zeilen Programmcode einsparen kann.

  • Auslesen von externem Inputfeld (Erstellt mit Autoit)

    • opaed
    • 20. Dezember 2009 um 17:13

    Vielen Dank fuers Testen,
    haette geschworen , das es gestern Abend auch funktioniert hat, habe auch den Fehler entdeckt.
    ControlGetText("Titel" <---- ist Case sensitiv
    D.h.
    $lese = ControlGetText("AuslesenTest" <---
    ist nicht das selbe wie,
    $lese = ControlGetText("ausLesenTest" <---
    oder
    $lese = ControlGetText("AUSLESENTEST" <---
    bitte testen, eventuell sollte man ein Hinweis in die Hilfe platzieren, falls das stimmt.

  • Auslesen von externem Inputfeld (Erstellt mit Autoit)

    • opaed
    • 20. Dezember 2009 um 15:03

    Hi Leute
    Ich gehe mal wieder unter und zwar versuche ich ein Inputfeld eines zweiten Autoit-Fensters zu lesen, aber irgendwie klappt das nicht.
    Komme weder an die Daten des sichtbaren Inputs dran, noch an die Daten des unsichtbaren Inputs.

    Folgendes nur als Beispiel, Input zum Auslesen.

    Spoiler anzeigen
    [autoit]


    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    $Form1 = GUICreate("AuslesenTest", 151, 116, -1, -1)
    $inputVisible = GUICtrlCreateInput("", 23, 22, 102, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
    $inputhidden = GUICtrlCreateInput("", 23, 60, 102, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
    GUICtrlSetState(-1, $GUI_HIDE)
    GUISetState(@SW_SHOW)
    AdlibEnable ( "_setZumTest", 2000)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    func _setZumTest()
    GUICtrlSetData ($inputVisible, @HOUR & ":" & @MIN & ":" & @SEC)
    GUICtrlSetData ($inputhidden, @HOUR & ":" & @MIN & ":" & @SEC)
    EndFunc

    [/autoit]


    Habe folgendes probiert aber ohne Erfolg.
    Als zweites Skript zum Auslesen --->ControlGetText

    [autoit]


    $lese = ControlGetText("AuslesenTest","", "[ID:3]")
    MsgBox(0,"",$lese)

    [/autoit]


    oder

    [autoit]


    $lese = ControlGetText("AuslesenTest","", "[CLASS:Edit; INSTANCE:1"])
    MsgBox(0,"",$lese)

    [/autoit]


    Als zweites Skript zum Auslesen --->ControlCommand

    [autoit]


    $lese = ControlCommand("AuslesenTest", "", "[CLASS:Edit; INSTANCE:1]", "GetLine",1)
    MsgBox(0, '', $lese)

    [/autoit]


    Es will nicht klappen. 8|

  • ==> Variable must be of type "Object".:

    • opaed
    • 16. Dezember 2009 um 11:52

    Hi,
    hier hast du ein Errorhaendler aus der Autoithilfe, der verhindert zumindest den Absturz deines Skriptes.

    [autoit]


    $oMyError = ObjEvent("AutoIt.Error","MyErrFunc") ; Implementiert einen eigenen Error-Handler

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

    ; Erzeugt absichtlich einen Fehler (Objekt existiert nicht)
    $oIE = ObjCreate("InternetExplorer.Application")
    $oIE.visible = 1
    $oIE.bogus
    if @error then Msgbox(0,"","Die vorherige Zeile lieferte einen Fehler!")

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

    Exit

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

    ; Das ist unser eigener Error-Handler
    Func MyErrFunc()
    $HexNumber=hex($oMyError.number,8)
    Msgbox(0,"","Ein COM-Fehler wurde abgefangen!" & @CRLF & _
    "Fehlernummer: " & $HexNumber & @CRLF & _
    "WinDescription: " & $oMyError.windescription )

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

    SetError(1) ; Ein Rückgabewert zum Überprüfen, wen die Funktion zurückgekehrt ist
    Endfunc

    [/autoit]
  • Bedingung & GUICtrlRead

    • opaed
    • 12. Dezember 2009 um 19:14

    Schnitzel

    Zitat

    ich würde den wert in einer variable zwischenspeichern und wenn er sich beim nächsten guictrlread nicht verändert hat, dann brauchste den wert auch nich verarbeiten


    SEuBo

    Zitat

    Um auf die Idee von Schnitzel näher einzugehen:

    Um auf eure Ideen und Loesungen einzugehen, :thumbup: Loesung uebertrift meine Erwartungen, kurz und schmerzlos, Kopfschmerzen beseitigt :D

    Hatte es auch ueber den ---> And ungleich Operator versucht, was zu Folge hatte, das alles ungleich 25 die MsgBox ausloest, auf die Idee mit der Variablen waere ich nie gekommen.
    Danke

  • Bedingung & GUICtrlRead

    • opaed
    • 12. Dezember 2009 um 13:56

    Halo Leute,
    habe ein kleines Problem mit If-Abfrage abhaengig von dem Wert aus GUICtrlRead.
    Beispiel:

    [autoit]


    $readDummy = GUICtrlRead($Dummy)
    If $readDummy == 25 Then
    MsgBox(0,"","ist 25")
    Endif

    [/autoit]


    Normalerweise nichts problematisches, nur leider wird der Wert innerhalb einer Sekunde mindestens zweimal in das Control geschrieben und somit ist die Bedingung zweimal TRUE und die MsgBox startet dann auch zweimal, was nicht erwuenscht ist.
    Wenn ich es in Datei schreiben lasse sieht das dann so aus....
    zB.
    28
    28
    27
    27
    26
    26
    25
    25
    24
    24
    Anhand des Ablaufs bietet sich mir folgende Loesung: FileCreate ---> FileOpen ---> FileWrite ---> FilereadLine ---> FileClose ---> FileDelete ---> if von Wert aus FileReadLine vergleichen und wenn True, dann Befehl starten.
    Die Loesung erscheint mir nicht sehr elegant.
    Bessere Loesung die mir einfaelllt, ist hier im Forum nach einer Loesung zu Fragen :whistling:

  • Label zentrieren anhand der größe

    • opaed
    • 10. Dezember 2009 um 03:19

    ;( Einfache Mathe, ich glaube ich muss wieder zu Grundschule, schaem
    ----> $ZenterHorizontal = (@DesktopWidth - 875) / 2 ;///// 875 ist die Breite des Labels im Beispiel
    $Label = GUICtrlCreateLabel("Gesperrt", $ZenterHorizontal <----
    Trotzdem Danke SEuBo

  • Label zentrieren anhand der größe

    • opaed
    • 10. Dezember 2009 um 01:26

    Mojen zusammen,
    habe hier auch aehnliches Problem. Und zwar sollte sich der Wert Label ("Text", Left<----------- automatisch an die Aufloesung des Monitors anpassen. Das Label des Beispiels wurde bei einer Aufloesung von @DesktopWith = 1680 zentriert, wenn ich die Aufloesung hochsetze oder runterschraube ist das Label natuerlich nicht in der horizontalen Mitte.
    Also noetig ist eine Formel wie fuer die Funktion im Koda --->Anordnen ---> Horizontal zentrieren.
    Die Berechnung des Skalierungfaktors @DesktopWith = Alt mit @DesktopWith = Neu, angewendet an den Wert Left von Label, bringt nicht das erwuenschte Ergebniss. In der Hilfe habe ich auf Anhieb nichts passendes gefunden.
    Der Style "$SS_CENTER", zieht nicht.

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

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

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

    HotKeySet("{ESC}", "_Exit")

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

    $SChild = GUICreate("SChild", @DesktopWidth + 5, @DesktopHeight + 5, -5, -5, BitOR($WS_SYSMENU, $WS_POPUP, $WS_POPUPWINDOW, $WS_GROUP, $WS_BORDER, $WS_CLIPSIBLINGS, $DS_SETFOREGROUND), BitOR($WS_EX_CLIENTEDGE, $WS_EX_TOOLWINDOW, $WS_EX_RIGHT, $WS_EX_TOPMOST))
    $Label = GUICtrlCreateLabel("Gesperrt", 450, 215, 875, 357)
    GUICtrlSetFont(-1, 150, 400, 0, "Arial")
    GUISetState(@SW_SHOW)

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

    While 1
    Sleep(10000)
    _Exit()
    WEnd

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

    Func _Exit()
    Exit
    EndFunc ;==>_Exit

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • [gelöst] Netzwerkproblem...

    • opaed
    • 16. November 2009 um 18:12
    Zitat

      :?: DNS Server Addr geändert ?( , DSL-Modem schon 100 mal resettet. Netzwerktreiber deinstall und reinstall, Update, QoS an/aus, IP-Adresse Auto/Manuell. Bring alles nichts!!!!


    Na Hauptsache es geht wieder :D

  • [gelöst] Netzwerkproblem...

    • opaed
    • 16. November 2009 um 10:05

    Mojen,
    probiere mal das tool hier:
    TCPVIEW
    Dort bekommst du ´deine aktiven Verbindungen angezeigt.
    Desweiteren könntest du noch die Hops ermitteln über "tracert" oder "pathping" und zwar einmal mit deinem Notebook und dem lahmenden Rechner und zum Vergleich auswerten.
    Die ARP einträge überprüfen mit arp -a
    Leeren des Cache Browsers
    Firewall und Antivirensoftware zu Testzwecken deaktivieren
    Versteckte Dateien Anzeigen lassen und nach Verdächtigen Programmen auf C: oder deinem USB Laufwerk suchen. zB. Áutorun.inf mit dem Attribut hidden.

  • IP geändert (WMI Object) - kein Zugriff auf Internetseite

    • opaed
    • 13. November 2009 um 12:13
    Zitat

    Nein, ich schreibe ein Tool für ein Studentenwohnheim. Hilft dir das? Das müsste aber in jedem Netzwerk funktionieren.


    IP Vergabe sollte natürlich funktionieren, aber die Erreichbarkeit der von dir gewünschten Internetseite ist damit nicht gewährleistet.
    Unter Umständen habt ihr in eurem Netz ein Proxy, den du zwischenschalten musst.

  • IP geändert (WMI Object) - kein Zugriff auf Internetseite

    • opaed
    • 13. November 2009 um 11:13
    Zitat

    Das Netzwerk des Testsystems ist manuell konfiguriert innerhalb eines größeren Verbundes


    Ist nicht zufällig ein Schulnetzwerk ??

  • kleiner Bug in Winkill

    • opaed
    • 11. November 2009 um 09:07

    Halo Johannes,
    wie gesagt nichts dramatisches.
    Also beim IE, wenn mehrere Registerkarten göffnet sind und die Option "Warnung anzeigen wenn mehrere Reigisterkarten geschlossen werden", an diese Warnung kommt winkill nicht vorbei. Dachte nur das sollte es, weil hier das brutale"kill".

  • kleiner Bug in Winkill

    • opaed
    • 10. November 2009 um 23:36

    Mojen Johannes,
    ja so habe ich es gemeint, lasse mich mich aber gerne aufklaeren wo der Unterschied ist.
    Jedenfalls reagiert Winkill beim Tabbrowsing des IE's anders als zB. beim Opera.
    Das wundert mich doch ein wenig.

  • Zwei arrays compare

    • opaed
    • 10. November 2009 um 23:10

    Hi SEuBo ,

    Zitat


    Warum dann nicht eifnach so:


    das war mal wieder der Drang zur Komplizierheit. 8|
    Naturlich funktioniert deine Loesung bestens.
    Vielen Dank
    war auch eine gute Frage von Dir, ob statisch oder dynamisch!

    MfG Opaed

  • kleiner Bug in Winkill

    • opaed
    • 10. November 2009 um 23:02

    Tag Autoitler,
    nichts tragisches, aber Winkill funktioniert nicht direkt mit Registerkarten zB. IExplorer,
    wie gesagt nix tragisches, aber unter ...Kill stelle ich mir bedinungsloses schliessen des Fensters vor.
    Loesung wird nicht gebraucht.

    MfG Opaed

  • Zwei arrays compare

    • opaed
    • 10. November 2009 um 13:56

    Hi SEuBo ,
    Ich denke das erste Array aus $wartest bleibt erstmal so, das zweite Array aus $var ist dynamisch.

    MfG OpaEd

  • Zwei arrays compare

    • opaed
    • 10. November 2009 um 12:08

    Mojen Forum,
    könnte mir Jemand helfen mit der Funktion:
    Es soll so funktionieren wie das hier: Was in $Ausschluss steht nicht für die Ausgabe einbeziehen, aber halt mit mehr Werten:

    Spoiler anzeigen
    [autoit]


    $Ausschluss = "Program Manager"
    $var = WinList()

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

    For $i = 1 To $var[0][0]
    ; Listet nur die sichtbaren Fenster auf, die einen Titel haben
    If $var[$i][0] <> "" And IsVisible($var[$i][1]) Then
    If $Ausschluss <> $var[$i][0] Then
    MsgBox(0, "Details", "Titel=" & $var[$i][0])
    EndIf
    EndIf

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

    Next

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

    Func IsVisible($handle)
    If BitAND(WinGetState($handle), 2) Then
    Return 1
    Else
    Return 0
    EndIf

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

    EndFunc ;==>IsVisible

    [/autoit]

    Habe es dann so versucht, mit einem Salat als Resultat:

    Spoiler anzeigen
    [autoit]


    Dim $vartest[3] = ["Program Manager", "Html Help", "Beta"]
    For $r = 0 To UBound($vartest, 1) - 1

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

    $var = WinList()
    For $i = 1 To $var[0][0]
    ; Listet nur die sichtbaren Fenster auf, die einen Titel haben
    If $var[$i][0] <> "" And IsVisible($var[$i][1]) Then
    If $vartest[$r] <> $var[$i][0] Then
    MsgBox(0, "Details", "Titel=" & $var[$i][0])
    EndIf
    EndIf
    Next
    Next

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

    Func IsVisible($handle)
    If BitAND(WinGetState($handle), 2) Then
    Return 1
    Else
    Return 0
    EndIf

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

    EndFunc ;==>IsVisible

    [/autoit]

    MfG OpaEd

  • Restart VOR Anmeldefenster

    • opaed
    • 7. November 2009 um 12:31

    Hi Bugfix,
    nehme Bezug auf dein Problem.
    Beim Booten gibt es eine bestimmte Reihenfolge, ueber das Session Manager Subsystem (Smss) wird Winlogon eingeleitet(Der SASSAWurm war immer erst nach dem Winlogon aktiv), an diese Stelle kommt das Anmeldefenster und die Services werden geladen (SCM)
    Du muss deshalb den Neustart einleiten bevor Winlogon gestartet wird.
    Ich denke der folgende Schluessell koennte helfen:
    HKLM\System\CurrentControlset\Control\SessionManager\BootExecute
    Ein Beispiel zum besseren Verstaendniss ist zeitgesteuertes Chkdsk und wird eingeleitet uberdiesen Schluessel. Du startest die Pruefung auf deinem Systemlaufwerk mit allen Optionen, nach dem naechsten Boot gehts es in den Bluescreenmodus, noch bevor die Winlogon initialisiert wird. Einige Antivirenprogramme benutzen diesen Modus ebenfalls, zb AVG oder AVAST.
    Hoffe das hilft ;)

    -OpaEd

  • 3D-Konstrunktions-Engine für den Möbelbau mit Autoit möglich?

    • opaed
    • 3. November 2009 um 22:31

    Also für die Visalisierung könntest du auf ein fertiges 3d Kern zurückgreifen, wie zB. das hier:
    Sketchup
    Ich meine da wird eine ActiveX DLL mit installiert, findest du über Oleview.(IDL auslesen)
    Ein freier Viewer für die SKP Dateien ist ebenfalls auf der Webseite.
    oder das hier für die Kundepräsentation über html.
    Sketchup Webexporter
    Über AutoitX könntest du die Bibliotheken steuern, erstellen und dein eigenes dynamisches Baukastensystem bauen.
    STL-DXF-Plugin
    Hier findest du ein Passendes Freeware Plugin für MeshData in STL oder DXF format.
    Das wiederum könnte dir Helfen deine Modelle in CNC Code umzuwandeln über das Programm hier:
    Es sei, du schreibst dein eigenen Exporter.
    FreeMill

    Übrigens, die 3dProgramme für den Möbelbau finde ich überteuert und die Visualisierung entspricht der Engine "Hundert Jahre vor den Affen"

    Deine Idee finde ich gut, hätte ich Zeit und mehr Erfahrung in Programmierung würde ich so ein Projekt auch wagen.
    MfG OpaEd

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™