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

Beiträge von Oscar

  • Word Dokumente öffnen, aber kein Inhalt???

    • Oscar
    • 29. Juni 2009 um 14:40

    Kann ich nicht bestätigen. Bei mir funktionieren beide, wenn Pfad und Datei existieren.
    Überprüfe doch mal, ob der Pfad bei Dir auch existiert (FileExists).

  • Maschinen GUID mit AutoIt erstellen

    • Oscar
    • 28. Juni 2009 um 19:09

    AspirinJunkie: das Ergebnis sieht aber sehr merkwürdig aus. Bei mir: 00000000-0000-0000-0807-060504030201

  • OCR Programmieren

    • Oscar
    • 28. Juni 2009 um 16:36

    Die Idee mit den Screenshots ist schon nicht schlecht, aber statt dann ein OCR zu programmieren, würde ich lieber einmalig von allen Fehlermeldungen ein Screenshot machen, diese irgendwo speichern und wenn dann eine Fehlermeldung auftritt, wieder ein Screenshot machen und mit den vorher gespeicherten vergleichen.

  • Selektiertes Objekt im Ordner erfassen

    • Oscar
    • 28. Juni 2009 um 15:45

    Hmmm...das ist ja doch gleich. Warum liest der denn dann die Dateinamen nicht aus?
    Entscheidend ist das hier:

    [autoit]

    ControlListView('[CLASS:CabinetWClass]', '', '[CLASS:SysListView32; INSTANCE:1]', 'GetText', $aItems[$i])

    [/autoit]


    Da werden scheinbar bei Vista nicht die Itemnamen ausgelesen.
    Keine Ahnung wieso das so ist...

  • µit - Juli

    • Oscar
    • 28. Juni 2009 um 10:52
    Zitat

    Bei der Rückgabe als String und mehreren Suchbegriffen wird bisher (wenn ich das aus der Testsuite richtig herausgelesen habe) die Summe aller gefundenen Einzelbegriffe zurückgegeben.
    Wäre es da nicht evtl. sinnvoller die Einzelsummen getrennt durch den übergebenen Delimiter zurückzugeben? Das würde dann auch der Rückgabe bei Array entsprechen.


    Das finde ich nicht so gut.

    Ich finde das so besser: Entweder Gesamtsumme ($bReturn = False, als Einzelwert) oder als getrennte Summen ($bReturn = True, dann als Array).

    Es wäre jetzt kein Problem mein Script nach Deinen Vorgaben zu ändern, aber ich finde das mit der Gesamtsumme praxistauglicher. Wenn ich die Anzahl der Suchbegriffe ermitteln will, bekomme ich dann gleich einen Wert mit dem ich weiterrechnen kann, ohne ihn erst aufsplitten zu müssen.

    Den Rest Deiner Bedingungen erfüllt mein Script. :)

    Hier:

    Zitat

    $bPartial True = Suchbegriff auch als Teilstring / False = Suchbegriff alleinstehend


    gibt es aber noch eine Diskrepanz zu den Bedingungen von Eukalyptus. Bei ihm ist das genau umgekehrt definiert. Wobei ich Deine Definition besser finde. $bPartial = True sagt für mich aus, dass auch Teile zugelassen sind.

    Edit:
    Wäre als Funktionsname nicht "_StringInStrCount" passender (in Anlehnung an "StringInStr")?

  • Gui bewegen popup style

    • Oscar
    • 28. Juni 2009 um 07:29

    Mit WM_MOVE geht das besser:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    $hMainGui = GUICreate('Main', 600, 400, 100, 100, $WS_POPUP)
    GUISetBkColor(0xFFFFAA)
    GUICtrlCreateLabel(' Main', 0, 0, 600, 400, Default, $GUI_WS_EX_PARENTDRAG)
    GUISetState()
    $hChildGui = GUICreate('Child', 600, 400, 710, 100, $WS_POPUP)
    GUICtrlCreateLabel(' Child', 0, 0, 600, 400, Default, $GUI_WS_EX_PARENTDRAG)
    GUISetBkColor(0xAAFFFF)
    GUISetState()
    GUIRegisterMsg($WM_MOVE, 'WM_MOVE')

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

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    Func WM_MOVE($hWnd, $Msg, $wParam, $lParam)
    Local $xPos = BitAND($lParam, 0xFFFF), $yPos = BitShift($lParam, 16)
    If $hWnd = WinGetHandle($hMainGui) Then
    WinMove($hChildGui, '', $xPos + 610, $yPos)
    Else
    WinMove($hMainGui, '', $xPos - 610, $yPos)
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_MOVE

    [/autoit]
  • Selektiertes Objekt im Ordner erfassen

    • Oscar
    • 28. Juni 2009 um 02:33

    Starte mal "Au3Info.exe", öffne den Explorer und markiere eine Datei. Danach kopierst Du die Daten von Au3Info und postest sie hier.
    Irgendwas ist da bei Vista anders, als bei XP.

  • Schlechte GDI+ Performance auf WinXP

    • Oscar
    • 27. Juni 2009 um 21:08

    Ich habe noch etwas merkwürdiges herausgefunden. Wenn ich Dein (UEZ) unverändertes Script nehme und starte, dann läuft es ja erstmal wie in Zeitlupe.
    Lasse ich es weiter laufen und klicke ein anderes Fenster (bei mir ist nebenbei die AutoIt-Hilfe offen) auf der Titelleiste an und halte die linke Maustaste fest, dann werden die Explosionen plötzlich richtig schnell angezeigt.
    Wenn ich die Maustaste dann wieder loslasse, sind die Explosionen wieder in Zeitlupe.

  • Schlechte GDI+ Performance auf WinXP

    • Oscar
    • 27. Juni 2009 um 20:06

    Die schlechte Performance kann ich bestätigen. Mein System: WinXP, AMD X4 940, ATI HD3870

    Zitat

    PS: wie kann ich die Anzahl der Downloads von Anhängen (s.o.) darstellen?


    Den Anhang nicht in den Beitrag einfügen, sondern nur als Anhang stehen lassen.

  • Selektiertes Objekt im Ordner erfassen

    • Oscar
    • 27. Juni 2009 um 19:56

    Bei mir funktioniert das auch mit Dateien.
    Benutzt Du Vista?

  • GUI vor Controlclicks schützen

    • Oscar
    • 27. Juni 2009 um 19:55

    Die Idee ist nicht schlecht. Zum Beispiel bei einer Passworteingabe. Würde zum einen einen BruteForce-Angriff per Programm verhindern und zum anderen das mitschreiben eines Keyloggers.
    "Nachteil" wäre, dass man das Passwort nur per Maus "eingeben" kann.

  • Wortsturz (Spiel für Kinder)

    • Oscar
    • 27. Juni 2009 um 19:50

    @heenzketchup: Ich habe mal Deine Idee eingebaut. Allerdings in Form eines Play-Buttons. Ein Klick darauf bzw. die Taste "s" drücken und das Wort wird vorgelesen.
    Die Aussprache ist bei einigen Wörtern allerdings...naja...merkwürdig...

    Anleitung zum installieren des deutschen Sprachpakets des MS.Readers gibt's in Post #1, ebenso die neue Version. :)

  • Datei ins script kompillieren und vom laufenden script auf sich zugreifen

    • Oscar
    • 26. Juni 2009 um 20:53

    Schau Dir mal FileInstall() an.
    BTW: Es gibt auch eine deutsche AutoIt-Hilfe!

  • Verschicken

    • Oscar
    • 26. Juni 2009 um 20:49

    Du hast Deinen Thread hier in "Hilfe & Unterstützung" aufgemacht. Das verstehen wir so, dass Du selbst etwas programmieren möchtest.
    Wenn das andere für Dich erledigen sollen, dann wäre die "Jobbörse" das richtige für Dich.

  • µit - Juli

    • Oscar
    • 26. Juni 2009 um 20:36

    Ich bin auch schon fertig! :D
    Gibt's einen besonderen Test, den das Script bestehen muss?
    Hab mein Script zwar schon einige Male getestet aber man weiß ja nie...

  • Selektiertes Objekt im Ordner erfassen

    • Oscar
    • 26. Juni 2009 um 17:42

    Ich nehme mal an, dass Du bei Deinem Doppelklick den Explorer von Windows meinst.
    Du öffnest also einen Ordner im Explorer, markierst eine oder mehrere Dateien und willst diese per Hotkey in ein vorher festgelegtes Verzeichnis kopieren. Habe ich das soweit richtig gedeutet?
    Wenn ja, dann gibt es hier die Lösung:

    Spoiler anzeigen
    [autoit]


    HotKeySet('!c', '_CopySelectedFiles') ; Hotkey: [ALT] & [code=c]
    HotKeySet('!q', '_End') ; Hotkey: [ALT] & [q]
    While True
    Sleep(50)
    WEnd

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

    Func _CopySelectedFiles()
    Local $sSelItems, $aItems, $aFiles, $sPath, $sDestPath
    If WinExists('[CLASS:CabinetWClass]') Then
    $sSelItems = ControlListView('[CLASS:CabinetWClass]', '', '[CLASS:SysListView32; INSTANCE:1]', 'GetSelected', 1)
    If $sSelItems <> '' Then
    $sPath = ControlGetText('[CLASS:CabinetWClass]', '', 'Edit1')
    If StringRight($sPath, 1) <> '\' Then $sPath &= '\'
    $aItems = StringSplit($sSelItems, '|')
    Dim $aFiles[$aItems[0] + 1] = [$aItems[0]]
    For $i = 1 To $aItems[0]
    $aFiles[$i] = $sPath & ControlListView('[CLASS:CabinetWClass]', '', '[CLASS:SysListView32; INSTANCE:1]', 'GetText', $aItems[$i])
    Next
    $sDestPath = 'c:\copy\' ; <- hier das Zielverzeichnis eintragen
    For $i = 1 To $aFiles[0]
    FileCopy($aFiles[$i], $sDestPath, 8 + 0) ; <- wenn statt der 0 eine 1 steht, dann evtl. bestehende Datei überschreiben
    Next
    EndIf
    EndIf
    EndFunc

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

    Func _End()
    Exit
    EndFunc

    [/autoit]

    Funktioniert zumindest unter WindowsXP. Ob's auch unter Vista läuft, kann ich nicht sagen.

  • Time-Based File Eraser

    • Oscar
    • 25. Juni 2009 um 21:22

    Danke für die Verbesserungsvorschläge! :thumbup:
    Habe die mal eingebaut. Neue Version (siehe Post #1).

  • Suche Helfer für ein "AutoIt Kinderpaket" - Jeder ist herzlichst eingeladen!

    • Oscar
    • 25. Juni 2009 um 14:27

    Ich hatte mal angefangen mit einem embedded IE und einer Blacklist:

    Spoiler anzeigen
    [autoit]


    #include<StaticConstants.au3>
    #include<GuiStatusBar.au3>
    #include<EditConstants.au3>
    #include<GUIConstantsEx.au3>
    #include<IE.au3>
    #include<WindowsConstants.au3>
    Global Const $WS_EX_COMPOSITED = 0x2000000

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

    $oIE = _IECreateEmbedded()

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

    $hGui = GUICreate('IE-Kontrolle', 1024, 768, -1, -1, BitOr($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX, $WS_CLIPCHILDREN), $WS_EX_COMPOSITED)
    GUISetBkColor(0xDDDDDD)

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

    GUICtrlCreateLabel('Adresse', 4, 27, 55, 20, $SS_RIGHT)
    GUICtrlSetFont(-1, 9, 400, 0, 'Verdana')
    GUICtrlSetColor(-1, 0x888888)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)

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

    $hURL = GUICtrlCreateInput('', 64, 25, 948, 20, $ES_WANTRETURN, $WS_EX_STATICEDGE)
    GUICtrlSetFont(-1, 9, 400, 0, 'Arial')
    GUICtrlSetResizing(-1, $GUI_DOCKLEFT+$GUI_DOCKRIGHT+$GUI_DOCKTOP+$GUI_DOCKHEIGHT)

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

    GUICtrlCreateObj($oIE, 0, 48, 1024, 696)
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)

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

    $hStatus = _GUICtrlStatusBar_Create($hGUI)
    _GUICtrlStatusBar_SetText($hStatus, 'Fertig.')
    _IENavigate($oIE, 'about:blank')
    GUISetState()
    GUIRegisterMsg($WM_SIZE, 'WM_SIZE')
    ControlFocus($hGui, '', $hURL)
    Global $oldURL = 'about:blank'
    Global $aBadURL[5] = ['www.google.de','www.ebay.de','','',''] ; hier alle zu sperrenden URLs eintragen (Blacklist)
    While True
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hURL
    $sURL = StringReplace(GUICtrlRead($hURL), 'http://', '')
    _IENavigate($oIE, $sURL, 0)
    EndSwitch
    $sURL = _IEPropertyGet($oIE, "locationurl")
    If StringLeft($sURL, 7) <> 'http://' Then $sURL = 'http://' & $sURL
    If StringRight($sURL, 1) <> '/' Then $sURL &= '/'
    $aURL = StringRegExp($sURL, '(http://){1}(.+?)/', 3)
    If IsArray($aURL) Then
    If $aURL[1] <> $oldURL Then
    $oldURL = $aURL[1]
    $bCheck = True
    _GUICtrlStatusBar_SetText($hStatus, 'Bitte warten...')
    If $aURL[1] <> 'about:blank' Then
    TCPStartup()
    $sIP = TCPNameToIP($aURL[1])
    TCPShutdown()
    Else
    $sIP = ''
    EndIf
    If $sIP <> '' Then
    TCPStartup()
    For $i = 0 To UBound($aBadURL)-1
    If $sIP = TCPNameToIP($aBadURL[$i]) Then
    Beep(400, 200)
    _GUICtrlStatusBar_SetText($hStatus, 'Diese Seite darfst Du nicht aufrufen!')
    GUICtrlSetData($hURL, '')
    _IENavigate($oIE, 'about:blank')
    $bCheck = False
    ControlFocus($hGui, '', $hURL)
    Sleep(1000)
    ExitLoop
    EndIf
    Next
    TCPShutdown()
    If $bCheck Then
    If StringLeft($aURL[1], 7) <> 'http://' Then
    $sURL = 'http://' & $aURL[1]
    GUICtrlSetData($hURL, $aURL[1])
    EndIf
    _IENavigate($oIE, $aURL[1])
    If @error Then
    Beep(400, 200)
    _GUICtrlStatusBar_SetText($hStatus, 'Beim laden der Seite ist ein Fehler aufgetreten!')
    Else
    _GUICtrlStatusBar_SetText($hStatus, 'Fertig.')
    EndIf
    EndIf
    ElseIf $aURL[1] <> 'about:blank' Then
    Beep(400, 200)
    _GUICtrlStatusBar_SetText($hStatus, 'Diese Seite existiert nicht!')
    Else
    _GUICtrlStatusBar_SetText($hStatus, 'Fertig.')
    EndIf
    EndIf
    EndIf
    WEnd

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

    Func WM_SIZE($hWnd, $iMsg, $iwParam, $ilParam)
    _GUICtrlStatusBar_Resize($hStatus)
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]

    Habe das Projekt aber aufgegeben. Vielleicht kannst Du ja Teile davon gebrauchen.
    Für die ganz Kleinen wäre wohl eine Whitelist auch besser geeignet. Blacklist macht viel Arbeit beim zusammentragen und pflegen der URLs. Inidatei wäre vermutlich auch besser, als das im obigen Script verwendete Array.

    Der Grund für die Aufgabe des Projekts war aber, das eine browserbasierte Filterung nicht so wirklich funktioniert. Man müsste das dann schon universell für alle Browser programmieren, weil es sonst schon reichen würde einen anderen Browser zu installieren. Besser wäre eine tiefer ansetzende Lösung auf TCP-Ebene. Würde im Prinzip auf einen Proxy rauslaufen. Weiß aber nicht, ob AutoIt dafür dann so die geeignete Programmiersprache ist?! :S

  • Time-Based File Eraser

    • Oscar
    • 25. Juni 2009 um 09:08

    So, die Version 1.0 ist nun fertig. :)

  • Klappt das so?

    • Oscar
    • 24. Juni 2009 um 23:40

    DynDNS wäre auch meine Empfehlung.
    Zur Umwandlung vom Domainnamen in die IP-Adresse gibt es aber bereits einen AutoIt-Befehl: TCPNameToIP

    Beispiel:

    [autoit]


    TCPStartup()
    MsgBox(0, 0, TCPNameToIP('www.autoit.de'))
    TCPStartup()

    [/autoit]

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™