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

  • Anfänger problem!

    • BugFix
    • 18. September 2011 um 15:23

    Lies die Hilfe zu InputBox! - Dort bekommst du den eingegebenen Text zurück!

  • FF.au3 - Brauche Hilfe bei Steuerung einer Seite

    • BugFix
    • 18. September 2011 um 14:20

    Nutzungsbedingungen sollte man schon lesen!

    Zitat

    3.5 Sie dürfen Daten von der Lufthansa-Website nicht für kommerzielle Zwecke reproduzieren. Dazu zählt auch die Angabe von Preisen für Lufthansa-Flüge auf einer anderen Website oder einem anderen Online Server. Insbesondere dürfen Sie die auf der Lufthansa-Website abgelegten Inhalte nicht mit Hilfe von "Robots", anderen Suchmaschinentechnologien oder durch sonstige automatische Mechanismen kopieren, verbreiten, in sonstiger Weise nutzen oder vervielfältigen.

    [CLOSED]

  • Pfad der in SciTe offenen Datei in die Zwischenablage kopieren

    • BugFix
    • 17. September 2011 um 16:44

    Es hatte jemand nach solch einer Funktion gefragt - ich finde jedoch den Thread nicht mehr ;)

    Da es nur eine Zeile Code in LUA ist, lohnt es nicht, dafür ein extra Skript zu erstellen und einzubinden.
    Die folgende Lösung ist simpel und effektiv:

    Die Datei "..\SciTEUser.properties" (Optionen > Benutzereinstellungen) öffnen.
    Unterhalb der Zeile: # END => DO NOT CHANGE ANYTHING BEFORE THIS LINE #-#-#-#-#-# die folgenden Einträge vornehmen:
    #40 Copy Filepath To Clipboard
    command.name.40.*=Filepath to Clipboard
    command.mode.40.*=subsystem:lua,savebefore:no
    command.40.*=dostring editor:CopyText(props.FilePath)
    command.shortcut.40.*=Ctrl+Alt+C
    Statt der 40 setzt die nächste freie Menünummer ein. Wenn ihr dort noch keine Einträge habt, ist die erste freie Nummer die 36.

    Statt des Shortcuts "Ctrl+Alt+C" kann natürlich auch jeder andere (freie) Shortcut verwendet werden.
    Ist nicht abhängig von Dateitypen

    Edit:
    Hatte ich ganz vergessen zu erwähnen: Damit ist dieser Eintrag natürlich auch im Kontextmenü des SciTE-Tabs enthalten, für all jene, die lieber per Mausklick agieren. ;)

  • 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 – 591 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.

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™