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

  • daten aus ini-datei in combo

    • Oscar
    • 1. Juli 2010 um 19:54

    Dazu muss man nur einen weiteren Befehl einfügen:

    Spoiler anzeigen
    [autoit]


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

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

    Global $sInifile = @ScriptDir & '\prog.ini'
    Global $sComboContent = IniRead($sInifile, 'Config', 'Combo', '')
    GUICreate('Test', 280, 80)
    $hCombo = GUICtrlCreateCombo('', 10, 10, 200, 20)
    GUICtrlSetData(-1, $sComboContent)
    $hSave = GUICtrlCreateButton('Save', 211, 10, 60, 20)
    GUISetState()
    GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')
    While True
    If GUICtrlRead($hCombo) <> '' Then
    If BitAND(GUICtrlGetState($hSave), $GUI_DISABLE) Then GUICtrlSetState($hSave, $GUI_ENABLE)
    Else
    If BitAND(GUICtrlGetState($hSave), $GUI_ENABLE) Then GUICtrlSetState($hSave, $GUI_DISABLE)
    EndIf
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hSave
    $sTmp = GUICtrlRead($hCombo)
    If $sComboContent <> '' Then $sComboContent &= '|'
    $sComboContent &= $sTmp
    IniWrite($sInifile, 'Config', 'Combo', $sComboContent)
    GUICtrlSetData($hCombo, '')
    GUICtrlSetData($hCombo, $sComboContent, $sTmp)
    EndSwitch
    WEnd

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

    Func WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
    Local $nNotifyCode, $nID
    $nNotifyCode = BitShift($wParam, 16)
    $nID = BitAND($wParam, 0x0000FFFF)
    If $nID = $hCombo And $nNotifyCode = 5 Then _GUICtrlComboBox_SetEditText($hCombo, StringRegExpReplace(StringLeft(GUICtrlRead($hCombo), 6), '[^0-9]', ''))
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]
  • GegenTeil von _StringBetween()

    • Oscar
    • 1. Juli 2010 um 19:47

    Und Du schaffst es nicht das "*ho*" durch "*aasddaass*" zu ersetzen?

    Edit: Achso, dann halt so:

    [autoit]


    #include <Array.au3>
    $t="Hey*ho*ho2"
    $array = StringSplit(StringRegExpReplace($t, '(\*.*\*)', '*'), '*',3)
    _ArrayDisplay($array)
    Exit

    [/autoit]

    Wieder so ein Fall von "mangelhafter Problembeschreibung". ;)

  • GegenTeil von _StringBetween()

    • Oscar
    • 1. Juli 2010 um 19:39

    Oder vorher anpassen:

    [autoit]


    #include <Array.au3>
    $t="Hey*ho*ho2"
    $array = StringSplit(StringReplace($t, '*ho*', '*'), '*')
    _ArrayDisplay($array)

    [/autoit]
  • daten aus ini-datei in combo

    • Oscar
    • 1. Juli 2010 um 19:08

    Hier eine erweiterte Version (nur Zahlen bei der Eingabe erlaubt):

    Spoiler anzeigen
    [autoit]


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

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

    Global $sInifile = @ScriptDir & '\prog.ini'
    Global $sComboContent = IniRead($sInifile, 'Config', 'Combo', '')
    GUICreate('Test', 280, 80)
    $hCombo = GUICtrlCreateCombo('', 10, 10, 200, 20)
    GUICtrlSetData(-1, $sComboContent)
    $hSave = GUICtrlCreateButton('Save', 211, 10, 60, 20)
    GUISetState()
    GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')
    While True
    If GUICtrlRead($hCombo) <> '' Then
    If BitAND(GUICtrlGetState($hSave), $GUI_DISABLE) Then GUICtrlSetState($hSave, $GUI_ENABLE)
    Else
    If BitAND(GUICtrlGetState($hSave), $GUI_ENABLE) Then GUICtrlSetState($hSave, $GUI_DISABLE)
    EndIf
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hSave
    $sTmp = GUICtrlRead($hCombo)
    If $sComboContent <> '' Then $sComboContent &= '|'
    $sComboContent &= $sTmp
    IniWrite($sInifile, 'Config', 'Combo', $sComboContent)
    GUICtrlSetData($hCombo, '')
    GUICtrlSetData($hCombo, $sComboContent, $sTmp)
    EndSwitch
    WEnd

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

    Func WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
    Local $nNotifyCode, $nID
    $nNotifyCode = BitShift($wParam, 16)
    $nID = BitAND($wParam, 0x0000FFFF)
    If $nID = $hCombo And $nNotifyCode = 5 Then _GUICtrlComboBox_SetEditText($hCombo, StringRegExpReplace(GUICtrlRead($hCombo), '[^0-9]', ''))
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]
  • daten aus ini-datei in combo

    • Oscar
    • 1. Juli 2010 um 18:10

    Hier mal ein Beispiel, wo man die Daten in das Combo-Control einträgt:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    Global $sInifile = @ScriptDir & '\prog.ini'
    Global $sComboContent = IniRead($sInifile, 'Config', 'Combo', '')
    GUICreate('Test', 280, 80)
    $hCombo = GUICtrlCreateCombo('', 10, 10, 200, 20)
    GUICtrlSetData(-1, $sComboContent)
    $hSave = GUICtrlCreateButton('Save', 211, 10, 60, 20)
    GUISetState()
    While True
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hSave
    $sTmp = GUICtrlRead($hCombo)
    $sComboContent &= '|' & $sTmp
    IniWrite($sInifile, 'Config', 'Combo', $sComboContent)
    GUICtrlSetData($hCombo, $sComboContent, $sTmp)
    EndSwitch
    WEnd

    [/autoit]
  • Sicherstellung von Feldauswahl ?

    • Oscar
    • 30. Juni 2010 um 13:34

    Meinst Du sowas:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>

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

    Opt('MustDeclareVars', 1)
    Example1()
    Func Example1()
    Local $hname, $section, $msg, $ButtonMsg, $ButtonEnd
    GUICreate(" GUI ", 200, 250) ; will create a dialog box that when displayed is centered
    GUICtrlCreateLabel("HostName ", 11, 80)

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

    $hname = GUICtrlCreateCombo("", 10, 103)
    $section = IniReadSection("muster.ini", "HostName")
    For $i = 1 To UBound($section) - 1
    GUICtrlSetData($hname, $section[$i][1])
    Next
    $ButtonMsg = GUICtrlCreateButton("Button Msg", 20, 150)
    $ButtonEnd = GUICtrlCreateButton("Button End", 90, 150)

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

    GUISetState(@SW_SHOW) ; will display an empty dialog box
    While 1
    If GUICtrlRead($hname) <> "" Then
    If BitAND(GUICtrlGetState($ButtonMsg), $GUI_DISABLE) Then GUICtrlSetState($ButtonMsg, $GUI_ENABLE)
    Else
    If BitAND(GUICtrlGetState($ButtonMsg), $GUI_ENABLE) Then GUICtrlSetState($ButtonMsg, $GUI_DISABLE)
    EndIf
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE, $ButtonEnd
    Exit
    Case $ButtonMsg
    MsgBox(1, "", GUICtrlRead($hname))
    EndSwitch
    WEnd
    EndFunc ;==>Example1

    [/autoit]
  • PC an Router angeschlossen bzw aktiv

    • Oscar
    • 30. Juni 2010 um 07:39

    Progandy hat hier ein Skript gepostet, was Dir die Rechner im lokalen Netz anzeigt. Damit siehst Du, ob der Rechner noch im Netz ist oder nicht (setzt voraus, dass der Rechner ausgeschaltet wird).

  • Script Schützen

    • Oscar
    • 30. Juni 2010 um 07:30

    Eine Möglichkeit für eine Offline-Verwendung wäre:
    - Man erstellt und speichert eine große Anzahl an Keys (je nach Verbreitungsgrad der Software). Nehmen wir mal 10.000 Keys an.
    - Von diesen Keys erstellt man die MD5-Checksummen und speichert diese Checksummen verschlüsselt in einer Datei.
    - Die verschlüsselte Checksummen-Datei gibt man zusammen mit dem Skript weiter.
    - Die gespeicherten Keys behält man für sich und gibt die Keys nur einzeln weiter.

    So kann man dann im Skript überprüfen, ob der eingegebene Key gültig ist oder nicht.
    Das ist zwar auch nicht 100%ig sicher, aber man macht es einem Angreifer schwerer. Der müsste dann schon decompilieren und sich anhand der Checksummen einen passenden Key erstellen oder gleich die Überprüfung im Skript entfernen.

  • Script Schützen

    • Oscar
    • 29. Juni 2010 um 21:04

    blubbstar: geht noch etwas kürzer ;)

    [autoit]


    MsgBox(0, 'Key', _GenKey(4, 3))

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

    Func _GenKey($iBlocks, $iLenght)
    Local $sKey = ''
    For $i = 1 To $iBlocks * $iLenght
    $sKey &= StringMid('ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890', Random(1, 36, 1), 1)
    If $i/$iLenght = Int($i/$iLenght) And $i < $iBlocks * $iLenght Then $sKey &= '-'
    Next
    Return $sKey
    EndFunc

    [/autoit]
  • Script Schützen

    • Oscar
    • 29. Juni 2010 um 18:17

    Wenn das Dein "bester" Versuch war, dann frage ich mich ernsthaft welches Programm Du da verkaufen willst.
    Sollen das auch die anderen für Dich schreiben? [Kopfschüttel]

  • Script Schützen

    • Oscar
    • 29. Juni 2010 um 17:57

    Kann jemand was machen?

  • Script Schützen

    • Oscar
    • 29. Juni 2010 um 14:52

    Dann achte aber auch darauf die Daten verschlüsselt zu übertragen. :D

    Und es gibt dann auch noch...aber das lassen wir jetzt lieber... ;)

  • Kopiervorgang überprüfen

    • Oscar
    • 29. Juni 2010 um 14:30

    Du könntest für jede Datei zweimal kurz hintereinander (kurzen Sleep dazwischen) die Größe holen (FileGetSize) und vergleichen. Wenn die Größe übereinstimmt, dann ist der Kopiervorgang beendet.
    Das ist zwar auch nicht ganz sicher (je nach Sleep und Kopiergeschwindigkeit), aber wenn Du ansonsten keine Möglichkeit hast...

    Gibt es denn nicht die Möglichkeit, dass die verschiedenen Benutzer am Ende des Kopiervorgangs eine Null-Byte-Datei mit einem definierten Dateinamen kopieren? Dann könnte Dein Skript auf diese spezielle Datei warten.

  • Zeitrechner möglich?

    • Oscar
    • 28. Juni 2010 um 19:44

    Ich hatte mal eine Funktion dazu geschrieben:

    Spoiler anzeigen
    [autoit]


    ; Beispiel für einen Countdown
    #include <Date.au3>
    $bStop = False
    HotKeySet('{ESC}', '_Stop')
    Do
    $iDiff = _DateDiff('s', '2010/01/01 00:00:00', _NowCalc())
    ToolTip(_SecondsToDateTime($iDiff), @DesktopWidth / 2 - 100, 2, '[ESC] = beenden', 1, 4)
    Sleep(500)
    Until $bStop
    Exit

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

    Func _Stop()
    $bStop = True
    EndFunc ;==>_Stop

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

    ;===============================================================================
    ; Function Name..: _SecondsToDateTime($iSeconds[, $iLang])
    ; Description....: Umwandlung von Sekunden in einen String mit Zeitangaben
    ; Parameter(s)...: $iSeconds = Wert in Sekunden
    ; $iLang
    ; 0 = Ausgabe in deutsch
    ; 1 = Ausgabe in englisch
    ; Return Value...: String (Wochen, Tage, Stunden, Minuten, Sekunden)
    ; Author.........: Oscar (http://www.autoit.de)
    ;===============================================================================
    Func _SecondsToDateTime($iSeconds, $iLang = 0)
    If $iLang < 0 Or $iLang > 1 Then $iLang = 0
    Local $sOut = '', $bCheck = False, $bNegative = False, $aDiv[5] = [604800, 86400, 3600, 60, 1]
    Local $aFormat[5][2] = [['Wochen', 'Weeks'],['Tage', 'Days'],['Stunden', 'Hours'],['Minuten', 'Minutes'],['Sekunden', 'Seconds']]
    If $iSeconds = 0 Then Return '0 ' & $aFormat[4][$iLang]
    If $iSeconds < 0 Then
    $bNegative = True
    $iSeconds = Abs($iSeconds)
    EndIf
    For $i = 0 To 4
    If ($iSeconds >= $aDiv[$i]) Or $bCheck Then
    $sOut &= Int($iSeconds / $aDiv[$i]) & ' '
    If Int($iSeconds / $aDiv[$i]) = 1 Then
    $sOut &= StringTrimRight($aFormat[$i][$iLang], 1) & ', '
    Else
    $sOut &= $aFormat[$i][$iLang] & ', '
    EndIf
    $bCheck = True
    EndIf
    $iSeconds = Mod($iSeconds, $aDiv[$i])
    Next
    If $bNegative Then $sOut = ' - ' & $sOut
    Return StringTrimRight($sOut, 2)
    EndFunc ;==>_SecondsToDateTime

    [/autoit]
  • rekursiv links verfolgen

    • Oscar
    • 28. Juni 2010 um 15:57

    Hier mal eine Version ohne die IE-UDF:

    Spoiler anzeigen
    [autoit]


    $sURL = 'http://www.etsi.org/deliver/'
    $sTarget = @ScriptDir & '\tmp\' ; <- anpassen!

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

    If Not FileExists($sTarget) Then DirCreate($sTarget)
    $sServer = StringRegExpReplace($sURL, '(http:\/\/.+?)\/.+', '$1')
    _RekDownload($sURL)

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

    Func _RekDownload($sURL)
    Local $aFiles, $sFilename
    $aFiles = StringRegExp(BinaryToString(InetRead($sURL)), '(?i)<a href="(.+?)"', 3)
    If Not IsArray($aFiles) Then Return

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

    For $i = 1 To UBound($aFiles) - 1
    If StringRight($aFiles[$i], 1) = '/' Then
    _RekDownload($sServer & $aFiles[$i])
    Else
    $sFilename = StringRegExpReplace($aFiles[$i], '.+\/(.+)', '$1')
    ToolTip('Download "' & $sServer & $aFiles[$i] & '"' & @CR & 'Please wait...')
    InetGet($sServer & $aFiles[$i], $sTarget & $sFilename)
    EndIf
    Next
    EndFunc

    [/autoit]
  • Tool will nicht funktionieren: Alle Internet Explorer Instanzen verstecken

    • Oscar
    • 28. Juni 2010 um 14:48

    Geht doch ganz einfach so:

    [autoit]


    If ProcessExists('iexplore.exe') Then
    $aIEWinList = WinList('[CLASS:IEFrame]')
    For $i = 1 To $aIEWinList[0][0]
    WinSetState($aIEWinList[$i][1], '', @SW_MINIMIZE)
    Next
    EndIf

    [/autoit]
  • Schnuffel hat Geburtstag

    • Oscar
    • 28. Juni 2010 um 14:30

    Hallo Schnuffel!

    Herzlichen Glückwunsch
    zum 42. Geburtstag.

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Bilder

    • smilie_geb_073.gif
      • 40,11 kB
      • 132 × 65
  • AutoIt Obfuscator

    • Oscar
    • 26. Juni 2010 um 04:40

    Du kannst Dir ja mal meinen Versuch anschauen: Random-Obfuscator

  • M4rv1n ist da :)

    • Oscar
    • 26. Juni 2010 um 04:35

    Herzlich willkommen auch von mir!

    Aber der neue Film "Per Anhalter durch die Galaxis" ist einfach nur blöd.
    Falls Du das Original nicht kennst, unbedingt anschauen! Das ist total kultig. :thumbup:
    Gerade Marvin ist im Original viel besser.

  • Mein erstes Script

    • Oscar
    • 26. Juni 2010 um 04:24

    Ich hab's mal nach "Hilfe & Unterstützung" verschoben.

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™