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

  • DriveGetType funktioniert unter WinXP, aber nicht unter Win7

    • BugFix
    • 17. Oktober 2011 um 17:02
    Zitat von RoWi

    "Net use" aus AutoIt aufrufen oder wie?


    Genau, und die Rückgabe dann auswerten:

    [autoit]

    #include <Constants.au3>
    Local $foo = Run(@ComSpec & " /c " & 'net use', @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    Local $data
    While True
    $data &= StdoutRead($foo)
    If @error Then ExitLoop
    Sleep(25)
    WEnd
    ConsoleWrite($data & @CRLF)

    [/autoit]
  • DriveGetType funktioniert unter WinXP, aber nicht unter Win7

    • BugFix
    • 17. Oktober 2011 um 16:27

    Wenn es damit nicht klappt, frag doch die Netzlaufwerkverbindungen mit "net use" ab.

  • über autoit alle mappen in excel datei markieren und als pdf drucken

    • BugFix
    • 17. Oktober 2011 um 12:38
    Zitat von PeterPan2

    For $i = 1 To $oExcel^ ERROR


    Das heißt, dass das Objekt " $oExcel" nicht existiert.
    Gehe so vor:

    [autoit]

    $oExcel = _ExcelBookOpen($sPath)
    If Not IsObj($oExcel) Then ConsoleWrite('Fehler beim Öffnen Datei!' & @CRLF)

    [/autoit]
  • DriveGetType funktioniert unter WinXP, aber nicht unter Win7

    • BugFix
    • 17. Oktober 2011 um 11:38
    Zitat von RoWi

    Typ "Netzlaufwerk" ist


    Wie wär es mit Hilfe lesen?
    Der Typ ist nicht "Netzlaufwerk" sondern "NETWORK"! Und damit klappt es unter Win7 genauso, wie unter XP.

    [autoit]

    $a = DriveGetDrive("NETWORK")
    For $i = 1 To $a[0]
    ConsoleWrite($a[$i] & @CRLF)
    ConsoleWrite(DriveGetType($a[$i]) & @CRLF)
    Next

    [/autoit]
  • Fenster maximieren

    • BugFix
    • 17. Oktober 2011 um 10:43

    button421:
    Du bist noch neu hier, deshalb ganz sanft: Wenn es Differenzen im Verständnis gibt, kannst du als Neuling durchaus in Erwägung ziehen, dass der Fehler in einer Größenordnung von 90% bei dir liegt. Umfragen dazu eröffnen, ob Standardelemente ein Standardverhalten aufweisen ist absolut sinnfrei.

    Und das sollte man keinesfalls weiter vertiefen.

    [CLOSED]

  • [HELP] [GELÖST] Ständiges auslesen stoppen, dass z.B. nur 1x ein Traytipp kommt

    • BugFix
    • 17. Oktober 2011 um 10:37

    BITTE auf "gelöst" setzen (Startpost), und die Tatsache, dass es erledigt ist, nicht nur im Löschvermerk anführen.
    Im Übrigen ist es sinnvoll, eine Lösung auch zu posten, damit jemand mit demselben Problem davon partizipieren kann. Das ist übrigens der Hintergrund, warum Foren existieren. ;)

  • Auto ID erzeugen

    • BugFix
    • 17. Oktober 2011 um 10:28

    Nutze die Makros:

    [autoit]

    $id = @YEAR & @MON & @MDAY & @HOUR & @MIN & @SEC

    [/autoit]


    Je nachdem, wie oft am Tag du generierst, kannst du auch verkürzen und hinter den Datumswerten einen internen fortlaufenden Zähler konstanter Länge anhängen.

    [autoit]

    $iCounter = 1
    $id = @YEAR & @MON & @MDAY & StringRight('00' & $iCounter, 3) ; == somit ist der Counter immer 3-stellig
    $iCounter += 1

    [/autoit]

    Damit der Dateiname in der Reihenfolge der Erstellung sortiert wird, sollte auf jeden Fall die Reihenfolge Jahr-Monat-Tag verwendet werden. Kannst ja vom Jahr noch die ersten 2 Stellen abschnippeln (StringTrimLeft(@YEAR), 2).

  • profifrage: aktiven netzwerkadapter herausfinden ?

    • BugFix
    • 17. Oktober 2011 um 10:14

    Wenn du nur den Namen der Netzwerkverbindung, die verbunden ist, benötigst kannst du das auch so lösen:

    [autoit]

    #include <Constants.au3>
    Local $foo = Run(@ComSpec & " /c " & "netsh", "", @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD)
    StdinWrite($foo, "interface show interface" & @CRLF)
    StdinWrite($foo)

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

    Local $data
    While True
    $data &= StdoutRead($foo)
    If @error Then ExitLoop
    Sleep(25)
    WEnd

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

    $ret = StringRegExp($data, 'Aktiviert\s+Verbunden\s+Dediziert\s+(\w+)', 3)
    For $i = 0 To UBound($ret) -1
    ConsoleWrite('Verbunden: ' & $ret[$i] & @CRLF)
    Next

    [/autoit]
  • Saguhilla => Schnellstarter 2012 => UPDATED: 12.01.2012

    • BugFix
    • 16. Oktober 2011 um 21:19

    Man darf Fenster ruhig über ihr Handle ansprechen, statt jedesmal den vollen Fenstertitel zu benutzen. :whistling:

  • über autoit alle mappen in excel datei markieren und als pdf drucken

    • BugFix
    • 16. Oktober 2011 um 17:31
    Zitat von PeterPan2

    wäre nen traum wenns geht


    Im Zusammenhang mit "PDFCreator" funzt der gepostete Code tadellos.

  • Web-App

    • BugFix
    • 16. Oktober 2011 um 11:04

    Ich setze es beim Start nicht OnTop. Wer möchte kann ja nach GuiSetState ein WinSetOnTop einfügen. Alternativ wird das Tool über das Tray-Menü <Anzeigen> OnTop gesetzt und liegt dann vor allen Fenstern.

    Btw.: Habe noch einen kleinen Bug entdeckt. Die Linkliste ist nach jedem Neustart korrekt, aber während das Tool läuft können einige Einträge mehrfach erscheinen.

  • Windows Hotkeys in GUIs

    • BugFix
    • 16. Oktober 2011 um 10:44

    Du bastelst 8!! Embedded IE-Fenster? :D
    Na gut, jedem das Seine. ;)

    Du kannst mit HotKeys arbeiten oder aber (was eindeutig zu bevorzugen ist) mit Accelerator-Keys. D.h., man weist bestimmten Ctrl. eine Tastenkombination zu. In diesem Fall habe ich einfach zwei Dummies erstellt um die Tastenkombination abfangen zu können.
    Dein Fenster ist ja keine GUI, sondern ein IE-Objekt und kann deshalb auch nur mit IE-Befehlen interagieren:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <IE.au3>
    #Include <SendMessage.au3>

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

    $Form1 = GUICreate("Browser", @DesktopWidth - 10, @DesktopHeight - 75, 1, 1)
    $dummyCopy = GUICtrlCreateDummy()
    $dummyPaste = GUICtrlCreateDummy()
    $DateCall = GUICtrlCreateDate("", @DesktopWidth - 115, 1, 100, 25, 0)
    GUISetState() ;SHOW GUI

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

    Local $AccelKeys[2][2]=[["^c", $dummyCopy], ["^v", $dummyPaste]] ; <==============================
    GUISetAccelerators($AccelKeys) ; <==============================

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

    Global $aObj[8], $aObj_Ctrl[8], $aButtons[8]
    For $i = 0 To 7
    ; Button
    $aButtons[$i] = GUICtrlCreateButton("Browser", 16 + (120 * $i), 1, 113, 25, $WS_GROUP)

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

    ; Embedded IE
    $aObj[$i] = _IECreateEmbedded() ; == 8!! Embedded Browser
    $aObj_Ctrl[$i] = GUICtrlCreateObj($aObj[$i], 1, 25, @DesktopWidth - 10, @DesktopHeight - 75)
    GUICtrlSetState(-1, $GUI_HIDE)

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

    ; Navigate
    $aObj[$i] .navigate("www.google.de")
    Next

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

    ; Show the first IE.
    GUICtrlSetState($aButtons[0], $GUI_DISABLE)
    GUICtrlSetState($aObj_Ctrl[0], $GUI_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $dummyCopy
    For $i = 0 To 7
    If BitAND(GUICtrlGetState($aObj_Ctrl[$i]), $GUI_SHOW) Then
    _IEAction ( $aObj[$i], 'copy' ) ; <==============================
    ExitLoop
    EndIf
    Next

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

    Case $dummyPaste
    For $i = 0 To 7
    If BitAND(GUICtrlGetState($aObj_Ctrl[$i]), $GUI_SHOW) Then
    _IEAction ( $aObj[$i], 'paste' ) ; <==============================
    ExitLoop
    EndIf
    Next

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

    Case $aButtons[0] To $aButtons[7]
    ; Hide everything
    For $i = 0 To 7
    GUICtrlSetState($aButtons[$i], $GUI_ENABLE)
    GUICtrlSetState($aObj_Ctrl[$i], $GUI_HIDE)
    Next

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

    ; Show the IE
    For $i = 0 To 7
    If $aButtons[$i] = $nMsg Then
    GUICtrlSetState($aButtons[$i], $GUI_DISABLE)
    GUICtrlSetState($aObj_Ctrl[$i], $GUI_SHOW)
    ExitLoop
    EndIf
    Next
    EndSwitch
    WEnd

    [/autoit]
  • Web-App

    • BugFix
    • 15. Oktober 2011 um 23:05
    Zitat von Mattthias

    Man kann den Aufruf der Seite doch auch so tätigen (Default Browser automatisch dabei)


    Das mach ich ja auch. Aber wenn du einen Parameter mitgeben möchtest, wie bei Suchen auf Seite, mußt du den Browserpfad zwingend angeben. ;)

  • Schleife Für Excel

    • BugFix
    • 15. Oktober 2011 um 22:35

    Na gut, ich habs dir mal in den Code eingepaßt. Hoffe, dass ich deine Beschreibung richtig interpretiert habe.

    [autoit]

    #include <Excel.au3>
    $sPath = @ScriptDir & "\Test1.xls"
    $oExcel = _ExcelBookOpen($sPath, 0) ; == Visible auf '0', Excel bleibt im Hintergrund
    $iRow = 1

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

    While True
    $value = _ExcelReadCell($oExcel, "A" & $iRow)
    If $value = "" Then ExitLoop
    $return = _Data($value) ; == Aufruf der Verarbeitungsfunktion, Verarbeitungswert auffangen
    _ExcelWriteCell($oExcel, $return, "B" & $iRow)
    $iRow += 1
    WEnd
    _ExcelBookClose($oExcel)

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

    Func _Data($value)
    ClipPut($value) ; == Deine Anwendung braucht den Wert zum Arbeiten in der Zwischenablage?
    WinActivate ("a1.txt")
    WinWaitActive ("a1.txt")
    Sleep (1000) ; == in dem Zeitraum wird der Wert aus der Zwischenablage verarbeitet
    Send("{LSHIFT down}")
    send ("{right 6}")
    Send("{LSHIFT up}") ; == das Ergebnis der Verarbeitung wird markiert
    send ("^c") ; == und in die Zwischenablage kopiert
    Return ClipGet() ; == Inhalt der Zwischenablage wird als Ergebnis zum Zurückschreiben zurückgegeben
    EndFunc

    [/autoit]


    Aber reicht es, wenn der Wert in der Zwischenablage ist? Muß er nicht in das andere Programm eingefügt werden?

  • Schleife Für Excel

    • BugFix
    • 15. Oktober 2011 um 22:05

    Also Preßlufthammer, ..zig Blagen -- das ist doch zu ertragen. Aber anstehender Hochzeitstag... Dafür hast du mein tief empfundenes Beileid. :rofl:

  • Web-App

    • BugFix
    • 15. Oktober 2011 um 21:59
    Zitat von GtaSpider

    kann man natürlich nur hoffen, dass der Benutzer kein JAVA Browser oder so etwas benutzt


    Igittigitt, was soll denn das sein. :D

    Habe die Funktion zum Ermitteln des Default-Browsers etwas verändert. Sollte nun problemlos funktionieren.
    Versteh aber nicht, wieso bei mir da kein Fehler auftrat.

  • Schleife Für Excel

    • BugFix
    • 15. Oktober 2011 um 21:34

    Was war an meinem Skript so mißverständlich?!
    Lagere bitte die Bearbeitung in eine Funktion aus, sonst verlierst du die Übersicht, und schlecht zu Lesen ist der Code auch.
    Außerdem hast du dadurch auch die Abfrage ob die Zelle leer ist hinter den Bearbeitungsteil verschoben, was zur Fehlfunktion deines Skriptes führt.

  • Laufwerksabfrage: Array löschen

    • BugFix
    • 15. Oktober 2011 um 20:44

    Also es wäre viel einfacher, wenn du die Anzeige statt mit Labeln in einem ListView ausführst.
    Aber wenn du es so machen willst, dann lösche doch nicht nur den Inhalt (GuiCtrlDelete), sondern danach auch das ArrayItem (_ArrayDelete).

  • Web-App

    • BugFix
    • 15. Oktober 2011 um 20:07
    Zitat von GtaSpider

    dass du zwar den Default Browser aus der Registry ließt, aber die Parameter dahinter (bei Google Chrome steht z.B. -- %1 dahinter) nicht entfernst.


    ;( Du beleidigst mich.
    Hier der Part aus der Funktion, der zuerst:
    - erstes und letztes " des gelesenen Wertes entfernt
    - an " " splittet
    - den ersten Spliwert (Exe-pfad) zurückgibt

    [autoit]

    $sPath = StringTrimRight(StringTrimLeft($sPath, 1), 1)
    Local $split = StringSplit($sPath, '" "', 1)
    Return StringReplace($split[1], '"', '')

    [/autoit]


    Btw: Ich habe es bei mir am Laufen - so wie gepostet. Wahlweise auch den FF als Default gesetzt. Funktioniert fehlerfrei, Rückgabe aus der _GetDefaultBrowser-Func ist immer der korrekte Pfad der EXE

  • Web-App

    • BugFix
    • 15. Oktober 2011 um 19:56
    Zitat von Mattthias

    Ich geb was ein und er sagt mir "C:\...\Firefox.exe ... konnte nicht gefunden werden" <- Wie jetzt ?


    Geht es auch mit 'ner vernünftigen Beschreibung? WAS hast du denn nach Eingabe in das Input angeklickt?

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™