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

  • Fremddateien "includen" (ohne FileInstall)

    • BugFix
    • 17. September 2011 um 13:35

    Kleine Änderungen, s. Post #1

  • _GUICtrlListView_SortItems sortiert nicht korrekt

    • BugFix
    • 16. September 2011 um 16:36
    Zitat von BugFix

    Schau dir in der GuiListview.au3 die Funktion _GUICtrlListView_SortItems an - dort diehst du genau, die Verwendung.

    Zitat von DerSchatten

    Beim klick auf die Spalte wird nochmal in die selbe Richtung sortiert, erst beim zweiten Klick wechselt die Sortierung.


    Hättest du gemacht, was ich vorgeschlagen habe, würdest du das Problem auch erkennen. Du mußt zuerst den aktuellen Status (Sortierrichtung) auslesen und diesen dann einfach mit BitXOr switchen - ganz genau so, wie es in der benannten Funktion auch durchgeführt wird. ;)

  • _GUICtrlListView_SortItems sortiert nicht korrekt

    • BugFix
    • 15. September 2011 um 22:06

    Tipp:
    Schau dir in der GuiListview.au3 die Funktion _GUICtrlListView_SortItems an - dort diehst du genau, die Verwendung.

  • _GUICtrlListView_SortItems sortiert nicht korrekt

    • BugFix
    • 15. September 2011 um 21:15
    Zitat von DerSchatten

    Gibt es eine Möglichkeit beim starten des Programms die Sortierungspfeile in die Spaltenüberschrift zu bekommen?


    Auch hier hilft die Hilfe: _GUICtrlHeader_SetItemFormat ;)

  • _GUICtrlListView_SortItems sortiert nicht korrekt

    • BugFix
    • 15. September 2011 um 20:40
    Zitat von DerSchatten

    Das scheint nicht dokumentiert zu sein.


    Wenn man lesen kann schon:

    Zitat

    $fNumbers [optional] Behandelt numerische Strings als Zahlen

    Default werden die numerischen Strings als Zahlen betrachtet, also mußt du auf False setzen. ;)

  • Input mit grauem Infotext - auch wenn Fokus auf Input

    • BugFix
    • 15. September 2011 um 19:12
    Zitat von Cheater Dieter

    Nochwas: Im Code steht der Pfad C:\Program Files\K-Meleon1.6.0_Beta2_en-US\k-meleon.exe, der bei mir aber gar nicht existiert.


    Wer lesen kann ist klar im Vorteil. :D

    Zitat

    (die Befehlszeile in Run ist auf meinen Browser zugeschnitten, für die Darstellung der Funktionsweise aber nicht wichtig)


    Habe diesen Hinweis jetzt rot eingefärbt. ;)

  • Input mit grauem Infotext - auch wenn Fokus auf Input

    • BugFix
    • 15. September 2011 um 19:08
    Zitat von autoBert

    Danach läuft es zwar aber der von dir versprochene Effekt mit dem Hinweistext bleibt aus. Das Input ist bei mir unter XP SP3 sofort weis und der Hineistext fehlt,

    Ich habe es jetzt mal unter XP getestet - funktioniert, wie gewollt:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Zitat von Fresapore

    Allerdings ist bei mir ein komischer Effekt aufgetreten.
    Wenn man etwas eingibt, und man dann die eingegebenen Zeichen löscht, und neues eingibt, erscheinen beim mehrmaligen wiederholen zuvor eingegebene Zeichen, wenn man Backslash drückt..

    OK, war bei mir zwar nicht sichtbar - sollte aber mit einer jetzt eingefügten Änderung ausbleiben.

    Bilder

    • Input_grey.jpg
      • 16,55 kB
      • 328 × 169
  • Input mit grauem Infotext - auch wenn Fokus auf Input

    • BugFix
    • 15. September 2011 um 12:00

    Ihr kennt ja sicher die Lösung um grauen Infotext in einem Input anzeigen zu lassen.
    Der Nachteil war, dass dieses Input nicht den Fokus haben darf, damit dieser Text gezeigt wird.
    Ich habe hier mal eine Lösung erstellt, die das umgeht.
    Zwar hat das Input den Fokus nicht wirklich, aber optisch entsteht der Eindruck, als ob das Input den Fokus hat (das Caret blinkt am Inputanfang vor dem grauen Infotext). Der User muß auch nicht erst in das Input klicken, sondern kann sofort schreiben. Mit dem ersten geschriebenen Zeichen findet dann der Fokuswechsel zum tatsächlichen Input statt.
    Falls der Inhalt des Input gelöscht wird, erscheint sofort wieder der graue Infotext.

    Hier das Bsp. (die Befehlszeile in Run ist auf meinen Browser zugeschnitten, für die Darstellung der Funktionsweise aber nicht wichtig):

    Edit: Der von Fresapore beschriebene Effekt sollte jetzt nicht mehr auftreten.

    Spoiler anzeigen
    [autoit]

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

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

    $hGui = GUICreate('Web Application', 300, 30);, @DesktopWidth-310, @DesktopHeight-60)
    $cDummy = GUICtrlCreateInput('', 8, 6, 1 , 20)
    $cIn = GUICtrlCreateInput('', 5, 5, 250, 20)
    GUICtrlSendMsg($cIn, 0x1501, 0, "Bitte Web-Adresse oder Suchtext eingeben")
    $btSearch = GUICtrlCreateButton('?', 255, 5, 20, 20)
    $btLink = GUICtrlCreateButton('>', 275, 5, 20, 20)
    GUISetState()
    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

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

    While 1
    Switch GUIGetMsg()
    Case -3
    Exit
    Case $btSearch
    $s2Search = GUICtrlRead($cIn)
    If $s2Search <> '' Then ShellExecute("http://www.google.de/search?q=" & $s2Search)
    Case $btLink
    $sLink = GUICtrlRead($cIn)
    If $sLink <> '' Then Run('"C:\Program Files\K-Meleon1.6.0_Beta2_en-US\k-meleon.exe" ' & '"' & $sLink & '"')
    EndSwitch
    WEnd

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

    Func WM_COMMAND($hWnd, $iMsg, $iwParam)
    If BitShift($iwParam, 16) = 0x300 Then
    If BitAND($iwParam, 0xFFFF) = $cDummy Then
    GUICtrlSetData($cIn, GUICtrlRead($cDummy))
    GUICtrlSetData($cDummy, '')
    ControlFocus($hWnd, '', $cIn)
    ElseIf GUICtrlRead($cIn) = '' Then
    ControlFocus($hWnd, '', $cDummy)
    EndIf
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND

    [/autoit]
  • Zwei Webcam-Anwendungen

    • BugFix
    • 13. September 2011 um 19:29
    Zitat von campweb

    oder fehlt immernoch ( :) ) die vorgeschlagene Option über die Treiber ID zwischen den ev. mehreren Cams zu wechseln.


    Glasklar erkannt. Aber ich werde keinen Code schreiben, den ich mangels Hardware nicht testen kann. ;)

  • Zwei Webcam-Anwendungen

    • BugFix
    • 13. September 2011 um 19:07

    Einige Änderungen:
    - AVI-Aufzeichnung möglich (Anwendung friert nicht mehr ein)
    - Konstantendatei ergänzt
    - neues Bsp.

    s. Post #1

  • TV Kabel usw.

    • BugFix
    • 13. September 2011 um 10:31

    Hab mich mal kurz belesen.
    Also so, wie du es skizziert hast, ist es wenig sinnvoll. Am letzten Fernseher in der Reihenschaltung hast du dann nur noch ein Schei..signal.
    Bei Kabel brauchst du einen 4-fach Verteiler (evtl. mit integriertem Verstärker) am Eingang (der spuckt das Signal dann an allen Ausgängen gleich gut aus).

  • [praktisch] Beschreibbares Kästchenpapier in eigener GUI - Beispiel

    • BugFix
    • 13. September 2011 um 10:14

    [OT]

    Zitat von campweb

    Noch kein Feedback oder Vorschläge?


    Du postest 21:30 Uhr und pushst deinen Thread am Folgetag um 7:30 Uhr wegen mangelnden Feedbacks! :thumbdown:
    Bist du so geil nach Lobhudelei und Anerkennung, dass du nicht abwarten kannst bis im normalen Zeitablauf jemand dein Skript begutachtet?
    Übrigens ist es förderlich das Skript nicht nur anzuhängen, sondern auch im Thread zu posten. Ich persönlich lade nicht ein Skript herunter, nur um mal einen Blick drauf zu werfen. Wozu haben wir den solch gutes Online-Syntaxhighlighting? Warum soll ich da ein Skript noch extra in den Editor laden?
    [/OT]

  • TV Kabel usw.

    • BugFix
    • 13. September 2011 um 10:01
    Zitat von tobitron

    habe ne 4 Raumwohnung und in die Räume soll überall TV angeschlossen werden.


    Das heißt, in jedem Zimmer wird ein anderes Programm geschaut. Also ist erst mal wichtig, dass du von der Signalquelle (die du nicht erwähnst) mit jeweils eigenem Signalkabel zu den Endstellen verbindest.
    Bei Empang über Satellit brauchst du ein Quad-LNB, sodass an jedem Anschluß zeitgleich eine unterschiedliche Empfangsebene genutzt werden kann (Horizontal Low, Horizontal High, Vertikal Low, Vertikal High).
    Mit Kabel-TV kenn ich mich nicht aus, ich vermute da gibt es dann spezielle Verteiler.
    Verstärker solltest du dir nicht antun. Sind in den meisten Fällen totaler Unfug und werden in der Regel nur verbaut um die Rechnung hochzutreiben. Lieber etwas mehr Geld in vernünftiges Kabel investieren und auf eine ordentliche Verlegung achten! (Niemals knicken oder in Kabelkanälen rechtwinklig von waagerechten auf senkrechten Kanal wechseln)
    Also der Baumarkt sollte auf keinen Fall dein Einkaufsziel sein. ;)

    Wofür aber sollen die T-Stücke gut sein? Du kannst (wie oben beschrieben) das Signal nicht einfach abzweigen und weiterleiten, wie bei einem Stromverteiler.

    Edit: Es gibt zwar (z.B. in Mehrfamilienhäusern verbaute) Einkabelsysteme, aber deren Installation benötigt wesentlich mehr Hardware, da alle Empangsebenen in eine Ebene geswitcht werden. Da kannst du mal locker 1.000 € für lassen. ;)

  • HotKeys in SciTE

    • BugFix
    • 13. September 2011 um 09:43
    Zitat von wolkenloser

    Gibt es in Scite eigentlich eine Möglichkeit den Ordner zu öffnen in dem sich das Script befindet.


    Was genau möchtest du dort? (Datei/neu/öffnen/speichern(unter) nutzt perse diesen Pfad bereits)
    Ein Explorer-Fenster öffnen mit dem aktuellen Skriptverzeichnis? Das sollte kein großer Aufwand sein, das in das Kontextmenü einzuarbeiten (LUA sei Dank :D). Also gib Bescheid, wie du es dir vorstellst, dann setz ich mich die Tage mal ran.

  • [gelöst] Win 7 - Verknüpfungspfeile

    • BugFix
    • 11. September 2011 um 18:37

    Danke,
    damit klappt es wieder - wobei der 3.te Schlüssel nicht in HKCU sondern ebenfalls in HKLM ist. ;)

    Und damit wir AutoIt alle Ehre machen, das ganze als Mini-Skript:

    [autoit]

    Local $sPathIcon = 'C:\Windows\System32\Empty.ico' ; <== Euer Pfad zum Icon
    Local $aReg[3][4] = [['HKCR\lnkfile', 'IsShortcut','REG_SZ', ''], _
    ['HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons','29','REG_SZ',$sPathIcon], _
    ['HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer','link','REG_BINARY',0x00000000]]
    Local $value
    For $i = 0 To 2
    $value = RegRead($aReg[$i][0], $aReg[$i][1])
    If @error Or $value <> $aReg[$i][3] Then RegWrite($aReg[$i][0], $aReg[$i][1], $aReg[$i][2], $aReg[$i][3])
    Next

    [/autoit]
  • Kontextmenüeintrag (Dateiexplorer) - Infos markierte Dateien in Zwischenablage kopieren

    • BugFix
    • 11. September 2011 um 14:02

    Mich hat es schon immer genervt, dass in Windows standardmäßig keine Funktion enthalten ist, den kpl. Pfad einer markierten Datei im Explorer auszugeben.
    Da ich das jedoch häufig verwende und keine Lust habe mir für diese eine Funktion ein extra Tool zu installieren, habe ich selbst eine Anwendung dafür erstellt.
    Damit es nicht zu "nackig" ist, besteht folgender Funktionsumfang:
    Kopiere in Zwischenablage:
    - den/die kompletten Dateipfad(e) der markierten Datei(en)
    - nur den/die Dateinamen
    - nur den Ordnerpfad
    - die Größe(n) der markierten Datei(en) ==> Ausgabe: Dateiname @TAB Dateigröße (in Bytes)

    Dank eurer Hilfe habe ich auch den richtigen Registryschlüssel gefunden um das Skript im Kontextmenü eintragen zu lassen. :thumbup:

    Und hier nun das Produkt, Einsatz natürlich nur kompiliert möglich (Es sei denn ihr tragt in der Registry den AutoIt3.exe - Aufruf mit dem Skript als Parameter ein, aber bin mir grad nicht sicher, ob _Singleton dann auch wirkt).

    Explorer_GetSelected(1.0).au3
    [autoit]


    ; ===============================================================
    ; == Registrieren im Kontextmenü des Explorers für alle Dateien
    ; == Schlüssel: HKEY_CLASSES_ROOT\*\shell\CMD
    ; == Wert: (Standard) = "Name_des_Menüeintrages"
    ; == Schlüssel: HKEY_CLASSES_ROOT\*\shell\CMD\COMMAND
    ; == Wert: (Standard) = "Pfad_zum_kompilierten_Skript"
    ; ===============================================================

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

    #Region - TimeStamp
    ; 2011-09-11 13:37:20 v 1.0
    #EndRegion - TimeStamp
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    #Include <Misc.au3>

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

    _Singleton(@ScriptName) ; == sonst erfolgt Skriptaufruf für jede markierte Datei

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

    Opt('GUIOnEventMode', 1)
    Local $aDeskSize[2] = [@DesktopWidth,@DesktopHeight]
    Local $aMPos = MouseGetPos()
    Local $x = $aMPos[0], $y = $aMPos[1]
    Local $iWGUI = 120, $iHGUI = 85
    If $x + $iWGUI > $aDeskSize[0] Then
    $x = $aDeskSize[0] - $iWGUI
    EndIf
    If $y + $iHGUI > $aDeskSize[1] Then
    $y = $aDeskSize[1] - $iHGUI
    EndIf
    Local $GUI = GUICreate('', $iWGUI, $iHGUI, $x, $y, BitOR($WS_POPUP,$WS_BORDER))
    GUISetOnEvent($GUI_EVENT_CLOSE, '_close')
    Local $cLV = GuiCtrlCreateListView('LV', 0, 0, $iWGUI, $iHGUI, BitOR($LVS_NOCOLUMNHEADER,$LVS_SINGLESEL), BitOR($LVS_EX_GRIDLINES,$LVS_EX_FULLROWSELECT))
    _GUICtrlListView_SetColumnWidth(GUICtrlGetHandle($cLV), 0, $LVSCW_AUTOSIZE_USEHEADER)
    Local $cFull = GUICtrlCreateListViewItem('kpl. Dateipfade', $cLV)
    GUICtrlSetOnEvent(-1, '_OnClick')
    Local $cFile = GUICtrlCreateListViewItem('Dateinamen', $cLV)
    GUICtrlSetOnEvent(-1, '_OnClick')
    Local $cPath = GUICtrlCreateListViewItem('Pfadname', $cLV)
    GUICtrlSetOnEvent(-1, '_OnClick')
    Local $cSize = GUICtrlCreateListViewItem('Dateigrößen', $cLV)
    GUICtrlSetOnEvent(-1, '_OnClick')

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

    ; == Markierte Datei(en) auslesen
    Global $aSelected = _ActiveExplorer_GetFilesSelected()
    Switch $aSelected[0]
    Case 0
    Exit MsgBox(0, 'Achtung', 'Keine Datei ausgewählt im Ordner' & @CRLF & $aSelected[1])
    Case 1
    GUICtrlSetData($cFull, 'kpl. Dateipfad')
    GUICtrlSetData($cFile, 'Dateiname')
    GUICtrlSetData($cSize, 'Dateigröße')
    EndSwitch

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

    GUISetState()

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

    While 1
    Sleep(50)
    WEnd

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

    Func _close()
    Exit
    EndFunc

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

    Func _OnClick()
    Local $sRet = ''
    Switch @GUI_CtrlId
    Case $cFull
    For $i = 2 To $aSelected[0]+1
    $sRet &= $aSelected[1] & '\' & $aSelected[$i] & @CRLF
    Next
    Case $cFile
    For $i = 2 To $aSelected[0]+1
    $sRet &= $aSelected[$i] & @CRLF
    Next
    Case $cPath
    $sRet = $aSelected[1]
    Case $cSize
    For $i = 2 To $aSelected[0]+1
    Local $iSize = FileGetSize($aSelected[1] & '\' & $aSelected[$i])
    $sRet &= $aSelected[$i] & @TAB & $iSize & @CRLF
    Next
    EndSwitch
    ClipPut($sRet)
    _close()
    EndFunc

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

    ;===============================================================================
    ; Function Name....: _ActiveExplorer_GetFilesSelected
    ; Description......: Erstellt ein Array mit
    ; - Anzahl der markierten Dateien
    ; - dem Pfad des aktiven Explorerfensters und
    ; - dem/den Pfad/en der markiert/en Datei/en
    ; Parameter(s).....: keine
    ; Requirement(s)...: offenes Explorerfenster
    ; Return Value(s)..: Array mit den Daten, $a[0] = Anzahl, $a[1] = Ordnerpfad, $a[2..] = Dateiname
    ; Author(s)........: BugFix ( [email='bugfix@autoit.de'][/email] )
    ;===============================================================================
    Func _ActiveExplorer_GetFilesSelected()
    Local $oShell = ObjCreate("Shell.Application")
    Local $oExplorer, $sPath, $oFolderView, $iCount, $n = 2
    For $i = 0 To $oShell.Windows.Count - 1
    $oExplorer = $oShell.Windows($i)
    $sPath = StringReplace(StringReplace(StringTrimLeft($oExplorer.LocationURL, 8), '%20', ' '), '/', '\')
    If WinGetTitle('[ACTIVE]') = $sPath Then ExitLoop
    Next
    $oFolderView = $oExplorer.Document.SelectedItems()
    $iCount = $oFolderView.Count
    Local $aOut[$iCount +2]
    $aOut[0] = $iCount
    $aOut[1] = $sPath
    If $iCount = 0 Then
    ReDim $aOut[3]
    $aOut[2] = 'NO FILE SELECT'
    Else
    For $oFolderItem In $oFolderView
    $aOut[$n] = $oFolderItem.Name
    $n += 1
    Next
    EndIf
    Return $aOut
    EndFunc ; ==>_ActiveExplorer_GetFilesSelected

    [/autoit]

    Dateien

    Explorer_GetSelected[1.0].au3 4,25 kB – 488 Downloads
  • [gelöst] Kontextmenüeintrag für Explorer erstellen

    • BugFix
    • 11. September 2011 um 13:34

    OK, Danke.
    Habs jetzt im Pfad HKEY_CLASSES_ROOT\* eingetragen und läuft. :thumbup:
    Den Eintrag bei den Ordnern habe ich wieder entfernt, das kann ja Windows mit Bordmitteln.

  • OnEventMode - Event kann nicht registriert werden

    • BugFix
    • 11. September 2011 um 11:05

    Du hast zwar versucht in deinem Skript eine Struktur unterzubringen - diese ist jedoch nur schwer zu lesen.
    Und den Erfolg der Funktion "GUISetOnEvent" abzufragen halte ich für deutlich übertrieben (Welchen Sinn macht das Skripten, wenn du selbst native Funktionen in Frage stellst. Es sei denn du traust dir nicht zu korrekte Event- und Funktionsnamen einzutragen. ;)).
    Bau mal dein Skript in etwa so auf:
    - Includes, Optionen
    - Variablen Deklarationen
    - GUI1 erstellen mit allen Controls
    - zugehörige Events setzen
    dann dasselbe mit allen weiteren GUI.
    - Hauptschleife des Skripts erstellen
    - alle im Skript erforderlichen Funktionen erstellen
    Anderenfalls ist es (wie jetzt bei dir) nur schwer nachvollziehbar, was wann wo passiert. Es ist dann wie beim Versuch Spaghetti-Code zu lesen - man muß hin- und herspringen.

  • [gelöst] Win 7 - Verknüpfungspfeile

    • BugFix
    • 11. September 2011 um 10:47

    Hi,
    ich hatte bisher zum Verdecken der Verknüpfungspfeile in Win 7 diese Lösung verwendet.
    Aber scheinbar wurde wohl mit dem letzten Windows-Update eine Veränderung im System vorgenommen. Denn jetzt sind die Link-Icon mit einem schwarzen Quadrat bedeckt. Ich vermute, dass es am Update liegt, da ich keinen anderen zeitlichen Zusammenhang zu Veränderungen an meinem Rechner habe. (Da ich mich aber im Normalfall nicht abmelde, sondern nur in den Energiesparmodus schalte, kann ich das nicht mit Sicherheit bestimmen).
    Ist das bei euch auch der Fall - und hat evtl. jemand eine Alternative?

  • Wir bauen uns ein CAD

    • BugFix
    • 11. September 2011 um 10:27
    Zitat von PSblnkd

    Diese Doku könnte als Ergänzung zur AutoIt-Hilfe dienen. Zuvor sollte jedoch eine Überprüfung durch einen der AutoIt-Macher aus dem deutschen Sprachraum stattfinden


    Nun, dazu haben meine Vorredner schon das Wesentliche gesagt.
    Eine Fehlinterpretation deinerseits betreff der Events ist mir beim Überfliegen aber sofort ins Auge gefallen:

    Zitat

    Will man ein normales OnClick-Ereignis auf das GUI auswerten, kommt man mit
    GUISetOnEvent($Form1, "GUI_OnClick")
    nicht zum Erfolg. Offensichtlich wird dieses „GUI_OnClick“-Event nicht unterstützt!

    $Form1 ist kein Event! Die Events findest du in der Hilfe aufgelistet. Das hier zutreffende wäre: $GUI_EVENT_PRIMARYUP (man könnte auch .._DOWN verwenden, das Loslassen der Maustaste auszuwerten ist jedoch sinnvoller). ;)

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™