Erstellst du die MSGBox in Autoit oder wird die von der Internetseite erstellt, das war meien Frage
Beiträge von TheLuBu
-
-
BugFix
Dabei muss man ja vorher festlegen, zwischen welchen Teilen eingefügt werden soll,
Ilse hatte aber ja gesagt, sie möchte an eine Stelle, welche mit dem Cursor "markiert" wurde, etwas einfügen-EDIT-
[autoit]
Ok dann habe ich es falsch verstanden, habe gedacht du willst die an eine stelle mit der Maus klicken und da dann einfügen
$search = _StringBetween($aQuellRead[$i],"Name:"," ") ;String wird gesucht
[/autoit]
$pos = Stringinstr($aQuellRead[$i], $search[0]) ; sucht die position des strings im Text
$pos += Stringlen($search[0]) ; addiert die Stringlänge zur gefundenen postion hinzu
_GUICtrlEdit_InsertText($Ziel, "Text", $pos) ; fügt den Text hinter dem gefundenen ein -
Ich würde es mit
[autoit]_GUICtrlEdit_GetSel
[/autoit]versuchen, wobei ich nicht genau weiß, ob es auch ohne markierung etwas zurückliefert
-
Du kannst mit
[autoit]_GUICtrlEdit_InsertText
[/autoit]Text an einer bestimmten Stelle einfügen
-
Was für eine Msgbox kriegst du denn?
Und warum wartet Autoit auf sie?Wenn du weißt, das eine MsgBox kommt kannst du ja mit
[autoit]While Not WinActive (Msgbox)
[/autoit]
Sleep 100)
WEnd
warten bzw. die Msgbox auch so schließen. -
Da ich nicht viel mit AD zu tun habe, weiß ich es nicht genau,
aber eigentlich solltest du das Beispielscript einfach ausführen können,
mit den Ergebnissen kannst du dann ja mal weiter schauen -
Aus dem Beispiel der AD.au3
Spoiler anzeigen
[autoit]#include <AD.au3>
[/autoit] [autoit][/autoit] [autoit]Global $aUser, $sFQDN_Group, $sFQDN_User, $iResult
[/autoit] [autoit][/autoit] [autoit]; Open Connection to the Active Directory
[/autoit] [autoit][/autoit] [autoit]
_AD_Open(); Get the Fully Qualified Domain Name (FQDN) for the current user
[/autoit] [autoit][/autoit] [autoit]
$sFQDN_User = _AD_SamAccountNameToFQDN(); Get an array of group names (FQDN) that the current user is immediately a member of
[/autoit] [autoit][/autoit] [autoit]
$aUser = _AD_GetUserGroups(@UserName)
$sFQDN_Group = $aUser[1]; Check the group membership of the specified user for the specified group
[/autoit] [autoit][/autoit] [autoit]
$iResult = _AD_IsMemberOf($sFQDN_Group, $sFQDN_User)
Select
Case $iResult = 1
MsgBox(64, "Active Directory Functions", _
"User: " & $sFQDN_User & @CRLF & _
"Group: " & $sFQDN_Group & @CRLF & _
"User is a member of the specified group!")
Case ($iResult = 0 And @error = 1)
MsgBox(64, "Active Directory Functions", _
"User: " & $sFQDN_User & @CRLF & _
"Group: " & $sFQDN_Group & @CRLF & _
"Group does not exist!")
Case ($iResult = 0 And @error = 2)
MsgBox(64, "Active Directory Functions", _
"User: " & $sFQDN_User & @CRLF & _
"Group: " & $sFQDN_Group & @CRLF & _
"User does not exist!")
Case ($iResult = 0)
MsgBox(64, "Active Directory Functions", _
"User: " & $sFQDN_User & @CRLF & _
"Group: " & $sFQDN_Group & @CRLF & _
"User is a not member of the specified group!")
EndSelect; Close Connection to the Active Directory
[/autoit]
_AD_Close() -
Hallöchen,
bei einem post hier im Forum ist mir die Idee gekommen, eine Funktion zu schreiben,
welche alle Dateien und Unterordner in einem bestimmten Ordner auflistet.Hier also die Funktion
Spoiler anzeigen
[autoit]#include <File.au3>
[/autoit] [autoit][/autoit] [autoit]
;===============================================================================
;
; Function Name: _Listall
; Description:: List all Files und Subdirs from given path (Currently a maximum of 8 subfolders deep)
; Parameter(s): $Path = Path to search in
; $Dironly = Only look for DirNames
; $Search = part of a Filename to search for
; $Firstfound = Only return first filename matching $Search
; Requirement(s):
; Return Value(s): An 2-dimensional Array when looking for Files
; - $return[0][0] count of Files or Matches
; - $return[$i][0] Folder
; - $return[$i][1] Filename
; An 1-dimensional Array when looking for Folders
; - $Return[0] count of Folders
;
; Author(s): TheLuBu <[email='LuBu@veytal.com'][/email]>
;
;===============================================================================Func _Listall($Path, $Dironly = FALSE, $Search = FALSE, $Firstfound = FALSE)
[/autoit]
$Timer = TimerInit()
Local $Alldat[1500000][2]
Local $Alldir[1500000]
$Alldir[1] = ""
$dirrow = 1
$Ordner = _FileListToArray($Path, "*", 2)
If IsArray($Ordner) Then
For $i = 1 To $Ordner[0]
$dirrow += 1
$Alldir[$dirrow] = "\" & $Ordner[$i]
$SubOrdner1 = _FileListToArray($Path & "\" & $Ordner[$i], "*", 2)
If Not IsArray($SubOrdner1) Then ContinueLoop
For $j = 1 To $SubOrdner1[0]
$dirrow += 1
$Alldir[$dirrow] = "\" & $Ordner[$i] & "\" & $SubOrdner1[$j]
$SubOrdner2 = _FileListToArray($Path & "\" & $Ordner[$i] & "\" & $SubOrdner1[$j], "*", 2)
If Not IsArray($SubOrdner2) Then ContinueLoop
For $k = 1 To $SubOrdner2[0]
$dirrow += 1
$Alldir[$dirrow] = "\" & $Ordner[$i] & "\" & $SubOrdner1[$j] & "\" & $SubOrdner2[$k]
$SubOrdner3 = _FileListToArray($Path & "\" & $Ordner[$i] & "\" & $SubOrdner1[$j] & "\" & $SubOrdner2[$k], "*", 2)
If Not IsArray($SubOrdner3) Then ContinueLoop
For $l = 1 To $SubOrdner3[0]
$dirrow += 1
$Alldir[$dirrow] = "\" & $Ordner[$i] & "\" & $SubOrdner1[$j] & "\" & $SubOrdner2[$k] & "\" & $SubOrdner3[$l]
$SubOrdner4 = _FileListToArray($Path & "\" & $Ordner[$i] & "\" & $SubOrdner1[$j] & "\" & $SubOrdner2[$k] & "\" & $SubOrdner3[$l], "*", 2)
If Not IsArray($SubOrdner4) Then ContinueLoop
For $m = 1 To $SubOrdner4[0]
$dirrow += 1
$Alldir[$dirrow] = "\" & $Ordner[$i] & "\" & $SubOrdner1[$j] & "\" & $SubOrdner2[$k] & "\" & $SubOrdner3[$l] & "\" & $SubOrdner4[$m]
$SubOrdner5 = _FileListToArray($Path & "\" & $Ordner[$i] & "\" & $SubOrdner1[$j] & "\" & $SubOrdner2[$k] & "\" & $SubOrdner3[$l] & "\" & $SubOrdner4[$m], "*", 2)
If Not IsArray($SubOrdner5) Then ContinueLoop
For $n = 1 To $SubOrdner5[0]
$dirrow += 1
$Alldir[$dirrow] = "\" & $Ordner[$i] & "\" & $SubOrdner1[$j] & "\" & $SubOrdner2[$k] & "\" & $SubOrdner3[$l] & "\" & $SubOrdner4[$m] & "\" & $SubOrdner5[$n]
$SubOrdner6 = _FileListToArray($Path & "\" & $Ordner[$i] & "\" & $SubOrdner1[$j] & "\" & $SubOrdner2[$k] & "\" & $SubOrdner3[$l] & "\" & $SubOrdner4[$m] & "\" & $SubOrdner5[$n], "*", 2)
If Not IsArray($SubOrdner6) Then ContinueLoop
For $o = 1 To $SubOrdner6[0]
$dirrow += 1
$Alldir[$dirrow] = "\" & $Ordner[$i] & "\" & $SubOrdner1[$j] & "\" & $SubOrdner2[$k] & "\" & $SubOrdner3[$l] & "\" & $SubOrdner4[$m] & "\" & $SubOrdner5[$n] & "\" & $SubOrdner6[$o]
$SubOrdner7 = _FileListToArray($Path & "\" & $Ordner[$i] & "\" & $SubOrdner1[$j] & "\" & $SubOrdner2[$k] & "\" & $SubOrdner3[$l] & "\" & $SubOrdner4[$m] & "\" & $SubOrdner5[$n] & "\" & $SubOrdner6[$o], "*", 2)
If Not IsArray($SubOrdner7) Then ContinueLoop
For $p = 1 To $SubOrdner7[0]
$dirrow += 1
$Alldir[$dirrow] = "\" & $Ordner[$i] & "\" & $SubOrdner1[$j] & "\" & $SubOrdner2[$k] & "\" & $SubOrdner3[$l] & "\" & $SubOrdner4[$m] & "\" & $SubOrdner5[$n] & "\" & $SubOrdner6[$o] & "\" & $SubOrdner7[$p]
$SubOrdner8 = _FileListToArray($Path & "\" & $Ordner[$i] & "\" & $SubOrdner1[$j] & "\" & $SubOrdner2[$k] & "\" & $SubOrdner3[$l] & "\" & $SubOrdner4[$m] & "\" & $SubOrdner5[$n] & "\" & $SubOrdner6[$o] & "\" & $SubOrdner7[$p], "*", 2)
If Not IsArray($SubOrdner8) Then ContinueLoop
For $q = 1 To $SubOrdner8[0]
$dirrow += 1
$Alldir[$dirrow] = "\" & $Ordner[$i] & "\" & $SubOrdner1[$j] & "\" & $SubOrdner2[$k] & "\" & $SubOrdner3[$l] & "\" & $SubOrdner4[$m] & "\" & $SubOrdner5[$n] & "\" & $SubOrdner6[$o] & "\" & $SubOrdner7[$p] & "\" & $SubOrdner8[$q]
;~ $SubOrdner9 = _FileListToArray($Path & "\" & $Ordner[$i] & "\" & $SubOrdner1[$j] & "\" & $SubOrdner2[$k] & "\" & $SubOrdner3[$l] & "\" & $SubOrdner4[$m] & "\" & $SubOrdner5[$n] & "\" & $SubOrdner6[$o]& "\" & $SubOrdner7[$p]& "\" & $SubOrdner8[$q], "*", 2)
Next
Next
Next
Next
Next
Next
Next
Next
Next
EndIf
ReDim $Alldir[$dirrow + 1]
$Alldir[0] = UBound($Alldir) - 1
If Not $Dironly = FALSE Then Return $Alldir
$row = 0
For $i = 1 To $Alldir[0]
$Dats = _FileListToArray($Path & $Alldir[$i], "*", 1)
If Not IsArray($Dats) Then ContinueLoop
For $k = 1 To $Dats[0]
If Not $Search = FALSE Then
If Stringinstr($Dats[$k], $Search, 2) <> 0 Then
$row += 1
$Alldat[$row][0] = $Path & $Alldir[$i]
$Alldat[$row][1] = $Dats[$k]
If $Firstfound = TRUE Then Exitloop(2)
ConsoleWrite($Path & $Alldir[$i]&"\"& $Dats[$k] & @CRLF )
EndIf
Else
$row += 1
$Alldat[$row][0] = $Path & $Alldir[$i]
$Alldat[$row][1] = $Dats[$k]
EndIf
Next
Next
ReDim $Alldat[$row + 1][2]
$Alldat[0][0] = UBound($Alldat) - 1
$Diff = TimerDiff($Timer)
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $Diff = ' & $Diff / 1000 & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
Return $Alldat
EndFuncDerzeit durchsucht er den Ordner plus maximal 8 unterordner nach Dateien. Es kann nach bestimmten Dateien gesucht werden, oder auch nur alle Ordner aufgelistet werden.
Über Rückmeldungen würde ich mich freuen

-
Wenn du einen Screenshot machst, wird ein Abbild der momentan Aktiven Daten gemacht, das heißt, auch wenn dein Bildschirm aus ist und du machst nen Screenshot, ist der nicht Schwarz

Entweder dein Bildschirm ist kaputt, wobei ich das eher nicht glaube, sondern eher deine Grafikkarte ( die auch nix mit Screenshots zu tun hat) -
Spoiler anzeigen
[autoit]#include <File.au3>
[/autoit]
#include <Array.au3>
$Timer = TimerInit()
$Pfad = "C:\"
Dim $Alldat[500000][2]
Dim $Alldir[1]
_ArrayAdd($Alldir, "")
$Ordner = _FileListToArray($Pfad, "*", 2)
If IsArray($Ordner) Then
For $i = 1 To $Ordner[0]
_ArrayAdd($Alldir, "\" & $Ordner[$i])
$SubOrdner = _FileListToArray($Pfad & "\" & $Ordner[$i], "*", 2)
If Not IsArray($SubOrdner) Then ContinueLoop
For $j = 1 To $SubOrdner[0]
_ArrayAdd($Alldir, "\" & $Ordner[$i] & "\" & $SubOrdner[$j])
$SubSubOrdner = _FileListToArray($Pfad & "\" & $Ordner[$i] & "\" & $SubOrdner[$j], "*", 2)
If Not IsArray($SubSubOrdner) Then ContinueLoop
For $k = 1 To $SubSubOrdner[0]
_ArrayAdd($Alldir, "\" & $Ordner[$i] & "\" & $SubOrdner[$j] & "\" & $SubSubOrdner[$k])
$SubSubSubOrdner = _FileListToArray($Pfad & "\" & $Ordner[$i] & "\" & $SubOrdner[$j] & "\" & $SubSubOrdner[$k], "*", 2)
If Not IsArray($SubSubSubOrdner) Then ContinueLoop
For $l = 1 To $SubSubSubOrdner[0]
_ArrayAdd($Alldir, "\" & $Ordner[$i] & "\" & $SubOrdner[$j] & "\" & $SubSubOrdner[$k] & "\" & $SubSubSubOrdner[$l])
;~ $SubSubSubSubOrdner = _FileListToArray($Pfad & "\" & $Ordner[$i] & "\" & $SubOrdner[$j] & "\" & $SubSubOrdner[$j] & "\" & $SubSubSubOrdner[$l], "*", 2)
Next
Next
Next
Next
EndIf
$Alldir[0] = UBound($Alldir) - 1
;~ _ArrayDisplay($Alldir)
$row = 0
For $i = 1 To $Alldir[0]
$Dats = _FileListToArray($Pfad & $Alldir[$i], "*", 1)
If Not IsArray($Dats) Then ContinueLoop
For $k = 1 To $Dats[0]
$row += 1
$Alldat[$row][0] = $Dats[$k]
$Alldat[$row][1] = FileGetAttrib($Pfad & $Alldir[$i] &"\"&$Dats[$k])
Next
Next
ReDim $Alldat[$row + 1][2]
$Alldat[0][0] = UBound($Alldat) - 1
$Diff = TimerDiff($Timer)
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $Diff = ' & $Diff / 1000 & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
_ArrayDisplay($Alldat)Das Scipt durchsucht alle Ordner + Unterordner ( bis jetzt 3 stufig, aber denke es ist gut sichtbar, wie es erweiterbar ist)
Am ENde kommt ein Array raus mit den Dateinamen und den Status aus FileGetAttrib
Gedauert hat es bei mir mit ca. 350 Ordnern und 26000 Dateien 4,5 Sek, also geschwindigkeitmäßig ist auch alles im grünen bereich
-
[autoit]
#include <Array.au3>
[/autoit][autoit][/autoit][autoit]
#include <file.au3>
#Include <String.au3>$message = "Textauswahl"
[/autoit][autoit][/autoit][autoit]$Auswahl = FileOpenDialog($message, @ScriptDir & "", "Texte (*.txt;*.csv)", 1 + 4 )
[/autoit][autoit][/autoit][autoit]
Dim $aZeile[10]
Global $sPathFile = $Auswahl
$NeueDatei = InputBox("Neu","DateiName","Neuer-Text.txt")
_FileReadToArray($sPathFile, $aZeile) ; txt einlesen in Array
;_ArrayDisplay($aZeile)
#region Feldsuche
$Version = "Version" ; das gesuchte Wort im Text
$Form = "TYPE=SELECT FORM=NAME" ;ID der Form
;hier trage ich alle Suchfelder ein
#endregion FeldsucheFor $i = 1 To UBound($aZeile,1)-1
[/autoit][autoit][/autoit][autoit]
_ArrayDisplay($aZeile)
if StringInStr($aZeile[$i],$Version) Then
$aZeile[$i] = StringReplace($aZeile[$i],$Version,"_Markt()")
FileWriteLine($NeueDatei, "Test()")
sleep(1000)
EndIfif StringInStr($aZeile[$i],$Form) Then
[/autoit][autoit][/autoit][autoit]$search = _StringBetween($aZeile[$i],":","ATTR=ID")
[/autoit][autoit][/autoit][autoit]
If IsArray($Search) Then
MsgBox(0,"",$search[0])
Else
MsgBox(0,"","Es wurde nichts gefunden")
EndIf
EndIfNext
[/autoit] -
-
-
gib mal das Scriptstück, bei dem du die Exceldateien wieder schließt
Welche Excelversion benutzt du?
Ich denke mal, das du die Datei mit _ExcelBookClose($oExcel) schließst, dabei wird automatisch mitgespeichert.
[autoit]
Versuch es mal hiermit
[/autoit]
With $oExcel
.Application.DisplayAlerts = False
.ActiveWorkbook.Close
.Quit
EndWith -
[autoit]
$search = _StringBetween($aZeile[$i],":","")
[/autoit][autoit][/autoit][autoit]
_ArrayDisplay($search) ; Das Ergebnis wird korrekt angezeigt!MsgBox(0,"",$Search); Die Msgbox zeigt das Array nicht an.
[/autoit][autoit][/autoit][autoit]
FileWriteLine($NeueDatei, $search) ; Auch hier wird nichts eingetragen!MsgBox(0, "", $Search[0]); Jetzt sollte etwas angezeigt werden
[/autoit] -
Ich habe mal ein Script geschrieben, welches mir alle Dateien aus allen Unterordnern in einen anderen Ordner verschiebt, vielleicht hilft es dir weiter
[autoit]
(bei mir sind maximal 3 Unterordner, aber wenn du _FileListToArray nur nach Ordner suchen lässt, lässt es sich variabler machen)$File = FileSelectFolder("Ordner auswählen", "C:\", 3)
[/autoit]
If @error Then Return SetError( 3, 0, 0)
$Rangeordner = _FileListToArray($File &"\", "*", 2)
If Not IsArray($Rangeordner) Then Return SetError(1, 0, 0)
For $i = 1 To $Rangeordner[0]
$RangeinOrdner = _FileListToArray($File &"\"&$Rangeordner[$i], "*", 2)
IF Not IsArray($RangeinOrdner) Then Return SetError(2, 0, 0)
For $k = 1 To $RangeinOrdner[0]
$Rangefiles = _FileListToArray($File &"\"&$Rangeordner[$i]&"\"&$RangeinOrdner[$k], "*.mp3", 1)
If Not @error Then
For $s = 1 To $Rangefiles[0]
FileMove($File &"\"&$Rangeordner[$i]&"\"&$RangeinOrdner[$k]&"\"&$Rangefiles[$s], $File &"\"&$Rangefiles[$s],
Next
EndIf
Next
Next
EndFunc -
[autoit]
If Winactive(blabla) Then
[/autoit]
Hotkeyset("{F1}", "Test")
Else
HotKEyset("{F1}")Edit ja auch ich müsste lesen lernen... vergiss was ich geschrieben habe

-
Also um den momentanen Drucker rauszufinden, solltest du dir mal
[autoit]
diesen Thread ansehen.
Um den PDF XChange zu setzen schau dir mal_WinAPI_SetDefaultPrinter
[/autoit]
an.Zum drucken kannst du die Excel UDF von locodarwin ausm Englischen Forum benutzen
Spoiler anzeigen
[autoit];===============================================================================
[/autoit]
;
; Description: Print a worksheet.
; Syntax: _ExcelPrintSheet($oExcel, $vSheet, $iCopies = 1, $sActivePrinter = "", $fPrintToFile = False, _
; $fCollate = False, $sPrToFileName = "")
; Parameter(s): $oExcel - An Excel object opened by a preceding call to _ExcelBookOpen() or _ExcelBookNew()
; $vSheet - Either an A1 range, or an integer row number to start from if using R1C1
; $iCopies - How many copies to print (default = 1)
; $sActivePrinter - The URL and port of the printer to make active (default = "")
; $fPrintToFile - Flag, print to file instead of printer (default = False)
; $fCollate - Flag, to collate mutiple copies (default = False)
; $sPrToFileName - String filename to print to when printing to file (default = "")
; Requirement(s): None
; Return Value(s): On Success - Returns 1
; On Failure - Returns 0 and sets @error on errors:
; @error=1 - Specified object does not exist
; @error=2 - Specified sheet number doesn't exist
; @error=3 - Specified sheet name doesn't exist
; @error=4 - $fPrintToFile out of range
; @error=5 - $fCollate out of range
; @error=6 - $iCopies must be between 1 and 255
; @error=7 - Trying to print to filename that is unspecified
; Author(s): SEO <locodarwin at yahoo dot com>
; Note(s): None
;
;===============================================================================
Func _ExcelPrintSheet($oExcel, $vSheet, $iCopies = 1, $sActivePrinter = "", $fPrintToFile = False, _
$fCollate = False, $sPrToFileName = "")
If NOT IsObj($oExcel) Then Return SetError(1, 0, 0)
If $fPrintToFile < 0 Or $fPrintToFile > 1 Then Return SetError(4, 0, 0)
If $fCollate < 0 Or $fCollate > 1 Then Return SetError(5, 0, 0)
If $iCopies < 1 Or $iCopies > 255 Then Return SetError(6, 0, 0)
If $sActivePrinter = "" Then $sActivePrinter = $oExcel.ActivePrinter
If $sPrToFileName = "" Then
If $fPrintToFile = True Then Return SetError(7, 0, 0)
EndIf
If IsNumber($vSheet) Then
If $oExcel.ActiveWorkbook.Sheets.Count < $vSheet Then Return SetError(2, 0, 0)
Else
Local $fFound = 0
Local $aSheetList = _ExcelSheetList($oExcel)
For $xx = 1 To $aSheetList[0]
If $aSheetList[$xx] = $vSheet Then $fFound = 1
Next
If NOT $fFound Then Return SetError(3, 0, 0)
EndIf
$oExcel.Sheets($vSheet).Activate
$oExcel.ActiveSheet.PrintOut(Default, Default, $iCopies, False, $sActivePrinter, $fPrintToFile, $fCollate, $sPrToFileName)
Return 1
EndFunc ;==>_ExcelPrintSheetAnsonsten geht evtl. auch
[autoit]ShellExecuteWait
[/autoit]
mit verb = print, aber das müsstest du testen
-
Ich denke, was er meint ist eine Sounddatei starten und die wird ins TS gespielt.
-
erstell mal eine Funktion
[autoit]Func test()
[/autoit]
Sleep(10)
EndFuncund bei WinNotActive machste bei den Hotkeys die funktion rein