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

  • Pfad zur Schnellstartleiste bei Windows 7

    • Oscar
    • 4. Januar 2010 um 04:36

    Der Pfad, den Bernd670 genannt hat, stimmt schon, nur gibt es die Schnellstartleiste unter Win7 standardmäßig gar nicht mehr.
    Die muss man erst aktivieren:

    - In der Taskleiste "Symbolleisten, Neue Symbolleiste" auswählen.

    - als Pfad "%userprofile%\AppData\Roaming\Microsoft\Internet Explorer\QuickLaunch" (ohne die Anführungszeichen) eingeben.

    - "Ordner auswählen" anklicken.

  • Nach jeden 4. Zeichen ein "-" setzen

    • Oscar
    • 3. Januar 2010 um 23:04

    Greenhorn: Bei Deinem Script kann man die Eingabe nicht wieder löschen.

    UEZ: Bei Deinem Script muss man den Bindestrich extra löschen. Mein Script löscht den Bindestrich, sobald man den Buchstaben danach löscht.

  • QDesktop

    • Oscar
    • 3. Januar 2010 um 14:46

    Ich hab's mal verschoben.

  • MsgBox Wiederholen -> Skript wiederholen

    • Oscar
    • 3. Januar 2010 um 14:10

    Einfach eine Schleife drumherum machen:

    Spoiler anzeigen
    [autoit]


    Do
    ; hier steht die Datenbankabfrage
    $error = @error
    If $error Then ; Fals keine Verbindung zur Datenbank hergestellt werden kann, soll eine Fehlermeldung erscheinen
    $fehler = MsgBox(5 + 16, "Fehler", "Verbindung zur Datenbank fehlgeschlagen." & @CRLF & " Bitte überprüfen Sie die Internetverbindung" & @CRLF & " Wenn Ihr Computer oder Netzwerk von einer Firewall oder einem Proxy geschützt wird, stellen Sie bitte sicher, dass das Programm auf das Internet zugreifen darf. " & @CRLF & " Einen Proxyserver können Sie in den Einstellungen des Internet Explorers konfigurieren.")
    If $fehler = 2 Then Exit MsgBox(0, "ByeBye", "Auf Wiedersehen!")
    EndIf
    Until Not $error

    [/autoit]
  • aus einer textdatei drittletzte Zeile lesen

    • Oscar
    • 3. Januar 2010 um 13:23

    Nein, nicht ganz. Xeno hat die Funktion mit "_readLineFromBack" aufgerufen, aber die Funktion heisst bei ihm "_readLastLine". Lenny hat nur den Funktionsnamen entsprechend angepasst.

  • GUI im Vordergrund

    • Oscar
    • 3. Januar 2010 um 13:01

    So schwer ist das doch nicht:
    ControlSend benötigt das Handle des Windows sowie des Control-Elements, an das die Zeichen gesendet werden sollen. Diese werden in der While...WEnd-Schleife (Zeile 55...64) ermittelt und in den globalen Variablen "$wHWND" und "$cHWND" gespeichert. In der Funktion "_Key" werden diese Variablen dann von den ControlSend-Befehlen benutzt.

  • Screenshot eines transparenten Fensters

    • Oscar
    • 3. Januar 2010 um 12:40

    Oh, unter WinXP funktioniert das tatsächlich nicht (gerade ausprobiert). Bei Win7 geht das.
    Dann habe ich leider keinen "Plan B". ?(

  • Ram auslesen?

    • Oscar
    • 3. Januar 2010 um 12:36

    Ich denke, diese Diskussion führt zu nichts, auch wenn Dein Anliegen vielleicht noch legal sein sollte. Eine Anleitung zum auslesen des RAMs könnte ebenso gut für BOT-Zwecke verwendet werden und sowas wollen wir hier nicht unterstützen.
    Deshalb: [Thread closed]

  • Screenshot eines transparenten Fensters

    • Oscar
    • 3. Januar 2010 um 12:23

    IrfanView beherrscht das und man kann das Programm gut fernsteuern.

  • GUI im Vordergrund

    • Oscar
    • 3. Januar 2010 um 12:18

    Ich hatte mal so ein Script geschrieben:

    Spoiler anzeigen
    [autoit]


    #include <Constants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    Opt('GUIOnEventMode', 1)
    Opt('TrayMenuMode', 1)
    Global $bShift = False, $bLock = False, $bOld = False, $ahKeys[57], $wHWND, $cHWND
    Global $sTitle = 'Mouse-Keyboard v1.4 by Oscar (http://www.autoit.de)'
    Global $aKeys[57][6] = [ _
    ['^', '°', 010, 060, 32, 32],['1', '!', 044, 060, 32, 32],['2', '"', 078, 060, 32, 32],['3', '§', 112, 060, 32, 32], _
    ['4', '$', 146, 060, 32, 32],['5', '%', 180, 060, 32, 32],['6', '&&', 214, 060, 32, 32],['7', '/', 248, 060, 32, 32], _
    ['8', '(', 282, 060, 32, 32],['9', ')', 316, 060, 32, 32],['0', '=', 350, 060, 32, 32],['ß', '?', 384, 060, 32, 32], _
    ['´', '`', 418, 060, 32, 32],['<-', '<-', 452, 060, 66, 32], _
    ['q', 'Q', 010, 100, 32, 32],['w', 'W', 044, 100, 32, 32],['e', 'E', 078, 100, 32, 32],['r', 'R', 112, 100, 32, 32], _
    ['t', 'T', 146, 100, 32, 32],['z', 'Z', 180, 100, 32, 32],['u', 'U', 214, 100, 32, 32],['i', 'I', 248, 100, 32, 32], _
    ['o', 'O', 282, 100, 32, 32],['p', 'P', 316, 100, 32, 32],['ü', 'Ü', 350, 100, 32, 32],['*', '+', 384, 100, 32, 32], _
    ['@', '|', 418, 100, 32, 32],['[', '\', 452, 100, 32, 32],[']', '~', 486, 100, 32, 32], _
    ['a', 'A', 010, 140, 32, 32],['s', 'S', 044, 140, 32, 32],['d', 'D', 078, 140, 32, 32],['f', 'F', 112, 140, 32, 32], _
    ['g', 'G', 146, 140, 32, 32],['h', 'H', 180, 140, 32, 32],['j', 'J', 214, 140, 32, 32],['k', 'K', 248, 140, 32, 32], _
    ['l', 'L', 282, 140, 32, 32],['ö', 'Ö', 316, 140, 32, 32],['ä', 'Ä', 350, 140, 32, 32],['#', "'", 384, 140, 32, 32], _
    ['LOCK', 'LOCK', 418, 140, 100, 32], _
    ['y', 'Y', 010, 180, 32, 32],['x', 'X', 044, 180, 32, 32],['c', 'C', 078, 180, 32, 32],['v', 'V', 112, 180, 32, 32], _
    ['b', 'B', 146, 180, 32, 32],['n', 'N', 180, 180, 32, 32],['m', 'M', 214, 180, 32, 32],[',', ';', 248, 180, 32, 32], _
    ['.', ':', 282, 180, 32, 32],['-', '_', 316, 180, 32, 32],['<', '>', 350, 180, 32, 32],['€', 'µ', 384, 180, 32, 32], _
    ['SHIFT', 'SHIFT', 418, 180, 100, 32], _
    ['SPACE', 'SPACE', 10, 220, 406, 32],['ENTER', 'ENTER', 418, 220, 100, 32] _
    ]
    $hGui = GUICreate($sTitle, 530, 280)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
    GUISetIcon('shell32.dll', -174, $hGui)
    GUISetBkColor(0xCCCCCC)
    GUICtrlCreateLabel('Send input to (Window-Title):', 10, 10, 500, 16)
    $hSendWindow = GUICtrlCreateLabel(' Select a Window!', 10, 30, 508, 18, $SS_SUNKEN)
    GUICtrlSetFont(-1, 9, 400, 0, 'Arial')
    GUICtrlSetBkColor(-1, 0xFF6666)

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

    For $i = 0 To UBound($aKeys) - 1
    $ahKeys[$i] = GUICtrlCreateButton($aKeys[$i][0], $aKeys[$i][2], $aKeys[$i][3], $aKeys[$i][4], $aKeys[$i][5])
    GUICtrlSetFont(-1, 14, 400, 0, 'Courier New')
    GUICtrlSetOnEvent(-1, '_Key')
    Next
    $hStatus = GUICtrlCreateLabel(' Status: NORMAL', -2, 264, 534, 16, Default, $WS_EX_STATICEDGE)
    GUICtrlSetBkColor(-1, 0xBBBBBB)
    TraySetIcon('shell32.dll', -174)
    TraySetClick(16)
    TrayCreateItem($sTitle)
    TrayItemSetState(-1, $TRAY_DISABLE)
    TrayCreateItem('')
    TrayCreateItem('Exit')
    TrayItemSetOnEvent(-1, '_End')

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

    GUISetState()
    WinSetOnTop($hGui, '', 1)

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

    While True
    If $wHWND <> WinGetHandle('') And WinGetHandle('') <> $hGui Then
    $wHWND = WinGetHandle('')
    $cHWND = ControlGetFocus($wHWND)
    GUICtrlSetData($hSendWindow, WinGetTitle($wHWND))
    GUICtrlSetBkColor($hSendWindow, 0x66FF66)
    Else
    Sleep(100)
    EndIf
    WEnd

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

    Func _End()
    Exit
    EndFunc ;==>_End

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

    Func _Key()
    Local $sKey = GUICtrlRead(@GUI_CtrlId)
    Switch $sKey
    Case '<-'
    ControlSend($wHWND, '', $cHWND, '{BACKSPACE}')
    Case 'LOCK'
    $bShift = False
    $bLock = True
    GUICtrlSetData($hStatus, ' Status: CAPS LOCK')
    _Shift()
    Case 'SHIFT'
    GUICtrlSetData($hStatus, ' Status: SHIFT')
    _Shift()
    $bLock = False
    Case 'SPACE'
    ControlSend($wHWND, '', $cHWND, '{SPACE}')
    Case 'ENTER'
    ControlSend($wHWND, '', $cHWND, '{ENTER}')
    Case '&&'
    ControlSend($wHWND, '', $cHWND, '{&}')
    If $bShift And Not $bLock Then _Shift()
    Case Else
    ControlSend($wHWND, '', $cHWND, $sKey)
    If $bShift And Not $bLock Then _Shift()
    EndSwitch
    EndFunc ;==>_Key

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

    Func _Shift()
    $bShift = Not $bShift
    If Not $bShift Then GUICtrlSetData($hStatus, ' Status: NORMAL')
    If $bShift = $bOld Then Return
    $bOld = $bShift
    For $i = 0 To UBound($aKeys) - 1
    GUICtrlSetData($ahKeys[$i], $aKeys[$i][$bShift])
    Next
    EndFunc ;==>_Shift

    [/autoit]
  • Nach jeden 4. Zeichen ein "-" setzen

    • Oscar
    • 3. Januar 2010 um 09:18

    Und noch ein bisschen kürzer (so habe ich es jetzt in meine Sammlung aufgenommen):

    Spoiler anzeigen
    [autoit]


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

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

    $hGui = GUICreate('Seriennr. eingeben', 240, 100)
    GUICtrlCreateLabel('Format: XXXX-XXXX-XXXX-XXXX', 20, 10, 200, 20)
    $hInput = GUICtrlCreateInput('', 20, 30, 200, 25)
    GUICtrlSetFont(-1, 12, 400, 0, 'Courier New')
    $hOk = GUICtrlCreateButton('Weiter', 146, 64, 75, 25)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUISetState(@SW_SHOW)
    GUIRegisterMsg($WM_COMMAND, '_WM_COMMAND')

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hOk
    MsgBox(0, 'Seriennr.', GUICtrlRead($hInput))
    EndSwitch
    WEnd

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

    Func _WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
    Local $sSerial
    If BitAND($wParam, 0x0000FFFF) = $hInput Then
    $sSerial = StringReplace(StringLeft(GUICtrlRead($hInput), 19), '-', '')
    $sSerial = StringMid(StringRegExpReplace($sSerial, '.{1,4}', '-$0'), 2)
    GUICtrlSetData($hInput, StringUpper($sSerial))
    If StringLen($sSerial) = 19 Then
    GUICtrlSetState($hOk, $GUI_ENABLE)
    Else
    GUICtrlSetState($hOk, $GUI_DISABLE)
    EndIf
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]
  • große dateien öffnen

    • Oscar
    • 2. Januar 2010 um 21:09

    Wenn Du große Dateien nicht komplett in den Speicher laden willst, dann musst Du sie öffnen und immer nur einen Teil (Buffer) laden und bearbeiten.
    Du könntest Dir das hier als Beispiel nehmen: ZAP UnPacker oder das: ZAX UnPacker

    Wenn Du konkrete Hilfe zu Deinem Script haben willst, dann solltest Du es mal posten [Wink mit dem Zaunpfahl]. ;)

  • Ram auslesen?

    • Oscar
    • 2. Januar 2010 um 20:52

    Schonmal die Forenregeln gelesen? Bots werden hier nicht unterstützt!

  • Nach jeden 4. Zeichen ein "-" setzen

    • Oscar
    • 1. Januar 2010 um 22:05

    Hier ist meine Lösung:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Test-Gui", 232, 83, 192, 124)
    $1 = GUICtrlCreateInput("", 16, 32, 201, 21)
    $Label1 = GUICtrlCreateLabel("Format: XXXX-XXXX-XXXX-XXXX", 32, 8, 163, 17)
    $Button1 = GUICtrlCreateButton("Weiter", 144, 56, 75, 25, $WS_GROUP)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    GUIRegisterMsg($WM_COMMAND, '_WM_COMMAND')

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

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

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

    Func _WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
    Local $nID, $sInput, $aInput
    $nID = BitAND($wParam, 0x0000FFFF)
    If $nID = $1 Then
    $sInput = StringReplace(StringLeft(GUICtrlRead($1), 19), '-', '')
    $aInput = StringRegExp(StringUpper($sInput), '.{1,4}', 3)
    $sInput = ''
    For $i = 0 To UBound($aInput) - 1
    $sInput &= $aInput[$i] & '-'
    Next
    $sInput = StringTrimRight($sInput, 1)
    GUICtrlSetData($1, $sInput)
    If StringLen($sInput) = 19 Then
    GUICtrlSetState($Button1, $GUI_ENABLE)
    Else
    GUICtrlSetState($Button1, $GUI_DISABLE)
    EndIf
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]
  • Organize Includes

    • Oscar
    • 1. Januar 2010 um 21:24
    Zitat von Micha_he

    Ich nutze zum Schreiben von AutoIt-Quellcode den Crimson-Editor.

    Ist es auch möglich, "Organize Includes" ohne SciTE zu nutzen ?
    Commandline-Parameter habe ich keine gefunden und eine Oberfläche öffnet sich bei Start per Doppelklick nicht.

    OI ist sehr auf SciTE zugeschnitten (Übernahme des Quellcodes und automatisches einfügen der Includes). Ich weiß jetzt nicht, ob Xeno vorhat, das Tool universell nutzbar zu machen, aber wenn Dir vielleicht mein kleines Script ausreicht:

    ClipPutIncludes
    [autoit]


    #NoTrayIcon
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Change2CUI=y
    #AutoIt3Wrapper_Res_Description=ClipPutIncludes
    #AutoIt3Wrapper_Res_Fileversion=1.0.0.0
    #AutoIt3Wrapper_Res_LegalCopyright=by Oscar (http://www.autoit.de)
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

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

    #Region ;**** Includes created by ClipPutIncludes ****
    #include <Array.au3>
    #include <File.au3>
    #EndRegion ;**** Includes created by ClipPutIncludes ****

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

    Global $sTitle = 'ClipPutIncludes v1.0'

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

    Global $sRegKey = 'HKEY_LOCAL_MACHINE64\SOFTWARE\', $sStablePath, $sStableError, $sBetaPath, $sBetaError
    If @OSArch <> 'X86' Then $sRegKey &= 'Wow6432Node\'
    $sStablePath = RegRead($sRegKey & 'AutoIt v3\AutoIt', 'InstallDir')
    $sStableError = @error
    $sBetaPath = RegRead($sRegKey & 'AutoIt v3\AutoIt', 'betaInstallDir')
    $sBetaError = @error

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

    Global $oDictStable = ObjCreate('Scripting.Dictionary')
    Global $oDictBeta = ObjCreate('Scripting.Dictionary')
    If Not IsObj($oDictStable) Or Not IsObj($oDictBeta) Then Exit ConsoleWrite("ERROR! Can't create Scripting.Dictionary!" & @CRLF)

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

    Global $iTimeDiff, $iTimer1, $iTimer2, $aRequired, $sOut
    Global $sSourcePath, $sUseAutoItVersion = 'stable'

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

    If $CmdLine[0] = 0 Then
    $sSourcePath = FileOpenDialog($sTitle, @WorkingDir & '\', 'AutoIt-Script (*.au3)', 3)
    If @error Then Exit ConsoleWrite('ERROR! Scriptfile not found!' & @CRLF)
    Else
    For $i = 1 To $CmdLine[0]
    If $CmdLine[$i] = '-stable' Then $sUseAutoItVersion = 'stable'
    If $CmdLine[$i] = '-beta' Then $sUseAutoItVersion = 'beta'
    If $CmdLine[$i] = '-s' And $CmdLine[0] > $i Then $sSourcePath = $CmdLine[$i + 1]
    Next
    If $sSourcePath = '' Then
    $sSourcePath = FileOpenDialog($sTitle, @WorkingDir & '\', 'AutoIt-Script (*.au3)', 3)
    If @error Then Exit ConsoleWrite('ERROR! Scriptfile not found!' & @CRLF)
    EndIf
    If Not FileExists($sSourcePath) Then Exit ConsoleWrite('ERROR! Scriptfile not exists!' & @CRLF)
    EndIf

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

    $iTimer1 = TimerInit()
    ConsoleWrite('# Start: Read Includes' & @CRLF)
    Switch $sUseAutoItVersion
    Case 'stable'
    If $sStableError Then Exit ConsoleWrite('ERROR! AutoIt (stable) not installed!' & @CRLF)
    _GetIncludeFuncsAndVars($sStablePath & '\Include', $oDictStable)
    Case 'beta'
    If $sBetaError Then Exit ConsoleWrite('ERROR! AutoIt (beta) not installed!' & @CRLF)
    _GetIncludeFuncsAndVars($sBetaPath & '\Include', $oDictBeta)
    EndSwitch
    $iTimeDiff = Int(TimerDiff($iTimer1))
    ConsoleWrite('# Read Includes complete: ' & $iTimeDiff & ' ms' & @CRLF)

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

    $iTimer2 = TimerInit()
    ConsoleWrite('# Start: Analyse Script' & @CRLF)
    Switch $sUseAutoItVersion
    Case 'stable'
    $aRequired = _GetRequiredIncludes($sSourcePath, $oDictStable)
    If @error = 2 Then Exit ConsoleWrite("ERROR! Can't open Scriptfile!" & @CRLF)
    Case 'beta'
    $aRequired = _GetRequiredIncludes($sSourcePath, $oDictBeta)
    If @error = 2 Then Exit ConsoleWrite("ERROR! Can't open Scriptfile!" & @CRLF)
    EndSwitch
    $aRequired = _ArrayUnique($aRequired)
    ConsoleWrite('# Analyse Script complete: ' & Int(TimerDiff($iTimer2)) & ' ms' & @CRLF)
    ConsoleWrite('# Totaltime: ' & Int(TimerDiff($iTimer1)) & ' ms' & @CRLF)

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

    ConsoleWrite('# Copy includes to Clipboard!' & @CRLF)
    $sOut = '#Region ;**** Includes created by ClipPutIncludes ****' & @CRLF
    For $i = 1 To $aRequired[0]
    $sOut &= $aRequired[$i] & @CRLF
    Next
    $sOut &= '#EndRegion ;**** Includes created by ClipPutIncludes ****' & @CRLF
    ClipPut($sOut)
    ConsoleWrite('# Ready.' & @CRLF)
    Exit

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

    Func _GetIncludeFuncsAndVars($sPath, ByRef $oDict)
    If Not IsObj($oDict) Then Return SetError(1, 0, 0)
    Local $aIncludeFiles, $aAll[1][2], $sFile, $aTmp, $iCount
    $aIncludeFiles = _FileListToArray($sPath, '*.au3', 1)
    If @error Then Return SetError(2, 0, 0)
    For $i = 1 To $aIncludeFiles[0]
    $sFile = FileRead($sPath & '\' & $aIncludeFiles[$i])
    $aTmp = StringRegExp($sFile, '(?s)(?:Global|Global Const) (\$.+?)(?:\;|\,|\h)', 3)
    If IsArray($aTmp) Then
    For $j = 0 To UBound($aTmp) - 1
    If Not $oDict.Exists($aTmp[$j]) Then $oDict.add($aTmp[$j], $aIncludeFiles[$i])
    Next
    EndIf
    $aTmp = StringRegExp($sFile, '(?s)\vFunc (.+?)\h*\(', 3)
    If IsArray($aTmp) Then
    For $j = 0 To UBound($aTmp) - 1
    If Not $oDict.Exists($aTmp[$j]) Then $oDict.add($aTmp[$j], $aIncludeFiles[$i])
    Next
    EndIf
    Next
    EndFunc ;==>_GetIncludeFuncsAndVars

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

    Func _GetRequiredIncludes($sScriptPath, ByRef $oDict)
    If Not IsObj($oDict) Then Return SetError(1, 0, 0)
    Local $sFile, $sOut
    $sFile = FileRead($sScriptPath)
    If @error Then Return SetError(2, 0, 0)
    For $strKey In $oDict.Keys
    If StringRegExp($sFile, StringReplace($strKey, '$', '\$')) Then
    ConsoleWrite(StringFormat(' %-40s -> %-40s', $strKey, $oDict.Item($strKey)) & @CR)
    $sOut &= '#include <' & $oDict.Item($strKey) & '>' & '|'
    EndIf
    Next
    If $sOut = '' Then Return
    Return StringSplit(StringTrimRight($sOut, 1), '|', 2)
    EndFunc ;==>_GetRequiredIncludes

    [/autoit]


    Das ist nicht mit OI zu vergleichen, da es viel weniger Funktionen bietet, aber ein schnelles einfügen (per Clipboard) der benötigten Includes funktioniert.
    Das Tool lässt sich per Commandozeile aufrufen. Zum Beispiel: ClipPutIncludes -beta -s "Scriptfile.au3"

    Dateien

    ClipPutIncludes.au3 4,97 kB – 953 Downloads
  • GDIPlus Digitaluhr

    • Oscar
    • 31. Dezember 2009 um 14:10

    Ach verdammt, das sollte nicht @OSType, sondern @OSArch heissen. Also einfach bei meiner Funktion entsprechend austauschen, dann sollte es überall laufen.
    Ich habe übrigens Win7 64Bit.

  • Benötige " als Text

    • Oscar
    • 31. Dezember 2009 um 04:14

    Chr(34) wäre eine andere Möglichkeit.

  • PID anhand des Pfades?

    • Oscar
    • 30. Dezember 2009 um 16:21

    Habe diese Funktion mal archiviert, aber ich weiß nicht mehr von wem sie ist.
    Damit bekommst Du den Pfad von einem Prozess:

    Spoiler anzeigen
    [autoit]


    $Pfad = _ProcessGetPath('firefox.exe')

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

    MsgBox(0, '', 'Prozesspfad: ' & $Pfad)

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

    Func _ProcessGetPath($PID)
    If IsString($PID) Then $PID = ProcessExists($PID)
    $Path = DllStructCreate('char[1000]')
    $dll = DllOpen('Kernel32.dll')
    $handle = DllCall($dll, 'int', 'OpenProcess', 'dword', 0x0400 + 0x0010, 'int', 0, 'dword', $PID)
    $ret = DllCall('Psapi.dll', 'long', 'GetModuleFileNameEx', 'long', $handle[0], 'int', 0, 'ptr', DllStructGetPtr($Path), 'long', DllStructGetSize($Path))
    $ret = DllCall($dll, 'int', 'CloseHandle', 'hwnd', $handle[0])
    DllClose($dll)
    Return DllStructGetData($Path, 1)
    EndFunc

    [/autoit]
  • GDIPlus Digitaluhr

    • Oscar
    • 30. Dezember 2009 um 16:08

    @xp_fan: Schön gemacht, aber der Neustart nach der Farbauswahl funktioniert nicht.
    Ich habe die Funktion "Farbe" mal angepasst, sodass es mit einem 32Bit- und einem 64Bit-Windows funktioniert:

    [autoit]


    Func _Farbe($active, $notactive)
    AdlibUnRegister("_Update")
    GUIDelete()
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()
    $param1 = String($active)
    $param2 = String($notactive)
    $s2 = String(@ScriptName)
    If @OSType = 'X86' Then
    $autoit = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\AutoIt', 'InstallDir') & '\AutoIt3.exe' ; für 32 Bit
    Else
    $autoit = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\AutoIt v3\AutoIt', 'InstallDir') & '\AutoIt3_x64.exe' ; für 64 Bit
    EndIf
    Run(Chr(34) & $autoit & Chr(34) & " " & $s2 & " " & $param1 & " " & $param2)
    Exit
    EndFunc ;==>_Farbe

    [/autoit]
  • Computer-Info

    • Oscar
    • 30. Dezember 2009 um 15:50

    Ja, das Script bekommt noch ein paar Funktionen dazu. Das Ganze sollte ja flexibel und leicht erweiterbar sein, deshalb habe ich ja alles in Funktionen ausgelagert und mit TABs eingebunden.
    Von daher sind Erweiterungen leichter machbar als vorher. Und ja, dass die Daten immer wieder neu geladen werden ist nicht zwingend nötig, aber bei den meisten Sachen braucht's ja nicht so lange.
    Erstmal muss ich jetzt die GetMonitor-Funktion vervollständigen.

    User und Localgroups habe ich mal auf die TODO-Liste gesetzt.

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™