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

  • GDI+ Visualization: Analog Meter

    • BugFix
    • 20. April 2016 um 15:15

    ...und mal als Tipp: Die Lösung des Problems stand doch in der Fehlermeldung
    $WM_DROPFILES previously declared as a 'Const'.
    Wenn eine Variable/Konstante bereits deklariert war, einfach die Zeile mit der Deklaration, welche vom Syntaxcheck bemängelt wird, auskommentieren.

  • NetSpeedMonitor InterfaceSwitcher

    • BugFix
    • 13. April 2016 um 19:28
    Zitat von s0nny

    also wirklich komplett durchsichtig und ohne Titelleiste oder ähnliches. Geht das?

    Schau dir dazu an:
    Style: $WS_POPUP
    WinSetTrans

  • StringRegExp richtig verwenden

    • BugFix
    • 13. April 2016 um 13:38

    In meinem vorigen Pattern hatte ich vergessen, die Umbrüche auszufiltern.
    So gehts z.B.

    AutoIt
    $aMatch = StringRegExp($sText, '(?m)([^:\r\n]+)', 3)
    Local $oDict = ObjCreate('Scripting.Dictionary')
    
    
    For $i = 0 To UBound($aMatch) -2 Step 2
    ;~ 	ConsoleWrite($aMatch[$i] & ':' & StringStripWS($aMatch[$i+1], 1) & @CRLF)
    	$oDict($aMatch[$i]) = StringStripWS($aMatch[$i+1], 1)
    Next
    
    
    ConsoleWrite($oDict('Account no.') & @LF)
    ConsoleWrite($oDict('Company') & @LF)
    ConsoleWrite($oDict('Your Name') & @LF)
    ConsoleWrite($oDict('Address') & @LF)
    ConsoleWrite($oDict('City') & @LF)
    ConsoleWrite($oDict('Postal code') & @LF)
    ConsoleWrite($oDict('Telephone') & @LF)
    ConsoleWrite($oDict('E-Mail Address') & @LF)
    ConsoleWrite($oDict('Country') & @LF)
    Alles anzeigen
  • for schleife arraydelete

    • BugFix
    • 13. April 2016 um 13:04

    Will man in Arrays löschen muß man rückwärts iterieren, damit man sich nicht selbst den Ast (Index) absägt, auf dem man sitzt :D

  • StringRegExp richtig verwenden

    • BugFix
    • 13. April 2016 um 12:58

    zu kompliziert :D

    So bekommst du alles in ein Array, abwechselnd Schlüssel und Wert:

    AutoIt
    $sText = _
    'Account no.: 123456789' & @CRLF & _
    'Company: Test GmbH' & @CRLF & _
    'Your Name: Herr Test' & @CRLF & _
    'Address: Teststrasse 1' & @CRLF & _
    'City: Testort' & @CRLF & _
    'Postal code: 12345' & @CRLF & _
    'Telephone: 0123456789' & @CRLF & _
    'E-Mail Address: bla@test.de' & @CRLF & _
    'Country: DE '
    
    
    $aMatch = StringRegExp($sText, '(?m)([^:]+)', 3)
    
    
    For $x In $aMatch
    	ConsoleWrite(StringStripWS($x, 1) & @CRLF)
    Next
    Alles anzeigen
  • IIS7 WMI Query

    • BugFix
    • 13. April 2016 um 10:49

    Große Hilfe kann ich nicht bieten, da ich nicht mit dem OS arbeite.

    _ArrayDisplay($colItems) Das kann nicht funktionieren, eine Collection ist kein Array.
    Allerdings sollte man mit For Element In Collection iterieren können - sofern dort Elemente enthalten sind.
    Überprüfe zuerst ob deine Angaben korrekt sind (IIsApplicationPoolSetting-Name).

    AutoIt
    $colIISApps = $objWMIService.ExecQuery ("Select * from IIsApplicationPoolSetting")
    For $Item In $colIISApps
    	ConsoleWrite($Item.Name & @CRLF)
    Next

    Hier sollte jetzt der in deiner Abfrage verwendete Name auch gelistet sein. Falls nicht, kannst du auch dessen Inhalte nicht ermitteln.

  • Schwarzes Bild bei Webcam

    • BugFix
    • 12. April 2016 um 20:45

    Welche Webcam.au3 ist das? Probier mal meine (falls sie das nicht ist). Findest du bei meinen UDF, Link ist inder Signatur.

  • In eigener Sache - Netiquette

    • BugFix
    • 11. April 2016 um 18:37

    Ach ja - das sollte kein Diskussionsthread werden, deshalb hänge ich mal ein Schloß vor.

  • In eigener Sache - Netiquette

    • BugFix
    • 9. April 2016 um 13:49

    Ich möchte mal wieder ein Thema ansprechen, das eigentlich selbstverständlich sein sollte - unser Umgang miteinander.

    Es häufen sich leider Posts, in denen statt sachlicher Diskussion ein Wechsel auf verbalen Schlagabtausch im persönlichen Bereich stattfindet. Sei es, dass da ein User postet, mit dem man bereits einmal einen Strauß gefochten hatte oder man sich durch einen Post persönlich angegriffen fühlt - da wird z.Zt. häufiger die Keule rausgeholt und zum Rundumschlag angesetzt.
    Leute - DAS wirft ein schlechtes Licht auf uns!
    Es erinnert eher an frühpubertäres Gebaren, wenn man statt sachlichem Streit einen emotional gesteuerten "Kampf" beginnt.
    Und haben wir das nötig? - Nein!
    Hier im Forum ist soviel Potenzial vereint, da sollte man auch die Nonchalance aufbringen über un/gewollte persönliche Angriffe hinwegzusehen. Natürlich stellt unser Forum auch ein Abbild unserer Gesellschaft dar, mit allen Schattierungen. Doch uns eint eine gemeinsame Leidenschaft - AutoIt.

    Und deshalb meine Bitte: Bevor ihr auf den Senden-Button klickt, lest nochmal in Ruhe, was ihr da geschrieben habt und überlegt, wie ihr reagieren würdet, wenn der Post an euch gerichtet wäre.

    Auf eine lange und angenehme Zeit miteinander.

  • Variable deklarieren - isdeclared

    • BugFix
    • 9. April 2016 um 13:29
    Zitat von AutoMit

    Die Variableninhalte aus Script A sind z.B. Usereingaben und wenn der User die Eingabe nicht vorgenommen hat, ist die Variable nicht belegt.

    Belege diese Variable bei der globalen Deklaration mit einem Wert, z.B. $var = Null und stze diese Variable nach jeder erfolgten Verwendung auf diesen Wert zurück. Dann kannst du jederzeit mit If $var = Null Then ; keine Usereingabe erfolgt arbeiten.

    EDIT: @CentuCore war ein paar Sekunden schneller :D

  • An die Mathematiker

    • BugFix
    • 9. April 2016 um 10:15
    Zitat von Andy

    Wenn schon der Lehrstuhl für die zukünftige Elite der Programmiererzunft empfiehlt, diesen Operator "sparsam" aus o.g. Gründen einzusetzen, dann sollte einem Unkundigen dieses Stück "Technik" besser erspart bleiben.

    Das sehe ich etwas differenzierter.
    Was macht einen großen Teil des Programmierens aus? - Das Finden von sich wiederholenden Programmstrukturen und zur Vereinfachung des Codes, das Auslagern dieser Strukturen in Funktionen.
    Nun schaue ich in ein Skript und entdecke 10...20 mal:

    AutoIt
    Local $variable
    If 'Bedingung' Then
    	$variable = 'Wert-WAHR'
    Else
    	$variable = 'Wert-FALSCH'
    EndIf

    Also sage ich mir, pack das in eine Funktion. Gesagt - getan:

    AutoIt
    Func _If_Then_Else($_condition, $_result_true, $_result_false)
    	If $_condition Then
    		Return $_result_true
    	Else
    		Return $_result_false
    	EndIf
    EndFunc

    Und nun sieht der gleiche Programmteil schon viel ansprechender aus und ist nach wie vor gut lesbar:

    AutoIt
    Local $variable = _If_Then_Else('Bedingung', 'Wert-WAHR', 'Wert-FALSCH')


    Und dann kam AutoIt v3.10.x.x mit dem Ternären Operator.

    AutoIt
    Local $variable = 'Bedingung' ? 'Wert-WAHR' : 'Wert-FALSCH'

    Und He! - der tut genau das, was meine Funktion bisher tat! D.h. es ist nicht nur "syntactic sugar", sondern auch das Abbilden einer bisher von Usern selbst erstellten Funktion in einer neuen Syntax.
    Für mich stellen sich beim Verwenden von Funktionen oder Syntax-Elementen in erster Linie folgende Fragen:
    - Kann ich Code damit schlanker gestalten?
    - Ist die Lesbarkeit des Codes gewährleistet?
    Beides kann kann ich hier absolut bejahen. Selbst das Kapseln mehrer Ternärer Operatoren muß nicht die Lesbarkeit beeinträchtigen, wenn man den Code etwas aufteilt.

    Bsp.
    AutoIt
    Func _FormatSeconds($_sec)
    	Return ( $_sec < 60 ? StringFormat('00:00:%02u', $_sec) : _
                 $_sec < 60*60 ? StringFormat('00:%02u', Floor($_sec/60)) & ':' & _
    			        StringFormat('%02u', Mod($_sec,60)) : _
    			 $_sec < 60*60*24 ? StringFormat('%02u', Floor($_sec/3600)) & ':' & _
                        StringFormat('%02u', Floor(Mod($_sec,3600)/60)) & ':' & _
                        StringFormat('%02u', Mod(Mod($_sec,3600),60)) : _
    			 ( $_sec = 86400 ? "24:00:00" : Floor($_sec/86400) & ' d / ' & _
    					StringFormat('%02u', Floor(Mod($_sec,86400)/3600)) & ':' & _
    					StringFormat('%02u', Floor(Mod(Mod($_sec,86400),3600)/60)) & ':' & _
    					StringFormat('%02u', Mod(Mod(Mod($_sec,86400),3600),60)) & ' h') )
    EndFunc  ;==>_FormatSeconds
    Alles anzeigen

    Abschließend noch etwas zur bisherigen Threadführung:
    Meinungsstreit? - Unbedingt: JA!
    Aber: Bitte vermeidet das Abgleiten auf eine persönliche Ebene. Das dient weder der Problemlösung, noch macht es das Lesen des Threads angenehm.

  • Mehrere Text-Dateien lesen, einen variablen Text suchen und diesen verändern

    • BugFix
    • 8. April 2016 um 22:39
    Zitat von julia.hami

    XX sind immer Zahlen. Oder verstehe ich was falsch?

    Du meinst sicher Ziffern 0-9 :D deshalb wollte ich sicher gehen, Zahlen gibt es auch z.B. in der Form AF30EC (hexadezimale Zahlen) :rolleyes:

  • Mehrere Text-Dateien lesen, einen variablen Text suchen und diesen verändern

    • BugFix
    • 8. April 2016 um 21:55
    Zitat von julia.hami

    nach Codes dieses Formats suchen: XX/XX

    Sag bitte mal genau, welche Werte XX annehmen kann, nur dann kann man ein allgemeingültiges Suchpattern erstellen.

  • 2 Dienste, die gegenseitig voneinander abhängig sind - wie Abhängigkeit auflösen? GELÖST

    • BugFix
    • 4. April 2016 um 23:40

    Das scheint mir wahrscheinlich, es schwirrten Druckaufträge für nicht existente Fax im Spooler rum. Vielleicht war dem User nicht klar, dass er an einem Intranet - PC sitzt. Insofern ist auch die Gefährdung durch Schadsoftware sehr gering.

  • 2 Dienste, die gegenseitig voneinander abhängig sind - wie Abhängigkeit auflösen? GELÖST

    • BugFix
    • 4. April 2016 um 22:41

    @autoBert Kann ich erst sagen, wenn ich davor sitze. Bisher wurde jede Aktion, die ich in Bezug auf den Dienst ausführen wollte, abgeschmettert.

  • Variablen und Pointer

    • BugFix
    • 4. April 2016 um 22:36

    Ich habe diesen Thread bestimmt 5 mal gelesen, ohne mit Sicherheit sagen zu können, was der TE überhaupt will. ;(
    Mein Eindruck: Du hast als erstes nur Verwirrung gestiftet, indem du von Pointern sprichst, obwohl nichts aus deiner sparsamen Beschreibung auf deren sinnvolle Verwendung schließen lässt.
    Wenn du eine Variable im Ursprung nutzen willst, ohne eine Kopie anzulegen, musst du ByRef arbeiten - das wurde dir schon ganz am Anfang empfohlen. Anscheinend hast du diese Empfehlung ignoriert.
    Auch ein Array kannst du ByRef bearbeiten.
    Bring mal ein Bsp. Skript ohne dieses unnütze Pointer-Gedöns (s. X-Y-Problem), dann sehen wir weiter.

  • 2 Dienste, die gegenseitig voneinander abhängig sind - wie Abhängigkeit auflösen? GELÖST

    • BugFix
    • 4. April 2016 um 22:03

    Das ist anscheinend nicht richtig deutlich geworden:
    Ich kann keine Änderungen an dem Dienst vornehmen, da er im Status "wird gestartet" verweilt. Ich kann ihn nicht beenden und nicht den Starttyp ändern.

    Meine Vermutung ist, dass vom User mal eine Software installiert wurde, die diesen Dienst mit geändertem Starttyp nutzen wollte. Hat wohl nicht geklappt und wurde deinstalliert. Übrig blieb dieses Rudiment.

    Werde das mal anschauen, wenn ich wieder dort bin

  • 2 Dienste, die gegenseitig voneinander abhängig sind - wie Abhängigkeit auflösen? GELÖST

    • BugFix
    • 2. April 2016 um 10:54

    Ich habe letztens auf einem PC folgendes vorgefunden:
    - Dienst "Telefonie": Starttyp "Automatisch", Status "Wird gestartet" (ändert sich nicht), abhängig von Dienst "RAS Verbindungsverwaltung"
    - Dienst "RAS Verbindungsverwaltung": Starttyp "Automatisch", Status "Gestartet", abhängig von Dienst (u.a.) "Telefonie"

    Es gelingt mir nicht, den Dienst "Telefonie" zu beenden. Weder per Interaktion im Dienstemenü, noch per Kommandozeilenbefehl. Ursache dafür ist entweder die Tatsache, dass der Dienst ewig im Status "Wird gestartet" verbleibt und/oder dass die Dienste sich wechselseitig bedingen (wie eine Katze, die sich in den Schwanz beißt :D ).
    Ich wollte nun erst mal probieren, ob durch Lösen der Abhängigkeiten der Dienst "Telefonie" beendet werden kann. In der Registry werden Abhängigkeiten unter HKLM\System\CurrentControlset\Services\- dann der entsprechende Servicename und dann der Wert "DependOnService" erfasst. Somit kann ich per Registry-Eingriff das manipulieren. Aber gibt es evtl. auch eine Möglichkeit ohne Registry-Eingriff zum Ziel zu kommen? Rumfummeln an der Registry ist für mich immer das letzte Mittel der Wahl.

    Achja - warum das Ganze: Dadurch, dass der Telefoniedienst nie startet, bekomme ich im (ca.) 30 Sekundentakt immer einen neuen Eintrag im Systemprotokoll: "...Dienst konnte nicht gestartet werden". Das müllt immer das Protokoll zu, sodass der User beim Start mit einer Warnung (Protokoll voll) begrüßt wird. Auswirkungen auf den PC selbst hat es nicht, da der Telefoniedienst eh nicht gebraucht wird. Aber der User ist dann verunsichert.

  • Eigene Funktionen eines Tools in UDF ausgliedern?

    • BugFix
    • 1. April 2016 um 16:20
    Zitat von teamnoobPDB

    ich glaube das hab ich mal bei @BugFix gesehen

    Ja ^^ - nur dass ich das Dictionary für die Ctrl als Local Static innerhalb der ManageVars-Funktion führe, somit keine globalen Vars :thumbup:

  • Eigene Funktionen eines Tools in UDF ausgliedern?

    • BugFix
    • 1. April 2016 um 09:11
    Zitat von Bioshade

    autoBert: Brauch ich nicht testen weil ich so einen Unfug nie machen würde.

    @Bioshade: Und schon ist man mal wieder im schönsten Krieg der Paradigmen. Was du so leichthin als Unfug bezeichnest, ist für andere der heilige Gral der Programmierung (Vermeidung Globaler Variablen). Die Diskussion dazu führt zu keinem (sinnvollen) Ergebnis, da die Vertreter beider Seiten keinen Jota von ihrer Meinung abrücken werden (sonst würdest du solch ein Vorgehen ja kaum als Unfug bezeichnen).
    Ich tendiere da auch in Richtung @Andy - Das Ergebnis sollte vor allem zählen. Vorgaben sind auch immer ein Stück weit Restriktionen. Warum soll man sich zu etwas zwingen, was man selbst als nicht sinnvoll erachtet und ohne dessen man auch zum Ziel kommt?
    Natürlich ist ein Skript, dass schön strukturiert, modular aufgebaut und so für evtl. spätere Änderungen bereit ist eine Augenweide. Aber wie @Andy bereits anmerkte, wird das außer auf der Programmierebene niemand zur Kenntnis nehmen (können) und dem Anwender ist es eh schnuppe und egal.

    Fazit:
    Ich persönlich erachte saubere Strukturen als prima, verdamme aber niemanden, der es nicht gebacken bekommt, wenn am Ende ein gutes Produkt steht.

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™