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

  • Rausfinden ob das Win OS DE oder EN ist!

    • Oscar
    • 4. Dezember 2008 um 22:23

    Mit Switch ist es kürzer:

    Spoiler anzeigen
    [autoit]


    MsgBox(0, "Your OS Language:", _Language())

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

    Func _Language()
    Switch @OSLang
    Case "0413", "0813"
    Return "Dutch"

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

    Case "0409", "0809", "0c09", "1009", "1409", "1809", "1c09", "2009", "2409", "2809", "2c09", "3009", "3409"
    Return "English"

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

    Case "040c", "080c", "0c0c", "100c", "140c", "180c"
    Return "French"

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

    Case "0407", "0807", "0c07", "1007", "1407"
    Return "German"

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

    Case "0410","0810"
    Return "Italian"

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

    Case "0414","0814"
    Return "Norwegian"

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

    Case "0415"
    Return "Polish"

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

    Case "0416","0816"
    Return "Portuguese"

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

    Case "040a","080a","0c0a","100a","140a","180a","1c0a","200a","240a","280a","2c0a","300a","340a","380a","3c0a","400a","440a","480a","4c0a","500a"
    Return "Spanish"

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

    Case "041d","081d"
    Return "Swedish"

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

    Case Else
    Return "Other (can't determine with @OSLang directly)"

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

    EndSwitch
    EndFunc ;==>_Language

    [/autoit]
  • Browser Guard

    • Oscar
    • 4. Dezember 2008 um 22:13

    @Knappe: Ich habe mein Script unter "Scripte" gepostet.

  • InternetExplorer mit URL-Kontrolle

    • Oscar
    • 4. Dezember 2008 um 22:11

    Dieser Browser kontrolliert, ob die eingegebene URL mit einem Array aus IP-Adressen übereinstimmt. Wenn ja, dann wird die entsprechende Seite nicht aufgerufen (Fehlermeldung).
    Dazu wird die vom Benutzer eingegebene URL erstmal in die IP-Adresse umgewandelt und dann erst verglichen, damit man die Kontrolle nicht einfach durch Eingabe der IP-Adresse umgehen kann.
    Das Array (im Quelltext kommentiert) kann beliebig erweitert werden.

    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, 958, 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] = ['193.99.144.85','','','',''] ; hier alle zu sperrenden IP-Adressen eintragen (z.B.: 1.Eintrag = http://www.heise.de)
    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
    For $i = 0 To UBound($aBadURL)-1
    If $sIP = $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
    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]

    Edit: Script noch etwas geändert, damit auch der Umweg über eine Suchmaschine nicht funktioniert.

  • Browser Guard

    • Oscar
    • 4. Dezember 2008 um 20:49

    @Knappe: Das geht nicht! Dazu müsste man ziemlich tief ins System eingreifen. Das ist mit AutoIt nicht möglich.

    Falls Dir das mit einem kontrollierten IE ausreichen sollte, habe ich da noch ein Beispielscript. Sag Bescheid.

  • Browser Guard

    • Oscar
    • 4. Dezember 2008 um 19:57

    Man könnte einen embeddedIE und ein Inputfeld benutzen. Das Inputfeld auslesen, die Adresse mit den zulässigen Seiten überprüfen und dann erst die Seite aufrufen bzw. eben eine Warnmeldung ausgeben.

  • Snake

    • Oscar
    • 4. Dezember 2008 um 19:53

    Deine "Lösung" ist keine Lösung, weil Du Funktionen als GOTO-Ersatz missbrauchst.
    Warum nimmst Du nicht den Rat von eukalyptus an und setzt das mit dem OnEvent-Mode um?

  • automatisch von zwischenablage in notepad kopieren

    • Oscar
    • 4. Dezember 2008 um 17:25

    Muss es denn unbedingt Notepad sein?

    Vielleicht reicht ja auch das: ;)

    Spoiler anzeigen
    [autoit]


    #include <GuiConstantsEx.au3>
    #include <ClipBoard.au3>
    #include <WindowsConstants.au3>
    #include <SendMessage.au3>

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

    Global Const $WS_EX_COMPOSITED = 0x2000000
    $hGUI = GUICreate("ClipboardViewer", 300, 400, -1, -1, BitOr($GUI_SS_DEFAULT_GUI, $WS_SIZEBOX), $WS_EX_COMPOSITED)
    $iMemo = GUICtrlCreateEdit("", 2, 2, 296, 396, $WS_VSCROLL)
    GUICtrlSetFont(-1, 10, 400, 0, "Courier New")
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    GUISetState()
    WinSetOnTop($hGUI, '', 1)
    $hNext = _ClipBoard_SetViewer ($hGUI)
    GUIRegisterMsg($WM_CHANGECBCHAIN, "WM_CHANGECBCHAIN")
    GUIRegisterMsg($WM_DRAWCLIPBOARD, "WM_DRAWCLIPBOARD")
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    _ClipBoard_ChangeChain ($hGUI, $hNext)

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

    Func WM_CHANGECBCHAIN($hWnd, $iMsg, $iwParam, $ilParam)
    If $iwParam = $hNext Then
    $hNext = $ilParam
    ElseIf $hNext <> 0 Then
    _SendMessage ($hNext, $WM_CHANGECBCHAIN, $iwParam, $ilParam, 0, "hwnd", "hwnd")
    EndIf
    EndFunc ;==>WM_CHANGECBCHAIN

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

    Func WM_DRAWCLIPBOARD($hWnd, $iMsg, $iwParam, $ilParam)
    GUICtrlSetData($iMemo, _ClipBoard_GetData() & @CRLF, 1)
    If $hNext <> 0 Then _SendMessage ($hNext, $WM_DRAWCLIPBOARD, $iwParam, $ilParam)
    EndFunc ;==>WM_DRAWCLIPBOARD

    [/autoit]

    Edit: Jetzt auch in der Größe veränderbar (resizable).

  • Happy Birthday, funkey

    • Oscar
    • 4. Dezember 2008 um 12:37

    Ach, da haben wir schon wieder einen Doppel-Geburtstag.

    Auch Dir, funkey, einen schönen Geburtstag.

    Jan_Simpson.png

  • Slider und Icon

    • Oscar
    • 4. Dezember 2008 um 12:30

    Eh? Da ändert sich doch kaum etwas:

    Spoiler anzeigen
    [autoit]


    #include<GUIConstantsEx.au3>
    #include<GuiSlider.au3>

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

    Opt('GUIOnEventMode', 1)
    Global $hGui = GUICreate('Test', 320, 240)
    GUISetOnEvent($GUI_EVENT_CLOSE, 'End')
    Global $aStar[5]
    For $i = 0 To 4
    $aStar[$i] = GUICtrlCreateIcon('', 0, 60+$i*42, 20, 32, 32)
    Next
    $hSlider = GUICtrlCreateSlider(20, 70, 240, 32)
    _GUICtrlSlider_SetRange($hSlider, 0, 5)

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

    AdlibEnable("_Stars", 100)

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

    GUISetState()
    Global $oldSlider
    While True
    Sleep(20)
    WEnd

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

    Func _Stars()
    $iSlider = GUICtrlRead($hSlider)
    If $iSlider <> $oldSlider Then
    $oldSlider = $iSlider
    For $i = 0 To 4
    If $i < $iSlider Then
    GUICtrlSetImage($aStar[$i], @SystemDir & '\shell32.dll', -44)
    Else
    GUICtrlSetImage($aStar[$i], '')
    EndIf
    Next
    EndIf
    EndFunc

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

    Func End()
    Exit
    EndFunc

    [/autoit]

    Das funktioniert genauso!
    Vielleicht solltest Du mal Dein Script posten. Der "Fehler" steckt evtl. woanders...

  • Happy Birthday peethebee

    • Oscar
    • 4. Dezember 2008 um 11:50

    Happy Birthday, Pee!

    GUI bearbeitet.au3

  • Exit nur für gerade ausgeführte Function

    • Oscar
    • 4. Dezember 2008 um 05:28

    Das häufigste Anfänger-Problem: Eine Endlosschleife in einer "Event"-Funktion. Das blockiert alle anderen Events.

    Eine Funktion, die aufgrund eines User-Events aufgerufen wurde, sollte möglichst schnell wieder verlassen werden (mit Return bzw. EndFunc, nicht durch Aufruf weiterer Funktionen), damit die GUI wieder reagieren kann.

  • OCR eines Sreenshots mit Positionsbestimmung des gesuchten Textes

    • Oscar
    • 3. Dezember 2008 um 21:34

    OCR mit AutoIt? Na dann, viel Spaß!
    OCR an sich, ist schon eine sehr schwierige Aufgabe. Das dann mit einer Scriptsprache zu programmieren, ist, denke ich, der falsche Ansatz.

    Und das es hier im Forum noch nichts derartiges gibt, sollte meine Aussage eigentlich untermauern. ;)

    Ich lasse mich aber gerne eines besseren belehren. Nur zu...

  • Ladebalken für Downloader

    • Oscar
    • 3. Dezember 2008 um 18:12

    Die Progressbar geht von 0...100%, dementsprechend muss man den Prozentwert ermitteln und per GUICtrlSetData eintragen:

    Spoiler anzeigen
    [autoit]


    #include<String.au3>
    $url = "http://SunSITE.Informatik.RWTH-Aachen.DE/ftp/pub/packages/SELFHTML/selfhtml812.zip" ;Adresse zur Datei
    $Form1 = GUICreate("Testfenster", 280, 46, 192, 124)
    $Progress1 = GUICtrlCreateProgress(5, 5, 270, 16)
    $Label1 = GUICtrlCreateLabel("Bitte warten...", 5, 25, 270, 16)
    GUISetState(@SW_SHOW)
    $size = InetGetSize($url) ;Dateigröße ermitteln
    InetGet($url, "testdatei.exe", 1, 1)
    Global $old, $iDownSize
    While @InetGetActive
    If GUIGetMsg() = -3 Then
    InetGet("abort")
    Exit
    EndIf
    $iDownSize = @InetGetBytesRead
    If $iDownSize <> $old Then
    $old = $iDownSize
    GUICtrlSetData($Progress1, 100/$size*$iDownSize)
    GUICtrlSetData($Label1, _StringAddThousandsSep($iDownSize, '.') & " von " & _StringAddThousandsSep($size, '.') & " Bytes heruntergeladen.")
    EndIf
    WEnd

    [/autoit]
  • Unbekannte Wörter aus TXT auslesen

    • Oscar
    • 3. Dezember 2008 um 15:47

    Kannst Du mal eine solche Textdatei posten oder mir per PN schicken?

  • Slider und Icon

    • Oscar
    • 3. Dezember 2008 um 15:44

    Dann aber mit zusätzlicher Abfrage, sonst flackert die Anzeige:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include<GuiSlider.au3>

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

    Global $hGui = GUICreate('Test', 320, 240)
    Global $aStar[5]
    For $i = 0 To 4
    $aStar[$i] = GUICtrlCreateIcon('', 0, 60+$i*42, 20, 32, 32)
    Next
    $hSlider = GUICtrlCreateSlider(20, 70, 240, 32)
    _GUICtrlSlider_SetRange($hSlider, 0, 5)

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

    AdlibEnable("_Stars", 100)

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

    GUISetState()
    Global $oldSlider
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    Func _Stars()
    $iSlider = GUICtrlRead($hSlider)
    If $iSlider <> $oldSlider Then
    $oldSlider = $iSlider
    For $i = 0 To 4
    If $i < $iSlider Then
    GUICtrlSetImage($aStar[$i], @SystemDir & '\shell32.dll', -44)
    Else
    GUICtrlSetImage($aStar[$i], '')
    EndIf
    Next
    EndIf
    EndFunc

    [/autoit]
  • Wie ermittle ich die Anzeigenbreite eines Labels .

    • Oscar
    • 3. Dezember 2008 um 15:18

    Ich hatte gerade ein Beispielscript erstellt:

    Spoiler anzeigen
    [autoit]


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

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

    $Test1 = GUICreate("TestGui1")
    $Label1 = GUICtrlCreateLabel("Dies ist ein Test", 10, 10)
    GUICtrlSetBkColor(-1, 0xff0000)
    $Label2 = GUICtrlCreateLabel("DIES IST EIN TEST und dieser Text ist lang", 10, 50)
    GUICtrlSetBkColor(-1, 0x00ff00)
    $aWPos = WinGetPos($Test1)
    $aPos1 = ControlGetPos($Test1, '', $Label1)
    $aPos2 = ControlGetPos($Test1, '', $Label2)

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

    $x = $aPos1[2]
    If $aPos2[2] > $x Then $x = $aPos2[2]

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

    WinMove($Test1, '', $aWPos[0], $aWPos[1], 30+$x, 120)
    ControlMove($Test1, '', $Label1, $aPos1[0], $aPos1[1], $x, $aPos1[3])
    ControlMove($Test1, '', $Label2, $aPos2[0], $aPos2[1], $x, $aPos2[3])

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

    GUISetState(@SW_SHOW, $Test1)

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

    Do
    $msg = GUIGetMsg()
    Until $msg = $GUI_EVENT_CLOSE

    [/autoit]
  • Wie ermittle ich die Anzeigenbreite eines Labels .

    • Oscar
    • 3. Dezember 2008 um 14:39

    Du kannst das doch abfragen, bevor Du die GUI anzeigen läßt und dann veränderst Du einfach nachträglich (immer noch vor der Anzeige) die Breite des Fensters.

  • Wie ermittle ich die Anzeigenbreite eines Labels .

    • Oscar
    • 3. Dezember 2008 um 14:16

    ControlGetPos ist hier das Stichwort:

    Spoiler anzeigen
    [autoit]


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

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

    $Test1 = GUICreate("TestGui1")
    $Label1 = GUICtrlCreateLabel("Dies ist ein Test", 10, 10)
    $Label2 = GUICtrlCreateLabel("DIES IST EIN TEST", 10, 30)
    GUISetState(@SW_SHOW, $Test1)

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

    $aPos = ControlGetPos($Test1, '', $Label1)
    _ArrayDisplay($aPos)
    $aPos = ControlGetPos($Test1, '', $Label2)
    _ArrayDisplay($aPos)

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

    Do
    $msg = GUIGetMsg()
    Until $msg = $GUI_EVENT_CLOSE

    [/autoit]
  • Slider und Icon

    • Oscar
    • 3. Dezember 2008 um 14:06

    Ich würde das in etwa so machen:

    Spoiler anzeigen
    [autoit]


    #include<GuiSlider.au3>
    GUICreate('Test', 320, 240)
    Global $aStar[5]
    For $i = 0 To 4
    $aStar[$i] = GUICtrlCreateIcon('', 0, 60+$i*42, 20, 32, 32)
    Next
    $hSlider = GUICtrlCreateSlider(20, 70, 240, 32)
    _GUICtrlSlider_SetRange($hSlider, 0, 5)
    GUISetState()
    Global $msg
    While $msg <> -3
    $msg = GUIGetMsg()
    Switch $msg
    Case $hSlider
    $iSlider = GUICtrlRead($hSlider)
    For $i = 0 To 4
    If $i < $iSlider Then
    GUICtrlSetImage($aStar[$i], @SystemDir & '\shell32.dll', -44)
    Else
    GUICtrlSetImage($aStar[$i], '')
    EndIf
    Next
    EndSwitch
    WEnd

    [/autoit]
  • Unbekannte Wörter aus TXT auslesen

    • Oscar
    • 3. Dezember 2008 um 13:51

    Ein bißchen kürzer und gleich für die ganze Textdatei:

    [autoit]


    $string = FileRead("test.txt")
    $array = StringRegExp($string, '<word><name>(.*?)</name>', 3)
    For $i = 0 To UBound($array) -1
    MsgBox(0, '', $array[$i])
    Next

    [/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™