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

Beiträge von Runa

  • String von Sonderzeichen befreien

    • Runa
    • 26. November 2015 um 13:36
    Zitat von x0r

    @Bioshade freu dich n Keks, ich kann kein "RegExp". Für größere "Dinge" war die Funktion auch nicht gedacht, ich finde nur den "Weg" ziemlich cool, bisher hab ich immer alles einzeln replaced.


    Es geht hier nicht um Dich, oder für wie große Projekte Du Deine Funktion gedacht hattest. Du hast diese Funktion im Scripte-Bereich gepostet. "So bekommst du Feedback und Lob." heißt es in der Kategoriebeschreibung. Auch ist das mehr oder minder DIE Anlaufstelle, wenn man eben mal ein Snippet braucht, was man eben nicht selbst zur Hand hat. Warum also potentiellen anderen Nutzern die schnellere Funktion vorenthalten? Es sind aggressive Reaktionen wie Deine, die mich immer zwei Mal überlegen lassen, bevor ich potentielle Snippets oder Hilfestellungen hier im Forum poste.

  • Eigener "Browser" in Windows 8?

    • Runa
    • 26. November 2015 um 12:08

    chip: Bin ich auch schon drüber gestolpert. Das wäre allenfalls ein "Workaround", da es ein Anpassen der Gruppenrichtlinien erfordert. Es muss aber auch den "offiziellen" Weg geben. Immerhin muss ich zur Installation von anderen Standardprogrammen nicht meine Gruppenrichtlinien anpassen...

  • String von Sonderzeichen befreien

    • Runa
    • 26. November 2015 um 11:56
    AutoIt
    Func _ClearString($strWert, $strChars = "-.,:;#+ß'*?=)(/&%$§!~\}][{`´_""")
    	$strChars = StringRegExpReplace($strChars, "(.)", "\\$1")
    	$sReturn = StringRegExpReplace($strWert, "[" & $strChars & "]", "")
    	Return StringRegExpReplace($sReturn, "[" & StringRegExpReplace($strChars, "[" & $strChars & "]", "") & "]", "") ;// Fängt Fehlfunktion bei Zeichen ab, die nicht mehr gematched werden, wenn sie escaped werden. BSP: d
    EndFunc

    Kommt zu exakt dem selben Ergebnis ... nur schneller :P Getestet über 100.000 Läufe auf der Möhre hier:

    Meins: 0.084690981088042
    Deins: 0.290721040534951

    Meine Funktion war in 99,930% der Fälle schneller - und das bei gleicher Flexibilität :)

  • Eigener "Browser" in Windows 8?

    • Runa
    • 26. November 2015 um 11:23

    Ist leider noch offen... :(

  • SQLite Grundsatzfragen für AnfängerX

    • Runa
    • 20. November 2015 um 09:32

    Die Frage ist grundsätzlich erst einmal, welches SQL-System verwendet wird. Denn SQL heißt nicht gleich SQL. Schon das Erstellen deiner Tabelle funktioniert zum Beispiel nicht in MySQL. Dort müssen nämlich bereits bei der Erstellung schon die erwarteten Werte der Spalte übergeben werden. Einen "Variant"-Typ gibt es bei MySQL nicht.

    Was aber immer gleich ist, sind die Keywörter. So ist zum Anzeigen immer ein SELECT von nöten - zum Beispiel:

    SELECT * FROM ADR WHERE `Geburtstag`='29.02.2014';

    Um einen Datensatz zu ändern brauchst du immer ein Update - und um den sinnvoll zu nutzen brauchst du eine einmalige Spalte. Für gewöhnlich wird dazu in SQL die ID verwendet. Praktisch eine Spalte, die automatisch immer eins hochgezählt wird, und die immer eindeutig ist. Nehmen wir an, die hättest du in deiner Tabelle gehabt ...

    UPDATE ADR SET `PLZ` = '98765' WHERE `ID` = 1;

    Um deine Tabellenstruktur zu verändern brauchst du das Keyword ALTER. Hier auch wieder die Frage: Wie macht SQLite das? MySQL würde es beispielsweise so machen:

    ALTER TABLE ADR ADD `SpalteNachNachname` INT NOT NULL AFTER `Nachname`;


    Und zuletzt das löschen:


    DELETE FROM ADR WHERE `ID` = 1;


    Ziemlich analog dazu ist es auch in SQLite. :)

  • Rechner

    • Runa
    • 19. November 2015 um 12:42
    AutoIt
    While True
    	$msg = GUIGetMsg()
    	If $msg = -3 Then Exit
    	If $msg = $button1 Then button1()
    	button1()
    WEnd
    
    
    Func button1()
    	$Zahl1 = GUICtrlRead($input2)
    	$Zahl2 = GUICtrlRead($input3)
    	$Zahl3 = GUICtrlRead($input4)
    	$Zahl4 = GUICtrlRead($input5)
    	$Zahl5 = GUICtrlRead($input1)
    
    
    	$sData = ""
    	$sErrorMsg = "Daten fehlen"
    
    
    	If $Zahl1 = "" Then $sData = $sErrorMsg
    	If $Zahl2 = "" Then $sData = $sErrorMsg
    	If $Zahl3 = "" Then $sData = $sErrorMsg
    	If $Zahl4 = "" Then $sData = $sErrorMsg
    	If $Zahl5 = "" Then $sData = $sErrorMsg
    	If $Zahl5 =  0 Then $sData = $sErrorMsg
    
    
    	$Ergebnis = ($Zahl1 + $Zahl2 + $Zahl3 + $Zahl4) / $Zahl5
    	If $sData <> $sErrorMsg Then $sData = $Ergebnis
    	If $sData = GUICtrlRead($input6) Then Return
    	Return GUICtrlSetData($input6, $sData)
    EndFunc   ;==>button1
    Alles anzeigen
  • GUI Resize - aber nur vertikal

    • Runa
    • 16. November 2015 um 16:45

    Das glaube ich kaum. Mein Musikgeschmack ist keineswegs zu beschreiben... :)

  • Betätigung des Ein-/Aus-Tasters am Notebook erkennen

    • Runa
    • 13. November 2015 um 09:17

    BugFix : Ich glaube die werden alle an die Shutdown.exe geschickt - bloß mit unterschiedlichen Parametern? :)

  • GUI Resize - aber nur vertikal

    • Runa
    • 11. November 2015 um 13:42

    AutoTim: Ja, 64. :P

  • GUI Resize - aber nur vertikal

    • Runa
    • 5. November 2015 um 16:02

    Wo gehobelt wird und so... *fg*

  • GUI Resize - aber nur vertikal

    • Runa
    • 5. November 2015 um 14:51

    Auf OnEvent musst du nicht umbauen:

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    
    
    Global $hGUI = GUICreate('Test', 600, 600, -1, -1, BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU, $WS_SIZEBOX))
    GUISetState(@SW_SHOW, $hGUI)
    
    
    Global $aWinPos = WinGetPos($hGUI)
    GUIRegisterMsg($WM_GETMINMAXINFO, "MY_WM_GETMINMAXINFO")
    
    
    While True
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    	EndSwitch
    WEnd
    
    
    Func _End()
    	Exit
    EndFunc   ;==>_End
    
    
    Func MY_WM_GETMINMAXINFO($hWnd, $msg, $wParam, $lParam)
    	If $hWnd = $hGUI Then
    		Local $minmaxinfo = DllStructCreate("int;int;int;int;int;int;int;int;int;int", $lParam)
    		DllStructSetData($minmaxinfo, 7, $aWinPos[2]) ; min X
    		DllStructSetData($minmaxinfo, 8, 100) ; min Y
    		DllStructSetData($minmaxinfo, 9, $aWinPos[2]) ; max X
    		DllStructSetData($minmaxinfo, 10, @DesktopHeight) ; max Y
    	EndIf
    EndFunc   ;==>MY_WM_GETMINMAXINFO
    Alles anzeigen


    Oscar : Bei dir hat sich ein Fehler eingeschlichen:

    WinGetPos gibt einen Array zurück, in dem 0 die X-Position, 1 die Y-Position, 2 die Breite und 3 die Höhe ist - in deinem Beispiel oben verwendest du 0 als Breite. ;)

  • Hilfe Aufrufen in Scite nicht möglich

    • Runa
    • 1. November 2015 um 03:02

    Bekommst du denn irgendeine Fehlermeldung?

  • Outlook Kontakte editieren

    • Runa
    • 30. Oktober 2015 um 08:41

    Die Feldbezeichnungen sind identisch. ;)

  • Excel Liste in Web-Browser eingeben

    • Runa
    • 30. Oktober 2015 um 08:39

    Auch in einem noch so sorgfältig geprüften und geschriebenem Programm können Fehler auftreten. Das ist einer der Gründe warum professionelle Programme eine Update-Routine haben - neben der Beseitigung von Sicherheitslücken.

    Es spricht nichts gegen eine abschliessende Prüfung der Daten aus dem Programm - bloßdafür. Ich werde so ein Programm wie hier gefordert nicht schreiben. Alleine schon weil ich die Verantwortung für Fehler die aufgrund einer solch fahrlässigen Vorgehensweise verursacht wurden nicht übernehmen möchte.

  • Outlook Kontakte editieren

    • Runa
    • 29. Oktober 2015 um 15:02
    Code
    #include <OutlookEX.au3>
    
    
    Global $oOutlook = _OL_Open()
    $aItems = _OL_ItemFind($oOutlook, "*\Kontakte", $olContact, '[LastName] = "Schmitt"')
    If @error = 0 Then
    	_ArrayDisplay($aItems, "OutlookEX UDF:  - Find contacts by lastname")
    Else
    	MsgBox(48, "OutlookEX UDF - Kontakte", "Error finding a contact. @error = " & @error & ", @extended: " & @extended)
    EndIf
    
    
    ; Dein Part ... wie kommst du nun an das Kontakt-Element? :) Speichere das in die Variable $oItem und du bist fertig - hier dann simple Nachnamenänderung
    ;~ $oItem = _OL_ItemModify($oOutlook, $oItem, "*\Kontakte", '[LastName] = "Schmidt"')
    Alles anzeigen

    Einen Schritt hab ich ausgelassen :P

  • Excel Liste in Web-Browser eingeben

    • Runa
    • 29. Oktober 2015 um 09:44

    Du willst nicht ernsthaft, dass ein vollautomatisiertes Programm in deinem Namen kostenpflichtig Dinge bestellen kann, oder? Denn das wäre alles andere als eine gute Idee.

    Es kann immer mal ein Fehler auftreten - auch im besten Programm, kann dieser zu schwerwiegenden Problemen führen. Beispiel: Die Artikelnr. hat nen kleinen Dreher drin oder so etwas. Ist zwar nur eine Kleinigkeit, kann aber durchaus einen Preisunterschied von 10.000 € ausmachen - und das ohne den Businessbereich zu betrachten. Ich empfehle daher: Niemals - und das wiederhole und betone ich mit Nachdruck: NIEMALS - ein Programm vollautomatisiert bestellen lassen. Die bessere Alternative wäre, das Programm diese Dinge alle eingeben zu lassen und sie in den Warenkorb zu "werfen", und dann den Warenkorb - so wie er ist - anzeigen zu lassen, damit etwas menschliches drüber gucken kann, und dann - wenn alles korrekt ist - selbst diesen einen Klick macht.

  • Musikplayer mit Titel

    • Runa
    • 28. Oktober 2015 um 13:28

    Dein Radiosender sendet keine Tags mit, die der Media-Player auslesen kann. Ansonsten ginge es im übrigen so:

    Code
    $WMP = ObjCreate("WMPlayer.OCX")
    $WMP.URL = "http://www.jumpradio.de/static/webchannel/jump_live_channel_low.m3u"
    $WMP.Controls.Play()
    HotKeySet ( "{F5}", "stop")
    
    
    While Sleep(1000)
       $sTitle = "'" & $WMP.currentMedia.GetItemInfo("Title") & "'"
       ConsoleWrite($sTitle & @CR)
    WEnd
    
    
    Func stop()
       Exit
    EndFunc
    Alles anzeigen
  • Schleife bis Fenster vorhanden ist

    • Runa
    • 28. Oktober 2015 um 12:57

    WinWait wartet auf ein Fenster. WinActive fragt ab, ob ein Fenster aktiv ist. WinActivate aktiviert ein Fenster.

    Oder anders formuliert:

    Die Prüfung, ob dein Fenster überhaupt existiert, findet erst nach dem Aktivieren des möglicherweise nicht existenten Fensters statt.. und warten tut die Funktion WinWait auch nicht lange, da der Timeout mit 10 Sekunden recht kurz angelegt ist... spielt aber auch kaum eine Rolle: Denn du fragst das möglicherweise nicht existierende Fenster vorher bereits ab, und speicherst das möglicherweise leere Handle ab und wartest auf dieses.

    Oder anders formuliert: Du kannst oben - statt WinExists - WinWait mit der gleichen Syntax verwenden, und unten, wo du derzeit "WinWait" hast, solltest du eher - wie Gandalf bereits schrieb - WinWaitActive verwenden. Denn das wartet, bis das angegebene Fenster das Aktive Fenster ist.

  • Mehrzeilige Eingabe aus GUI Edit per Tastendruck in Word eingeben

    • Runa
    • 25. Oktober 2015 um 22:26

    Das Problem ist, dass die Edits CRLF mitspeichern - nicht Enter. ;) Und das Dokument behandelt CRLF nicht wie Enter:

    Code
    Func startf4 ()
    	$text = StringReplace($text, @CR, "")
    	$text = StringReplace($text, @LF, "{Enter}")
       Send ($text)
    EndFunc
  • Selbstschutz mit AutoIT

    • Runa
    • 17. Oktober 2015 um 01:30

    Da IT-Sicherheit ein Stützpfeiler unseres IT-Unternehmens ist hier mal ein paar grundlegende Fragen die alle durchaus ernst gemeint sind:

    1. Warum verwendet ein Sicherheitsunternehmen überhaupt Kaspersky? Nahezu jedes bekanntere Unternehmen in diesem Bereich nutzt professionellere AV-Systeme die eben nicht bloß Heimanwenderversion + Kannst du Zentral verwalten ist. Denn mehr ist die Businessreihe von Kapersky nicht.

    2. Welches unterirdische System läuft den Dort dass das zu merklichen Leistungseinbußen führt? Intern sind Übertrsgungsraten von bis zu 1GB/s mittlerweile Business-Standard. Extern ist die langsamste Leitung bei unseren Kunden bei einem Download von 100MB/s. Entweder habt ihr also dort eine extrem schlechte Hardware vorliegen, verdrehte Adern in der hoffentlich strukturierten Verkabellung oder aber der Kaspersky ist schlecht was und zu Frage 1 zurückführt oder aber falsch konfiguriert was zu Frage 3 führt.

    3. Was für ein IT-Sicherheitsunternehmen wollt ihr bitte sein? Ihr - vielmehr Du - versuchst AutoIt-Scripts klare Malware-Funktionalitäten zu verpassen. Jedes halbwegs brauchbare Antivirenprogramm listet AutoIt grundsätzlich Schonmal als potentiellen Virus - nicht nur wenn per UPX gepackt - und gerade wenn solche Dinge anfangen wie Prozess verstecken … Klarer Fall von Malware für jeden brauchbaren AntiVirus.

    Für mich ist klar: Du hast weder Ahnung von IT-Sicherheit, noch Ahnung davon welche Auswirkungen deine Änderungen haben würden. Und schließlich - und das ist der Hauptgrund warum ich jedem Rate dieses Thema zu ignorieren: Ist Kaspersky Business so dermaßen weit hinter den Wettbewerbern dass dieses zum einen kein Idle-Scan, Shadowscan und schon gar keinen geplanten Scan kann? Das bezweifle ich doch stark. Ebenso wie die Tatsache das Kaspersky nicht aus ihrer Dummheit lernt und im Gegensatz zu allen anderen Business - Antivirenprogramme überhaupt die Möglichkeit für den Normaluser lässt einen Scan zu stoppen. Und mal ab davon: Es ist ein mehr als lächerlicher Witz einen AV zu betreiben, der aus der Businessreihe stammt und dann dem Endnutzer der nicht ohne Grund dafür zahlt dass die IT-Systeme sicherheitstechnische überwacht werden ein Tool in die Hand zu drücken mit den Worten dass das Programm ja zu Performance-Verlust führt. Das ist nicht nur extrem grob fahrlässig und somit ein Armutszeugnis eines IT-Sicherheitsunternehmens das vertraglich die VOLLE Haftung übernehmen muss sondern schlicht schlecht informiert und offensichtlich kein Stück erfahren im Bereich der IT-Sicherheit.

    Gerne kannst du die it-sa besuchen und dich dort gehörig zu den Themen informieren. Dort findest du jede Menge Experten die dir schon zu der Toolidee einfach nur mit einem Facepalm antworten - sofern sie nicht zwischen Lachen und Heulen pendeln. Für mich hast du dir die Story nur ausgedacht um die Forenregeln umgehen zu können - denn selbst nach nur einem einzigen Workshop in dem Bereich weißt du, dass schon der Grundgedanke absurd ist. Wenn es wahr sein sollte dann sitzt du bloß in der Telefonzentrale und hast mit der It-Sicherheit nix zu tun.

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™