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

  • Clipboard mit Grafik-Kopie ausstatten

    • BugFix
    • 15. Juli 2017 um 10:32
    Zitat von autoiter

    Ich glaube eher an lokale Probleme. Schlechtes Internet oder so.

    Vermutlich irgendsowas undefinierbares...
    Das Zertifikat von AutoIt zickt bei mir auch an manchen Tagen, da bekomme ich ständig eine Sicherheitswarnung bei jedem Seitenaufruf in der Domain. Und dann ist wieder monatelang alles in Butter.

  • SmartWatch - Probleme

    • BugFix
    • 15. Juli 2017 um 10:22

    Hi,
    ich habe mir eine Otium Gear S (DZ09) zugelegt (Kauf beim China-Mann für ca. 25 €).
    Das Teil ist erstaunlich sauber verarbeitet, hatte ich bei dem Preis nicht erwartet. Dass man für die Smartwatch eine eigene SIM-Karte einlegen kann, ist sicher ein nettes Feature - war für mich aber nicht relevant, ebensowenig wie die integrierte 1,3 MP Kamera. Ich wollte in erster Linie eine Uhr. Zweitens wollte ich Benachrichtigungen vom Smartphone erhalten (neue Mail/WhatsApp/verpasster Anruf etc. pp.).

    - Versuch 1 -
    BTNotification-App installiert und aktiviert
    Koppeln über Bluetooth - OK
    gekoppelte Profile: "Anruf Audio" und "Stereo Audio"
    Ergebnis:
    Alle Anrufe (Klingelton UND Gespräch selbst) landeten jetzt auf der Watch und wurden über deren Lautsprecher ausgegeben. :Face:
    Benachrichtigungen werden nicht durchgereicht. :S


    Gestern wurde von LG endlich Android 7.0 für mein Smartphone bereitgestellt - frisch installiert und:
    - Versuch 2 -
    Koppeln über Bluetooth - OK
    gekoppelte Profile: "Anruf Audio" und "Stereo Audio" und zusätzlich gibt es jetzt: "Inhalt" Zugriff auf Kontakte und Anruflisten
    Ergebnis:
    Alle Anrufe (Klingelton UND Gespräch selbst) landeten weiterhin auf der Watch und wurden über deren Lautsprecher ausgegeben.
    Benachrichtigungen werden durchgereicht. :rolleyes:

    Ich habe dann mal probiert, die Profile einzeln zu-/abzuschalten. Ohne "Anruf Audio" bekomme ich keine Benachrichtigungen. Schalte ich es ein, bekomme ich Nachrichten und kann nicht mehr vernünftig telefonieren.
    Wobei nach jedem neuen Verbinden von Smartphone und Watch automatisch die Profile aktiviert werden.

    Meine Frage:
    Hat jemand Erfahrung und kann mir einen Tipp geben, wie ich es erreiche die Smartwatch dazu zu bewegen nur Notifications entgegenzunehmen und ansonsten eine brave Uhr zu sein?

    Grundsätzlich bin ich bei dem Preis auch mit der reinen Uhr-Funktion zufrieden, da das Teil doch optisch recht ansprechend ist. Aber für "nur" Uhr wäre es eigentlich etwas too much.

  • Treeview füllen und nutzen

    • BugFix
    • 14. Juli 2017 um 08:34

    Schau dir mal in der Hilfe die Befehle zur Treeview-UDF (GuiTreeView.au3) an. Dort sind auch ausreichend Beispiele zum Erstellen, Befüllen, etc. vorhanden.
    Erstelle ein lauffähiges Bsp., an dem du uns dann deine Probleme zeigst.
    Du findest die UDF-Hilfe auch online (https://www.autoitscript.com/autoit3/docs/libfunctions.htm), die TreeView-Funktionen beginnen alle mit: _GuiCtrlTreeView_

  • Probleme mit Run und Leerzeichen im exe-Pfad

    • BugFix
    • 14. Juli 2017 um 08:24

    Ein viel zu häufig vergessener Befehl ist StringFormat. Damit schreibt man den Befehl genau, wie in einer Kommandozeile (nur mit Platzhaltern) formatiert:

    AutoIt
    $sXPDFInfo = "D:\User\Desktop\Neuer Ordner(3)"
    $sPDFFile = "pdfinfo.exe"
    $sCmd = @ComSpec & ' /c ""' & $sXPDFInfo & '" "' & $sPDFFile & '""'
    ; sCmd: C:\Windows\system32\cmd.exe /c ""D:\User\Desktop\Neuer Ordner(3)" "pdfinfo.exe""
    
    
    ; oder
    $sCmd = StringFormat('%s /c "%s" "%s"', @ComSpec, $sXPDFInfo, $sPDFFile)
    
    
    Run($sCmd, @ScriptDir, @SW_HIDE, 2)
    Alles anzeigen

    Vereinfacht m.M. die Angelegenheit und man sieht auf den ersten Blick, was ausgeführt wird.

  • Text verschlüsseln/entschlüsseln

    • BugFix
    • 12. Juli 2017 um 13:52

    Wenn du im Code ein Passwort ablegen willst(musst) ist es, wie vorab gesagt, kein besonders sicherer Zustand. Ein wenig aufpeppen geht, indem du dass Passwort mit sich selbst verschlüsselst und den verschlüsselten Wert im Code ablegst. Ein vom User eingegebenes Passwort wird dann niemals entschlüsselt, sondern wiederum nur mit sich selbst verschlüsselt und mit dem hinterlegten Wert abgeglichen. Ist für den mit AutoIt möglichen Sicherheitsrahmen recht brauchbar (wenn auch nicht wirklich sicher).

  • Kleine Programmierung

    • BugFix
    • 9. Juli 2017 um 00:10
    Zitat

    Warning: If You Found A Private Key With Balance But Not Belongs To You, Before you moves Any of its FUNDS, You should consults your lawyer about local law against Crypto Currencies.

    Ich bin juristisch nicht dermaßen bewandert, dass ich sagen kann, wie die gesetzlichen Regelungen zu dieser Thematik in Deutschland sind.

    Klar ist jedenfalls:
    Der TE möchte die Seiten durchsuchen nach Guthaben und sich diese transferieren (ob das legal oder nicht ist - s.o.).

    Ich denke niemand hat Interesse daran, sein Hirnschmalz einzusetzen, damit sich ein Dritter einen schmalen Fuß macht und kassiert.
    In diesem Sinne: CLOSED

  • Datum in DateTimePicker in externer Anwendung ändern

    • BugFix
    • 2. Juli 2017 um 22:48

    Warum verwendest du nicht die Funktionen der GuiDateTimePicker.au3?
    Das Handle für das TimePicker-Control kannst du abfragen und für die UDF verwenden.

  • [gelöst] Textlänge in Pixel ermitteln

    • BugFix
    • 1. Juli 2017 um 09:33
    Zitat von BigRox

    Wenn GDI+ schon vorm Aufruf der Funktion mit _GDIPlus_Startup() gestartet wurde, beendet dies Funktion dann einfach GDI+, weil da ja am Ende _GDIPlus_ShutDown() aufgerufen wird, oder läuft GDI+ auch nach dieser Funktion dann noch weiter, da ja dann auch noch einige GDI+-Objekte existieren ?

    Der Mechanismus ist folgender:
    Über einen UDF-internen Zähler wird festgestellt, wie oft StartUp bzw. ShutDown aufgerufen wird. Dabei wird der Zähler rauf/runter gesetzt. Nur wenn er bei 0 ist, wird beim ShutDown auch die Dll geschlossen.

  • [gelöst] Textlänge in Pixel ermitteln

    • BugFix
    • 26. Juni 2017 um 15:44

    Ja, Oscar - ich glaube über die Funktion hatten wir schon mal gesprochen. Sie ermöglicht aber nicht, die Textlänge vor Erstellen des Ctrl zu ermitteln. Ist ja klar - irgendwo muß der Text ja mit seiner Formatierung abgemessen werden.
    Wenn du verschiedene Texte in einem Ctrl anzeigen möchtest, brauchst du die max. Länge um folgende Ctrl genau positionieren zu können. Also eher eine Funktion, die während der Skriptentwicklung Anwendung findet, weniger im fertigen Skript.

  • [gelöst] Textlänge in Pixel ermitteln

    • BugFix
    • 26. Juni 2017 um 14:37

    Dafür hatte ich mal folgende Funktion erstellt:

    AutoIt
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _GetTextMeasure
    ; Description ...: Ermittelt den Platz zur Darstellung eines Textes unter Angabe von Größe, Attributen und Font
    ; Syntax.........: _MeasureText($sText, $iSize, $iStyle, $sFont)
    ; Parameters ....: $sText    Der auszumessende Text
    ;                  $iSize    Die Größe des Fonts in pt
    ;                  $iStyle   Kombination der Textattribute
    ;                            0 - Normal weight or thickness of the typeface (Standard)
    ;                            1 - Bold typeface
    ;                            2 - Italic typeface
    ;                            4 - Underline
    ;                            8 - Strikethrough
    ;                  $sFont    Name des verwendeten Fonts (Standard='Arial')
    ; Return values .: Array[Höhe, Breite]
    ; Author ........: BugFix ( AutoIt@bug-fix.info )
    ; ===============================================================================================================================
    #include-once
    #include <GDIPlus.au3>
    Func _GetTextMeasure($sText, $iSize=8.5, $iStyle=0, $sFont='Microsoft Sans Serif')
    	_GDIPlus_Startup()
    	Local $hGUI = GUICreate("", 800, 400)
    	GUISetState(@SW_HIDE, $hGUI)
        Local $hFormat = _GDIPlus_StringFormatCreate(0)
        Local $hFamily = _GDIPlus_FontFamilyCreate($sFont)
        Local $hFont = _GDIPlus_FontCreate($hFamily, $iSize, $iStyle, 3)
        Local $tLayout = _GDIPlus_RectFCreate(0, 0, 0, 0)
    	Local $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
        Local $aInfo = _GDIPlus_GraphicsMeasureString($hGraphic, $sText, $hFont, $tLayout, $hFormat)
        Local $iWidth = Ceiling(DllStructGetData($aInfo[0], "Width"))
        Local $iHeight = Ceiling(DllStructGetData($aInfo[0], "Height"))
    	_GDIPlus_StringFormatDispose($hFormat)
        _GDIPlus_FontDispose($hFont)
        _GDIPlus_FontFamilyDispose($hFamily)
        _GDIPlus_GraphicsDispose($hGraphic)
        _GDIPlus_ShutDown()
    	GUIDelete($hGUI)
    	Local $aOut[2] = [$iHeight,$iWidth]
    	Return $aOut
    EndFunc  ;==>_GetTextMeasure
    Alles anzeigen
  • _Arraytostring kein Delimiter?

    • BugFix
    • 26. Juni 2017 um 11:18

    Du hast den falschen Parameter besetzt für dein Trennzeichen. Der erste Trenner ist für Spalten, der zweite für Zeilen. ;)
    So soll die Zeile aussehen:
    $aVDaten = _ArrayToString($StringSplit, "", 2, UBound($StringSplit)-2, "/")

    P.S. Bitte solch kleine Datei nicht anhängen, sondern mit Code-Tags (Symbol </> im Editor) einfügen.

  • Tooltip - Inhalt von Eingabefeld

    • BugFix
    • 21. Juni 2017 um 08:40

    @Bitnugger: Da hast du es dir aber ziemlich kompliziert gemacht ;)
    Einen Großteil deines Codes kannst du eindampfen, wenn du GuiGetCursorInfo verwendest, um die ID zu ermitteln, über der sich die Maus bewegt.

    Zitat von AutoIt-Hilfe

    GUIGetCursorInfo

    Gets the mouse cursor position relative to GUI window.

    Success: a five-element array that containing the mouse cursor information:
    $aArray[0] = X coord (horizontal)
    $aArray[1] = Y coord (vertical)
    $aArray[2] = Primary down (1 if pressed, 0 if not pressed)
    $aArray[3] = Secondary down (1 if pressed, 0 if not pressed)
    $aArray[4] = ID of the control that the mouse cursor is hovering over (or 0 if none)
  • Tooltip - Inhalt von Eingabefeld

    • BugFix
    • 20. Juni 2017 um 15:59

    Alternativ könntest du auch den Rechtsklick auf das Input auswerten und dann den Inhalt per MsgBox ausgeben.

  • Variablen Deklaration Unterschiede

    • BugFix
    • 20. Juni 2017 um 12:13

    Um Probleme mit den Scopes zu vermeiden, sollte man sich angewöhnen (zumindest bei mehr als 10..20 Zeilen Skript), immer mit Scope zu deklarieren. Es ist zwar "nett gemeint", dass man auch ohne Scopeangabe deklarieren kann, aber das verleitet auch zu Fehlern.

  • GuiCtrlCreate / GuiCtrlSetData programmatisch erstellen / beschreiben

    • BugFix
    • 13. Juni 2017 um 10:48

    Global $aInput[2] = [1]
    Das ist nicht die Zuweisung für den INdex "2", sondern Deklaration mit Zuweisung. Linke Seite Deklaration mit Anzahl der Elemente (2), rechte Seite die Werte. Da nur ein Wert eingetragen ist, wird dieser dem Index "0" zugeordnet. Kannst ja mal in mein Array-Tut (s. Signatur) schauen. ;)

  • GuiCtrlCreate / GuiCtrlSetData programmatisch erstellen / beschreiben

    • BugFix
    • 13. Juni 2017 um 10:23

    Hier mal aus meiner Beispielsammlung: Erstellung Dynamischer Control.
    Wenn du das in eine Schleife packst kannst du eine definierte Anzahl Control erstellen. Das Resizing benötigst du dann sicher nicht.

    AutoIt
    Global $GUI, $aInput[2] = [1], $btAdd
    
    
    $GUI = GUICreate('Test', 400, 50)
    $aInput[1] = GUICtrlCreateInput('', 10, 10, 300, 21)
    GUICtrlSetResizing(-1, 802) ; $GUI_DOCKALL
    $btAdd = GUICtrlCreateButton('Add Input', 320, 10, 70, 21)
    GUICtrlSetResizing(-1, 802) ; $GUI_DOCKALL
    GUISetState()
    
    
    While 1
    	Switch GUIGetMsg()
    		Case -3
    			Exit
    		Case $btAdd
    			_NewCtrl()
    	EndSwitch
    WEnd
    
    
    Func _NewCtrl()
    	Local $iDiff = 31     ; == Abstand + Höhe ==> 10 + 21
    	Local Static $iY = 10 ; == Startwert vom ersten Ctrl
    	$iY += $iDiff
    	$aInput[0] += 1
    	ReDim $aInput[$aInput[0]+1]
    	Local $aWin = WinGetPos($GUI)
    	WinMove($GUI, '', $aWin[0], $aWin[1], $aWin[2], $aWin[3] + 31)
    	$aInput[$aInput[0]] = GUICtrlCreateInput('', 10, $iY, 300, 21)
    	GUICtrlSetResizing(-1, 802) ; $GUI_DOCKALL
    EndFunc
    Alles anzeigen
  • Stottern unter Windows 10

    • BugFix
    • 4. Juni 2017 um 10:21

    Ich würde etwas anders herangehen, als mit Try & Error alles mal abzustöpseln und sehen, ob was passiert.

    <Task Manager> <Leistung> --> Ressourcenmonitor starten. Nun kannst du mal ganz gezielt beobachten, ob dort zyklisch Spitzen auftreten (CPU, RAM, Netzwerk). Denn ein kurzes Einfrieren muß eine Spitzenlast in einer Komponente mit sich bringen.

    Der Gedanke mit den USB-Komponenten ist durchaus überdenkenswert, denn häufig werden USB-Treiber nicht richtig installiert und im Hintergrund versucht das System "es zu richten". Konsequenterweise sollten dann aber über den Gerätemanager rigoros alle USB-Komponenten deinstalliert werden. Anschliessend nach neuen Geräten suchen lassen und alles wird frisch installiert.

    @BLinz: Bei deiner systematischen Fehlersuche hast du aber vergessen: Immer nur eine Änderung/Überprüfung vornehmen und dann erneut testen, ansonsten hast du u.U. den Fehler "weggesucht", was dir zwar temporär hilft, aber nicht wirklich sinnvoll ist, falls das Problem erneut auftritt.

  • AutoIt und Chip-Installer... :-)

    • BugFix
    • 2. Juni 2017 um 09:00
    Zitat von alpines

    Predigen aber, dass man von E-Mails die Anhänge nicht öffnen soll

    In dem Zusammenhang finde ich es immer abartig, wenn aus dem Hause Microsoft das Thema Sicherheit aufgegriffen wird. (Win 10 - jetzt soooo viel mehr Sicherheit für den User bla-bla-kotz). Dabei verhindert M$ hartnäckig in jeder OS-Version, dass unerfahrene User überhaupt sehen können, was für Dateitypen auf irgendwelchen Datenträgern sind - Standardeinstellung: "Erweiterungen bei bekannten Dateitypen ausblenden". :Face:

  • Schließen einer "ge - run() - ten" Anwendung deaktivieren

    • BugFix
    • 1. Juni 2017 um 17:34
    Zitat von AutoItler

    gar nicht brauche.

    Das siehst du falsch. :/
    Der Dummy diente nur zur Verdeutlichung. dass <F4> normal funktioniert, <Alt+F4> aber ohne Wirkung ist. Und dazu ist der Hook zwingend notwendig.

  • Benennung von Anhängen in Forumsbeiträgen

    • BugFix
    • 31. Mai 2017 um 20:13

    Das Thema Speichern-und-Wiederfinden ist ja ein absoluter Dauerbrenner.
    Ich stamme ja noch aus der Zeit, als Computer Laufen lernten. Da war ausser Speichern in Ordner-Unterordner-UnterUnterordner... eh nichts möglich. Dieses eigentlich recht sinnvolle System halte ich im Wesentlichen bei.
    Heute haben wir sauschnelle Rechner, riesige Festplatten und brauchen uns an keine Speicherkonventionen halten. So wie in der Lagerwirtschaft die Chaoslagerung (Alles wird dort abgelegt, wo gerade Platz ist, dadurch verringern sich die Wege und Zeiten beim Konfektionieren) höchste Effektivität garantiert, ist Speichern von Daten ein ähnlicher Vorgang. Hier ist Verwaltung der Daten über ein System mit Tags optimal. Ich nutze sowas auf der Arbeit. Zu Belegen werden Tags mit gespeichert. Über eine browserähnliche Oberfläche kann ich google-like alle Dokumente nach den Tags (oder auch Volltext) durchsuchen. Das wird m. M. nach in Zukunft auf allen Systemen Standard werden. Dateien unter "sinnvollen" Namen speichern? - Wozu? - Beim Speichern Taggen und es kann viel effektiver gesucht werden.
    Ich nutze zum Suchen in meinen Skripten immer "Suche in Dateien". Das geht bei meinen ca. 1500 Skripten in ca. 5 - 10 Sekunden über die Bühne und ich bekomme in SciTE die kpl. Code-Zeile, in der der Begriff gefunden wurde ausgegeben. Wenn ich also in fremde Skripte eine Kommentarzeile einfüge mit Tags, die den Inhalt des Skripts verdeutlichen, kann ich mithilfe dieser Tags in Dateien Suchen.

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™