Auf so eine verrückte Idee ist bis jetzt keiner gekommen
Auch auf die Gefahr, dich enttäuschen zu müssen ![]()
Das haben bereits mindestens 2 vor dir getan, sogar mit der Möglichkeit das komponierte aufzuzeichnen. Durchsuch mal das Skriptforum. ![]()
Auf so eine verrückte Idee ist bis jetzt keiner gekommen
Auch auf die Gefahr, dich enttäuschen zu müssen ![]()
Das haben bereits mindestens 2 vor dir getan, sogar mit der Möglichkeit das komponierte aufzuzeichnen. Durchsuch mal das Skriptforum. ![]()
Nimm dafür das Tool GetMAC.
Edit: Oder so:
[autoit]$strComputer = "."
$objWMIService = ObjGet("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2")
$colAdapters = $objWMIService.ExecQuery _
("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
$n = 1
$str = ''
For $objAdapter in $colAdapters
$str &= "Network Adapter " & $n & @LF
$str &= "=================" & @LF
$str &= " Description: " & $objAdapter.Description & @LF
$str &= " Physical (MAC) address: " & $objAdapter.MACAddress & @LF
$str &= " Host name: " & $objAdapter.DNSHostName & @LF
$n += 1
Next
ConsoleWrite($str & @CRLF)
SciTE besitzt ein eigenes Repository (was ich aber noch nie wirklich zum Einsatz gekriegt habe
).
Aber du kannst natürlich SVN Repository lokal installieren und deine Dokumente, wie üblich auschecken.
Ich hatte mal angefangen eine SciTE-SVN Verknüpfung zu basteln, ist dann aber irgendwann liegengeblieben. Vielleicht kannst du es ja beleben? ![]()
Du kannst MousTrap zum Begrenzen der Mausbewegung auf dein Eingabefenster verwenden. Sperre zusätzlich den Taskmanager (Benutze die SuFu, habe dafür mal ein Skript erstellt), damit dein Skript nicht abgeschossen wird, weiterhin mußt du einen Hook auf die Windows- und Menü- Tasten legen (auch SuFu nutzen, Hook-Bsp. hab ich gepostet) und diese Tasten ins Leere laufen lassen.
Kriegen wir denn die Erlaubnis? Sonst nehme ich es wieder raus.
Ich habe nichts dagegen, wenn meine Skripte geposted werden. Aber ich denke, es gehört zum guten Ton einen Verweis auf den Autor anzubringen. Und das gilt natürlich für Skripte aller Autoren.
Und wenn dort Skripte von mir gepostet werden, erwarte ich zumindest, dass ich als Autor benannt werde!
(Bsp. Hex Color List)
Da du die Control Class auslesen konntest und auch der Name der Class auf ein Standard-Ctrl schließen läßt, ist die Anwendung der Control-Befehle schon korrekt.
Ich vermute, das Fenster wird nicht erkannt. Versuche doch mal mit Opt("WinTitleMatchMode", 2) auch die Erkennung von Teilen des Titels zuzulassen.
Hi,
braucht man sicher ab und an.
Aber warum die Limitierung auf 256 Zeichen?
Ich hab mal deine Func _String_GetCharacter etwas umgemodelt und im Bsp. gezeigt, dass auch große Stringlängen kein Problem bereiten.
Übrigens empfiehlt es sich zur besseren Flexibilität "wchar" zu verwenden.
Achja: Fehlerrückgabe sollte als @error und numerisch erfolgen.
$s = ''
For $i = 1 To 4096
$s &= Random(1,9,1)
Next
ConsoleWrite('letzter(4096) = ' & StringRight($s,1) & @CRLF)
ConsoleWrite(_String_GetCharacter($s, 4096) & @CRLF)
Func _String_GetCharacter($s_String, $i_Index)
Local $len = StringLen($s_String)
If $i_Index > $len Then Return SetError(1,0,-1)
Local $c_Struct = DllStructCreate("wchar[" & $len+1 & "]")
DllStructSetData($c_Struct, 1, $s_String)
Return DllStructGetData($c_Struct, 1, $i_Index)
EndFunc
ich hab seit längerem im internet nach guten autoit tutorials gesucht bisher aber keins das für anfänger wierklich geeigtnet wäre.....
Das kann ich nicht nachvollziehen!
Vielleicht solltest du dir mal klarmachen, was ein Tut bewirken soll. Du kannst fast jedes Skriptbeispiel in der Hilfe als kleines Tutorial betrachten. Du kannst sehen, wozu Funktionen verwendetet werden und wie die Syntax dazu ist. Was willst du mehr?
Und die im Forum reichlich vorhandenen Tut's sind auch alle so gehalten, dass man ohne großartige Vorkenntnisse sich dort hineinarbeiten kann.
Was wir natürlich als Selbstverständlichkeit erachten: dass man die AutoIt-Hilfe intensiv nutzt.
Würde das nicht besser sein wenn man das GUI nicht bewegen könnte o. steckt da absicht hinter?
Das kann man natürlich nach seinem Geschmack anpassen.
Ziel war eine Möglickeit zu schaffen, ähnlich wie bei Entwickleroberflächen, bedarfsweise Fenster mit z.B. Funktionsinfos o.ä. einblenden zu können.
Hi,
bevor ich wieder ewig nach dem Skript suche, werde ich es mal schnell hier posten. ![]()
Es existiert eine "Pinnleiste" in Form von vertikalen Labels. Über diese Labels wird bei Klick das zugehörige Child ein-/ausgefadet.
(Kann sein, dass ich es schonmal geposted habe - aber ich finde es nicht mehr ;))
#include <GDIPlus.au3>
#include <WinAPI.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
Global Const $AW_SLIDE = 0x40000
Global Const $AW_HOR_POSITIVE = 0x1 ; left to right
Global Const $AW_HOR_NEGATIVE = 0x2 ; right to left
Global Const $AW_ACTIVATE = 0x20000 ; Activates the window
Global Const $AW_HIDE = 0x10000
Global Const $iPI = 3.1415926535897932384626433832795
Global $aChild[3], $aLbl[3], $aGraphics[3], $hWnd, $guiMain, $edit, $closehWnd = 0
Local $iHTitel = _WinAPI_GetSystemMetrics(4), $iWBorder = _WinAPI_GetSystemMetrics(32)+_WinAPI_GetSystemMetrics(5)
Local $iWMain = 800, $iHMain = 600, $iWChild = 200, $iHChild = $iHMain-$iHTitel
_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]$guiMain = GUICreate('Main', $iWMain, $iHMain, -1, -1, Default, $GUI_WS_EX_PARENTDRAG)
$hWnd = WinGetHandle($guiMain)
GUISetOnEvent(-3, '_ende')
$edit = GUICtrlCreateEdit('', 15, 15, $iWMain-50, $iHMain-30)
$aLbl[0] = GUICtrlCreateLabel('', $iWMain-20, 0, 18, 70)
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetOnEvent(-1, "_show")
$aLbl[1] = GUICtrlCreateLabel('', $iWMain-20, 72, 18, 70)
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetOnEvent(-1, "_show")
$aLbl[2] = GUICtrlCreateLabel('', $iWMain-20, 144, 18, 70)
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetOnEvent(-1, "_show")
$lblBlank = GUICtrlCreateLabel('', $iWMain-20, 216, 18, $iHMain-216)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$hGraphics = _GDIPlus_GraphicsCreateFromHWND($guiMain)
$aChild[0] = GUICreate("Child 1", $iWChild, $iHChild-$iWBorder, $iWMain-$iWChild-$iWBorder-21, -21, _
$WS_CAPTION, $WS_EX_MDICHILD, $guiMain)
$aChild[1] = GUICreate("Child 2", $iWChild, $iHChild-$iWBorder, $iWMain-$iWChild-$iWBorder-21, -21, _
$WS_CAPTION, $WS_EX_MDICHILD, $guiMain)
$aChild[2] = GUICreate("Child 3", $iWChild, $iHChild-$iWBorder, $iWMain-$iWChild-$iWBorder-21, -21, _
$WS_CAPTION, $WS_EX_MDICHILD, $guiMain)
GUISetState(@SW_SHOW, $GUImain)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]GDIPlus_SetAngledText($hGraphics, 'Pinn 1', 790, 35, 270, "Courier New", 12, 0xFF0000FF)
GDIPlus_SetAngledText($hGraphics, 'Pinn 2', 790, 107, 270, "Courier New", 12, 0xFF0000FF)
GDIPlus_SetAngledText($hGraphics, 'Pinn 3', 790, 179, 270, "Courier New", 12, 0xFF0000FF)
While 1
Sleep(100)
WEnd
Func _ende()
Exit
EndFunc
Func _show()
Local $ID = @GUI_CtrlId
For $i = 0 To UBound($aChild) -1
If ($aLbl[$i] <> $ID) And (WinGetState($aChild[$i]) > 5) Then
$closehWnd = WinGetHandle($aChild[$i])
_hide()
EndIf
Next
For $i = 0 To UBound($aChild) -1
If ($aLbl[$i] = $ID) And (WinGetState($aChild[$i]) > 5) Then
$closehWnd = WinGetHandle($aChild[$i])
Return _hide()
EndIf
Next
For $i = 0 To UBound($aLbl) -1
If $aLbl[$i] = $ID Then _slideIn(WinGetHandle($aChild[$i]))
Next
EndFunc
Func _hide()
Local $hWnd = @GUI_WinHandle
If $closehWnd Then
$hWnd = $closehWnd
$closehWnd = 0
EndIf
Return _slideOut($hWnd)
EndFunc
Func _slideIn($hWnd)
Local $width = $iWMain-30-$iWChild-$iWBorder-21
ControlMove($guiMain, '', $edit, 15, 15, $width, $iHMain-30)
AnimateWindow($hWnd, BitOR($AW_SLIDE, $AW_ACTIVATE, $AW_HOR_NEGATIVE))
EndFunc
Func _slideOut($hWnd)
AnimateWindow($hWnd, BitOR($AW_SLIDE, $AW_HIDE, $AW_HOR_POSITIVE))
Local $width = $iWMain-50
ControlMove($guiMain, '', $edit, 15, 15, $width, $iHMain-30)
EndFunc
Func AnimateWindow($hWnd, $dwFlags, $dwTime=100)
DllCall("user32", 'long', 'AnimateWindow', 'hwnd', $hWnd, 'long', $dwTime, 'long', $dwFlags)
EndFunc
; #FUNCTION# ================================================================
; Name...........: GDIPlus_SetAngledText
; Description ...: Adds text to a graphic object at any angle.
; Syntax.........: GDIPlus_SetAngledText($hGraphic, $nText, [$iCentreX, [$iCentreY, [$iAngle , [$nFontName , _
; [$nFontSize, [$iARGB, [$iAnchor]]]]]]] )
; Parameters ....: $hGraphic - The Graphics object to receive the added text.
; $nText - Text string to be displayed
; $iCentreX - Horizontal coordinate of horixontal centre of the text rectangle (default = 0 )
; $iCentreY - Vertical coordinate of vertical centre of the text rectangle (default = 0 )
; $iAngle - The angle which the text will be place in degrees. (default = "" or blank = 0 )
; $nFontName - The name of the font to be used (default = "" or Blank = "Arial" )
; $nFontSize - The font size to be used (default = "" or Blank = 12 )
; $iARGB - Alpha(Transparency), Red, Green and Blue color (0xAARRGGBB) (Default= "" = random color
; or Default = Blank = 0xFFFF00FF )
; $iAnchor - If zero (default) positioning $iCentreX, $iCentreY values refer to centre of text string.
; If not zero positioning $iCentreX, $iCentreY values refer to top left corner of text string.
; Return values .: 1
; Author ........: Malkey
; Modified.......:
; Remarks .......: Call _GDIPlus_Startup() before starting this function, and call _GDIPlus_Shutdown()after function ends.
; Can enter calculation for Angle Eg. For incline, -ATan($iVDist / $iHDist) * 180 / $iPI , where
; $iVDist is Vertical Distance, $iHDist is Horizontal Distance, and, $iPI is Pi, (an added Global Const).
; When used with other graphics, call this function last. The MatrixRotate() may affect following graphics.
; Related .......: _GDIPlus_Startup(), _GDIPlus_Shutdown(), _GDIPlus_GraphicsDispose($hGraphic)
; Link ..........;
; Example .......; Yes
; ========================================================================================
Func GDIPlus_SetAngledText($hGraphic, $nText, $iCentreX = 0, $iCentreY = 0, $iAngle = 0, $nFontName = "Arial", _
$nFontSize = 12, $iARGB = 0xFFFF00FF, $iAnchor = 0)
Local $x, $y, $iX, $iY, $iWidth, $iHeight
Local $hMatrix, $iXt, $iYt, $hBrush, $hFormat, $hFamily, $hFont, $tLayout
; Default values
If $iAngle = "" Then $iAngle = 0
If $nFontName = "" Or $nFontName = -1 Then $nFontName = "Arial" ; "Microsoft Sans Serif"
If $nFontSize = "" Then $nFontSize = 12
If $iARGB = "" Then ; Randomize ARGB color
$iARGB = "0xFF" & Hex(Random(0, 255, 1), 2) & Hex(Random(0, 255, 1), 2) & Hex(Random(0, 255, 1), 2)
EndIf
$hFormat = _GDIPlus_StringFormatCreate(0)
$hFamily = _GDIPlus_FontFamilyCreate($nFontName)
$hFont = _GDIPlus_FontCreate($hFamily, $nFontSize, 1, 3)
$tLayout = _GDIPlus_RectFCreate($iCentreX, $iCentreY, 0, 0)
$aInfo = _GDIPlus_GraphicsMeasureString($hGraphic, $nText, $hFont, $tLayout, $hFormat)
$iWidth = Ceiling(DllStructGetData($aInfo[0], "Width"))
$iHeight = Ceiling(DllStructGetData($aInfo[0], "Height"))
;Later calculations based on centre of Text rectangle.
If $iAnchor = 0 Then ; Reference to middle of Text rectangle
$iX = $iCentreX
$iY = $iCentreY
Else ; Referenced centre point moved to top left corner of text string.
$iX = $iCentreX + (($iWidth - Abs($iHeight * Sin($iAngle * $iPI / 180))) / 2)
$iY = $iCentreY + (($iHeight + Abs($iWidth * Sin($iAngle * $iPI / 180))) / 2)
EndIf
;Rotation Matrix
$hMatrix = _GDIPlus_MatrixCreate()
_GDIPlus_MatrixRotate($hMatrix, $iAngle, 1)
_GDIPlus_GraphicsSetTransform($hGraphic, $hMatrix)
;x, y are display coordinates of center of width and height of the rectanglular text box.
;Top left corner coordinates rotate in a circular path with radius = (width of text box)/2.
;Parametric equations for a circle, and adjustments for centre of text box
$x = ($iWidth / 2) * Cos($iAngle * $iPI / 180) - ($iHeight / 2) * Sin($iAngle * $iPI / 180)
$y = ($iWidth / 2) * Sin($iAngle * $iPI / 180) + ($iHeight / 2) * Cos($iAngle * $iPI / 180)
;Rotation of Coordinate Axes formulae - To display at x and y after rotation, we need to enter the
;x an y position values of where they rotated from. This is done by rotating the coordinate axes.
;Use $iXt, $iYt in _GDIPlus_RectFCreate. These x, y values is the position of the rectangular
;text box point before rotation. (before translation of the matrix)
$iXt = ($iX - $x) * Cos($iAngle * $iPI / 180) + ($iY - $y) * Sin($iAngle * $iPI / 180)
$iYt = -($iX - $x) * Sin($iAngle * $iPI / 180) + ($iY - $y) * Cos($iAngle * $iPI / 180)
$hBrush = _GDIPlus_BrushCreateSolid($iARGB)
$tLayout = _GDIPlus_RectFCreate($iXt, $iYt, $iWidth, $iHeight)
_GDIPlus_GraphicsDrawStringEx($hGraphic, $nText, $hFont, $tLayout, $hFormat, $hBrush)
; Clean up resources
_GDIPlus_MatrixDispose($hMatrix)
_GDIPlus_FontDispose($hFont)
_GDIPlus_FontFamilyDispose($hFamily)
_GDIPlus_StringFormatDispose($hFormat)
_GDIPlus_BrushDispose($hBrush)
$tLayout = ""
Return 1
EndFunc ;==>GDIPlus_SetAngledText
Oder hier der Verweis auf den Beitrag in unserem Forum
Text auf GUI in jedem gewünschten Winkel
Um die Anzahl der Zeilen/Spalten zu ermitteln gibt es
.UsedRange.Rows/Columns.Count
Hier mal im Bsp.:
; === Excel Objekt erstellen
Local $oBook = ObjCreate("Excel.Application")
With $oBook
.SheetsInNewWorkbook = 1
.Visible = 1
.WorkBooks.Add
.ActiveWorkbook.Sheets(1).Select ()
EndWith
; === Zellen füllen (A1 bis I21)
For $i = 0 To 8
For $j = 0 To 20
$oBook.Range("A1").Offset($i, $j).Value = StringFormat('%3d', Random(1, 999, 1))
Next
Next
; === letzte Zeile
ConsoleWrite('Anzahl Zeilen: ' & $oBook.Worksheets(1).UsedRange.Rows.Count & @CRLF)
; === letzte Spalte
ConsoleWrite('Anzahl Spalten: ' & $oBook.Worksheets(1).UsedRange.Columns.Count & @CRLF)
; === Excel Objekt beenden ohne speichern
$oBook.DisplayAlerts = False
$oBook.Application.Quit
Hi,
beim Darstellen von Pfaden beispielsweise in Listviews, steht ja für die Pfadanzeige nur begrenzter Platz zur Verfügung.
Mit der Funktion _MakeAliasFileArray wird aus einem Array, das die vollen Dateipfade enthält, ein 2D-Array erstellt mit vollem Dateipfad und zusätzlichem Anzeigenamen (Alias) in vorgegebener maximaler Länge.
Als Alias kann wahlweise nur der Dateiname oder Pfad & Dateiname verwendet werden.
- nur Dateiname
Ist der Dateiname länger als max. Länge, wird nach dem 3. Buchstaben ausgeschnitten bis zur max. Länge. An der Schnittstelle wird "~~" eingesetzt.
- Pfad & Dateiname
Ist der Dateiname länger als max. Länge, so gilt wie oben. Allerdings wird weitere 3 (bzw. 5) Zeichen eingekürzt und in der Anzeige erscheint vor dem Dateinamen "Lw:\", befindet sich die Datei nicht im Root wird "Lw:\..." vorangestellt.
Kann die Datei in voller Länge verwendet werden, wird der Pfad, so weit wie möglich übernommen und dann mit "..." zum Dateinamen verbunden.
Hier mal im Bsp., wie von der Alias-Anzeige der kpl. Pfad per Mausklick ausgewählt wird:
#include <GUIConstantsEx.au3>
#include <GUIListView.au3>
#include <ListViewConstants.au3>
$gui = GUICreate('nur Datei')
$LV = GUICtrlCreateListView('Datei (Pfad)', 20, 20, 300, 300)
$hLV = GUICtrlGetHandle($LV)
_GUICtrlListView_SetColumnWidth($hLV, 0, $LVSCW_AUTOSIZE_USEHEADER)
$btChg = GUICtrlCreateButton('Ordner u. Pfad zeigen', 20, 350, 180, 20)
$dir = FileSelectFolder('Bitte Ordner zur Rekursiv-Auflistung wählen.', @MyDocumentsDir, 4)
If @error Then Exit MsgBox(0, 'Fehler', 'Es wurde kein Ordner ausgewählt!' & @LF & 'Programm wird beendet.')
$aFiles = _GetFilesFolder_Rekursiv($dir, -1, 0)
Global $aRet = _MakeAliasFileArray($aFiles, 0)
For $i = 0 To UBound($aRet) -1
GUICtrlCreateListViewItem($aRet[$i][1], $LV)
Next
GUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
$msg = GUIGetMsg()
Switch $msg
Case -3
Exit
Case $btChg
GUICtrlSetState($btChg, $GUI_DISABLE)
GUISetState(@SW_LOCK)
WinSetTitle($gui, '', 'Datei mit Pfad')
_GUICtrlListView_DeleteAllItems($hLV)
$aRet = _MakeAliasFileArray($aFiles)
For $i = 0 To UBound($aRet) -1
GUICtrlCreateListViewItem($aRet[$i][1], $LV)
Next
GUISetState(@SW_UNLOCK)
Case $GUI_EVENT_PRIMARYUP
$cursor = GUIGetCursorInfo()
If $cursor[4] = $LV Then
$index = _GUICtrlListView_GetSelectedIndices($hLV)
If $index >= 0 Then MsgBox(0, 'markiert', $aRet[$index][0])
EndIf
EndSwitch
WEnd
;===============================================================================
; Function Name: _MakeAliasFileArray(ByRef $aFullPath, $iBoth=1, $iStartIndex=1, $iMaxAliasLen=30)
; Description: Creates an 2D-Array with Aliasname (i.e. to show in an Listview) and full path
; Parameter(s): $aFullPath 1D-Array with full file pathes (i.e. from my UDF _GetFilesFolder_Rekursiv)
; optional: $iBoth=1 Path and filename are shown (default), 0 - only filename
; optional: $iStartIndex Index of first entry (default = 1)
; optional: $iMaxAliasLen Maximum count of chars in Alias name (minimum is 20, shorter makes not sense)
; Return Value(s): Success 2D-Array with Aliasname and full file path
; Failure set @error 1 - no array given
; 2 - $iStartIndex out of range
; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
;===============================================================================
Func _MakeAliasFileArray(ByRef $aFullPath, $iBoth=1, $iStartIndex=1, $iMaxAliasLen=30)
If Not IsArray($aFullPath) Then Return SetError(1,0,0)
If $iStartIndex < 0 Then Return SetError(2,0,0)
Local $iUbound = UBound($aFullPath) -$iStartIndex
If $iUbound < 1 Then Return SetError(2,0,0)
If $iMaxAliasLen < 20 Then $iMaxAliasLen = 20
Local $aOut[$iUbound][2]
For $i = 0 To UBound($aOut) -1
$aOut[$i][0] = $aFullPath[$i+$iStartIndex]
StringRegExpReplace($aOut[$i][0], '\\', '')
Local $sub = @extended -1
Local $file = StringRight($aOut[$i][0], StringLen($aOut[$i][0])-StringInStr($aOut[$i][0], '\', 1, -1))
Local $lw = StringLeft($aOut[$i][0], 3)
Switch $iBoth
Case 0
If StringLen($file) > $iMaxAliasLen Then
$aOut[$i][1] = StringLeft($file, 3) & '~~' & StringRight($file, $iMaxAliasLen -5)
Else
$aOut[$i][1] = $file
EndIf
Case 1
If StringLen($aOut[$i][0]) <= $iMaxAliasLen Then
$aOut[$i][1] = $aFullPath[$i+$iStartIndex]
Else
If $sub > 0 Then
If StringLen($file) >= $iMaxAliasLen -6 Then
$aOut[$i][1] = $lw & '...' & StringLeft($file, 3) & '~~' & StringRight($file, $iMaxAliasLen -11)
Else
$aOut[$i][1] = StringLeft($aOut[$i][0], $iMaxAliasLen -StringLen($file) -3) & '...' & $file
EndIf
Else
$aOut[$i][1] = $lw & StringLeft($file, 3) & '~~' & StringRight($file, $iMaxAliasLen -8)
EndIf
EndIf
EndSwitch
Next
Return $aOut
EndFunc ;==>_MakeAliasFileArray
;==================================================================================================
; Function Name: _GetFilesFolder_Rekursiv($sPath [, $sExt='*' [, $iDir=-1 [, $iRetType=0 ,[$sDelim='0']]]])
; Description: Recursive listing of files and/or folders
; Parameter(s): $sPath Basicpath of listing ('.' -current path, '..' -parent path)
; $sExt Extension for file selection '*' or -1 for all (Default)
; $iDir -1 Files+Folder(Default), 0 only Files, 1 only Folder
; optional: $iRetType 0 for Array, 1 for String as Return
; optional: $sDelim Delimiter for string return
; 0 -@CRLF (Default) 1 -@CR 2 -@LF 3 -';' 4 -'|'
; Return Value(s): Array (Default) or string with found pathes of files and/or folder
; Array[0] includes count of found files/folder
; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
;==================================================================================================
Func _GetFilesFolder_Rekursiv($sPath, $sExt='*', $iDir=-1, $iRetType=0, $sDelim='0')
Global $oFSO = ObjCreate('Scripting.FileSystemObject')
Global $strFiles = ''
Switch $sDelim
Case '1'
$sDelim = @CR
Case '2'
$sDelim = @LF
Case '3'
$sDelim = ';'
Case '4'
$sDelim = '|'
Case Else
$sDelim = @CRLF
EndSwitch
If ($iRetType < 0) Or ($iRetType > 1) Then $iRetType = 0
If $sExt = -1 Then $sExt = '*'
If ($iDir < -1) Or ($iDir > 1) Then $iDir = -1
__ShowSubFolders($oFSO.GetFolder($sPath),$sExt,$iDir,$sDelim)
If $iRetType = 0 Then
Local $aOut
$aOut = StringSplit(StringTrimRight($strFiles, StringLen($sDelim)), $sDelim, 1)
If $aOut[1] = '' Then
ReDim $aOut[1]
$aOut[0] = 0
EndIf
Return $aOut
Else
Return StringTrimRight($strFiles, StringLen($sDelim))
EndIf
EndFunc ;==>_GetFilesFolder_Rekursiv
Func __ShowSubFolders($Folder, $Ext='*', $Dir=-1, $Delim=@CRLF)
If Not IsDeclared("strFiles") Then Global $strFiles = ''
If ($Dir = -1) Or ($Dir = 0) Then
For $file In $Folder.Files
If $Ext <> '*' Then
If StringRight($file.Name, StringLen($Ext)) = $Ext Then _
$strFiles &= $file.Path & $Delim
Else
$strFiles &= $file.Path & $Delim
EndIf
Next
EndIf
For $Subfolder In $Folder.SubFolders
If ($Dir = -1) Or ($Dir = 1) Then $strFiles &= $Subfolder.Path & '\' & $Delim
__ShowSubFolders($Subfolder, $Ext, $Dir, $Delim)
Next
EndFunc ;==>__ShowSubFolders
Das "&" dient bei Controltexten zur Maskierung des Folgebuchstabens zum Aufruf mit "ALT+Buchstabe". ![]()
DNS-Server kaputt?
Dann sollte eigentlich keinerlei Adreßauflösung funktionieren, oder? Kann alle Webseiten problemlos anwählen.
Werde es aber mal testen.
Hi,
habe ja meinen PC aufgepeppt (eigentlich sind nur Gehäuse und Brenner geblieben :D), ein jungfräuliches WinXP Pro SP3 aufgespielt, Treiber sind alle aktualisiert.
Nun habe ich folgendes Phänomen:
AVG installiert - Updateversuch - "keine Verbindung zum Server möglich"
OK, kann ja vorkommen. Wollte aber keine SW wo der Server nicht erreichbar ist, also:
avast! installiert - Updateversuch - "keine Verbindung zum Server möglich" ![]()
![]()
Ja was soll das denn? Den Server direkt per IP-Adresse angewählt: und klappt!
Programm hat in der Firewall Freigabe, hab auch testweise die FW abgeschaltet - Ergebnis wie gehabt.
Hat jemand von euch dazu irgendeinen Einfall? Bin total genervt. ![]()
Was habe ich den falsch gemacht?
Es war nur in vorbeugender Weise gedacht, da leider viele User hier nach Unterstützung für Gamebots suchen (leider).
Wenn du etwas automatisieren möchtest, ist "rumklicken" immer das letzte (da schlechteste) Mittel. Nur notwendig, wenn die zu steuernde Anwendung keinerlei Windowskonforme Controls verwendet.
Überprüfe das mit dem 'AutoIt Window Info' Tool.
Du bist in jedem Falle herzlich willkommen. Jedoch empfehle ich dir dringend als erstes die Forenregeln zu lesen.