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. autoBert

Beiträge von autoBert

  • Frage zu StringReplace und Laufwerkauswahl mit AutoIt

    • autoBert
    • 3. April 2016 um 16:15

    Das Array durchsuchen, weitere Infos (DriveStatus, DriveGetType etc.) zum Device einholen und bei Bedarf aus Array löschen.

    Hier noch ein Skript-Auszug:

    Code
    $aDrives[$i][1] = DriveGetType($aLdrives[$iFound] & '\')
    				$aDrives[$i][2] = DriveGetType($aLdrives[$iFound] & '\', 2)
    				$aDrives[$i][3] = DriveGetType($aLdrives[$iFound] & '\', 3)
    				$aDrives[$i][4] = DriveStatus($aLdrives[$iFound] & '\')
    				$aDrives[$i][5] = DriveGetSerial($aLdrives[$iFound] & '\')
    				$aDrives[$i][6] = DriveGetLabel($aLdrives[$iFound] & '\')
    				$aDrives[$i][7] = DriveGetFileSystem($aLdrives[$iFound] & '\')
    				$aDrives[$i][8] = DriveSpaceFree($aLdrives[$iFound] & '\')
    				$aDrives[$i][9] = DriveSpaceTotal($aLdrives[$iFound] & '\')
    				Switch $aDrives[$i][1]
    					Case 'Unknown'
    						$hIcon = $UNKNOWN_ICON_INDEX
    					Case 'RAMDisk'
    						$hIcon = $Ram_ICON_INDEX
    					Case 'CDRom'
    						$hIcon = $CDRom_ICON_INDEX
    					Case 'Fixed'
    						$hIcon = $HDD_ICON_INDEX
    					Case 'Removavle'
    						$hIcon = $Removable_ICON_INDEX
    					Case 'Network'
    						$hIcon = $Network_ICON_INDEX
    				EndSwitch
    				If $bDelete Then
    					$aDrives[$i][0] = _GUICtrlTreeView_AddChildFirst($idTVLocal, $hLocal, Chr($i + 65) & ':\', $hIcon, $hIcon)
    				Else
    					$aDrives[$i][0] = _GUICtrlTreeView_AddChild($idTVLocal, $hLocal, Chr($i + 65) & ':\', $hIcon, $hIcon)
    				EndIf
    Alles anzeigen
  • 2 Dienste, die gegenseitig voneinander abhängig sind - wie Abhängigkeit auflösen? GELÖST

    • autoBert
    • 3. April 2016 um 16:09

    das wäre zwar quick aber mehr als dirty.

    BugFix : hört sich nach einer fehlgeschlagenen Installation an. Kannst du den die Einstellung auf der Registerkarte Wiederherstellung für Telefonie nicht umstellen auf "keine Aktion ausführen"? Ist zwar immer noch dirty, da das Problem auf den Tag verschoben wird an dem auf diesem Rechner der Telefoniedienst benötigt wird.

  • Control.exe (Systemeigenschaften) resistent gegen ControlClick und ControlSend?

    • autoBert
    • 3. April 2016 um 04:06
    Zitat von misterspeed

    Mal unabhängig davon ob dein Script nun funktioniert oder nicht... wenn du den Computernamen oder die Domänenmitgliedschaft ändern willst gibt es dafür bessere und direktere Lösungen.

    Ich selbst will gar nichts mit diesem Skript machen. Ich bin im Entwicklerforum auf dieses Problem aufmerksam geworden (allerdings mit Send), habe mögliche Lösung getestest und fand keine Erklärung für mein Scheitern.en
    Danke für die Erklärung, sind einige dadurch etwas schlauer geworden.

    water: deine AD.au3 wurde dort als Lösung zwar vorgeschlagen, der dortige OP hat den Hinweis ignoriert. Könnte ich/man diese UDF hierfür erfolgreich nutzen wenn Standalone-PC und dadurch kein AD installiert?

  • AutoIT - Warten bis Bild erscheint, dann Script ausführen?

    • autoBert
    • 2. April 2016 um 13:39
    Zitat von Maxi2895

    autoBert - ich kann auf die Seite nicht zugreifen.

    "Der Zutritt zu dieser Seite ist Ihnen leider verwehrt. Sie besitzen nicht die notwendigen Zugriffsrechte, um diese Seite aufrufen zu können."

    Ich sehe gerade wurde bereits durch einen Mod gelöscht. Und wenn du nicht bald eine vernünftige Erklärung abgibst wird dies hier wohl auch passieren.

    Zitat von autoBert

    Ich denke solange du keine Bilder einstellst und die zu automatisierende App nennst
    ...

    vor allem da du mehrgleisig also auch im anderen Forum die gleichen Themen erstellst. Warum denkst du man sollte dir ausgerechnet hier (wo wohl fast alle denken du verstößt gegen die Forenregeln) helfen, wenn im Forum wo soetwas ausdrücklich unterstützt wird auch keine Hilfe kommt?

  • Control.exe (Systemeigenschaften) resistent gegen ControlClick und ControlSend?

    • autoBert
    • 2. April 2016 um 13:19

    Kann jemand dieses Skript testen:

    Code
    #include <Array.au3>
    Run('control.exe sysdm.cpl')
    $hWnd=WinWaitActive('[CLASS:#32770]','Computername',5)
    ConsoleWrite('Windowstitel:' & @TAB&WinGetTitle($hWnd)&@CRLF)
    ConsoleWrite('Buttontext:'  & @TAB&ControlGetText($hWnd,'',115)&@CRLF)
    WinActivate($hWnd)
    ControlSend($hWnd,'',115,'!n')
    ConsoleWrite('Send @Error: '&@error&@CRLF)
    ControlClick($hWnd,'',115)
    ConsoleWrite('Click @Error: '&@error&@CRLF)


    ich bekomme zwar keine Fehlermeldungen in der Konsole:

    Code
    >"C:\Program Files\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "C:\Users\Bert\AutoIt3.My\Test\ASDF6.au3" /UserParams    
    +>13:13:57 Starting AutoIt3Wrapper v.14.801.2025.0 SciTE v.3.4.4.0   Keyboard:00000407  OS:WIN_81/  CPU:X64 OS:X64    Environment(Language:0407)
    +>         SciTEDir => C:\Program Files\AutoIt3\SciTE   UserDir => C:\Users\Bert\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper   SCITE_USERHOME => C:\Users\Bert\AppData\Local\AutoIt v3\SciTE 
    >Running AU3Check (3.3.14.2)  from:C:\Program Files\AutoIt3  input:C:\Users\Bert\AutoIt3.My\Test\ASDF6.au3
    +>13:13:57 AU3Check ended.rc:0
    >Running:(3.3.14.2):C:\Program Files\AutoIt3\autoit3.exe "C:\Users\Bert\AutoIt3.My\Test\ASDF6.au3"    
    --> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop
    Windowstitel:	Systemeigenschaften
    Buttontext:	Ä&ndern...
    Send return val: 1
    Click return val:: 1
    +>13:14:00 AutoIt3.exe ended.rc:0
    +>13:14:00 AutoIt3Wrapper Finished.
    >Exit code: 0    Time: 3.29
    Alles anzeigen

    und wie man sieht funktioniert WinWaitActivate, WinGetTitle und ControlGetText. Obwohl ControlSend und ControlClick Erfolg melden bleibt das öffnen des Fensters 'Ändern des Computernamens bzw. der Dom...' aus.

    Hat jemand eine Erklärung für das Verhalten?

    Ich nutze Win 10 64 und die aktuelle Stable.

  • AutoIT - Warten bis Bild erscheint, dann Script ausführen?

    • autoBert
    • 2. April 2016 um 12:39

    Ist mehr oder weniger gleiches Thema: Hilfe - ImageSearch und GUI . ImageSearch bedingt ja die Sichtbarkeit des Bildes.

    Also bitte dort das Thema weiterführen.

    Edit: der TE liebt es viele Resourcen zu verschwenden, wieder 1:1 neues Thema im 'bösen' Forum. Aber zumindest C&P von Texten beherscht er :P

    Ich denke solange du keine Bilder einstellst und die zu automatisierende App nennst wird dir nur die Hilfedatei helfen, dort gibt es zwar kein ImageSearch (ext. UDF) da ImageSearch zu 99,9% nur für Spielebots benutzt wird sieht auch keiner der Dev's die Notwendigkeit es zu integrieren. Aber nach Selbststuidium der Hilfe solltest du deinen (Spiele?)-Bot auch alleine zustandebringen, wenns was seriöses (also Forenregeln kompatibles) werden soll einfach diesen Ratschlag

    Zitat von alpines

    Es gibt 1000 bessere Methoden als ImageSearch zu nutzen, beschreib doch mal detaillierter was du machen willst und wofür und wir finden hier schon eine Lösung.

    annehmen.

  • Eigene Funktionen eines Tools in UDF ausgliedern?

    • autoBert
    • 1. April 2016 um 11:09
    Zitat von Bioshade

    autoBert: Brauch ich nicht testen weil ich so einen Unfug nie machen würde.

    Ich hoffe du weißt auch ohne diesen Test, daß deine (von mir zitierte) Aussage falsch ist:

    Zitat von autoBert

    Aber nur weil die Gui nicht innerhalb einer Func erzeugt und die Variablen daher im Globalen Gültigkeitsbereich deklariert wurden. Versuch mal dieses Script
    ....
    kannstb du obige Aussage immer noch bestätigen?

    und nichts anderes wollte ich mit dem Skript zeigen, daß Test Skript sollte nur dazu dienen, daß:

    • du deine Aussage überdenkst
    • die falsche Aussage nicht unwidersprochen bleibt.

    Ich warte übrigens immer noch auf das Dementi.

  • Eigene Funktionen eines Tools in UDF ausgliedern?

    • autoBert
    • 31. März 2016 um 23:44
    Zitat von Bioshade

    Du wirst feststellen, dass GUI-Funktionen (die von AutoIt selbst jedenfalls) die GUI auch von Funktionen finden, selbst wenn du die GUI-Variablen explizit auf Local setzt.

    Aber nur weil die Gui nicht innerhalb einer Func erzeugt und die Variablen daher im Globalen Gültigkeitsbereich deklariert wurden. Versuch mal dieses Script:

    C
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include "Test2.au3"
    
    
    Example()
    
    
    Func Example()
    	Local $Form1 = GUICreate("Form1", 167, 96, 192, 182)
    	Local $Input1 = GUICtrlCreateInput("Input123", 8, 8, 121, 21)
    	Local $Button1 = GUICtrlCreateButton("Klick mich", 8, 30, 121, 21)
    	GUISetState(@SW_SHOW)
    	While 1
    		$nMsg = GUIGetMsg()
    		Switch $nMsg
    			Case $GUI_EVENT_CLOSE
    				Exit
    			Case $Button1
    				_Testfunc()				;funktioniert nicht
    				;_Testfunc2($Input1)	;funktioniert
    		EndSwitch
    	WEnd
    EndFunc   ;==>Example
    
    
    Func _Testfunc()
    	MsgBox(0, "", GUICtrlRead($Input1))
    EndFunc   ;==>_Testfunc
    
    
    Func _Testfunc2($CtrlID)
    	MsgBox(0, "", GUICtrlRead($CtrlID)
    EndFunc   ;==>_Testfunc2
    Alles anzeigen

    kannstb du obige Aussage immer noch bestätigen?

    Yaerox: ich versuche mittlerweile soviele Variablen wie möglich Lokal zu deklarieren und nehme Übergabeparameter in Kauf. Sicher ist es nervig 15 Parameter zu übergeben (wie in [Beispiel] FTP-Downloader (rekursive Download's ) möglich) aber dafür ist die Func (im Beispiel _getAllFTPFilesRekursiv) sehr universell und erspart viel Arbeit bei zukünftigen Projekten ist daher auch in einer UDF ausgelagert.

    UDF's erstelle ich nur für Funktionssammlungen die auch in anderen Projekten wieder verwertbar sind.

    In https://www.autoitscript.com/wiki/Best_coding_practices sind einige Anhaltspunkte die man beachten sollte und zumindest einmal gelesen haben. Hilft beim Verwenden fremder UDF's ungemein und sollte daher beim erstellen von UDF's die weitergegeben werden sollen auch eingehalten werden.

    Wenn du nur für dich selbst und zum Spaß programmierst ist es natürlich nur wichtig, daß du dein Skript nach X Jahren noch verstehst. Es soll sogar Leute geben die ihre Skripts vor dem Kompilieren noch unleserlich machen (obfuskatieren?), aber das ist ein anderes Thema.

    In einer Firma/Projektgruppe ist es natürlich wichtig, daß die Skripte/Funktionen von Maier ohne große Probleme auch von Müller weiterentwickelt werden können, alles andere nennt man zwar Kündigugsschutzprogrammierstil ist aber ein Grund zur Kündigung wenn man Vorgaben bezüglich Namenskonventionen etc. widerholt mißachtet.

    PS.: bei groben (Rest-) Typos Micha_he fragen, der hat anscheinend ein Dictionary zum übersetzen solcher.

  • FTP Upload funktioniert nicht - _FTP_FilePut

    • autoBert
    • 30. März 2016 um 22:21
    Zitat von TheDeath24

    Ich habe aber Schreibrechte für den Ordner und die Unterordner.

    Dann muß _FTP_FilePut auch klappen. Welchen Hoter hast du denn? Laß mal dieses Skript:

    Spoiler anzeigen
    [autoit]

    #region ;**** Directives created byAutoIt3Wrapper_GUI ****#AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w6#endregion ;**** Directivescreated by AutoIt3Wrapper_GUI ****#include <FTPEx.au3>#include <File.au3>#include <Array.au3>Opt('MustDeclareVars', 1)_example1()Func_example1();lädt eine Datei hochLocal $s_ServerName = 'guest.autobert.myplace.net' ;dieser Server existiert nichtLocal $s_Username = "guest"Local $s_Password = "TopSecret"Local $s_LocalFile = @ScriptDir & "\_FTP_FilePut3.au3"Local $s_RemoteFile = "/FTPTestfiles/_FTP_FilePut3.au3"Local $i_Passive = 0Local $l_InternetSession,$l_FTPSession,$errOpen,$errFTP$l_InternetSession = _FTP_Open('AuoItZilla') ;Öffnet eine FTP Sitzung$errOpen = @errorIf Not @error Then$l_FTPSession = _FTP_Connect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_Passive) ;Verbindet zu einem FTPServer$errFTP = @errorIf Not @error ThenIf _FTP_FilePut($l_FTPSession, $s_LocalFile, $s_RemoteFile) ThenConsoleWrite("Upload:erfolgreich" & @CRLF)ElseConsoleWrite("Upload: fehlgeschlagen " & " " & @error & @CRLF)EndIfElseMsgBox(0, "Connect", "fehlgeschlagen")ConsoleWrite("Connect: " & " " & $errFTP & @CRLF)EndIfElseMsgBox(0, "Open", "fehlgeschlagen")ConsoleWrite("Open " & " " & $errOpen & @CRLF)EndIf_FTP_Close($l_InternetSession);schliesst die FTP-SitzungEndFunc;==>_example1

    [/autoit]

    mit deinen Zugangsdaten laufen. Achte darauf, daß das lokale Skript existiert und der Pfad des Remoteskriptes beschreibbar ist. Wenn es beim 1. Versuch nicht klappt stellst du $i_Passive auf 1 und versuchst es ein 2. Mal. Geht auch das schief poste die Konsolenausgabe!

  • Performance bei der Funktion _GUICtrlListView_AddArray

    • autoBert
    • 30. März 2016 um 22:10
    Zitat von horphi

    Hallo @Kanashius,

    was ist das für eine Funktion? Ist die in einer UDF verankert, oder von dir?

    VG

    horphi

    sind mehrere selbstgestrickte. Wobei diese imho mininmal langsamer sein müßten als _GUICtrlListView_AddArray, da noch andere Aufgaben erledigt werden. Ich wundere mich gerade deshalb über seine Zeiten und würde mich freuen wenn @Kanashius ein kleines Demoskript einstellt, ich habe eine LV mit über 30.000 Items und wäre froh wenn ich die LV < 1 Min (30.000 / 2.000/sec = 15 sec) anzeigenkönnte.

  • _Timer_GetIdleTime userunabhängig

    • autoBert
    • 30. März 2016 um 21:46
    Zitat von Bioshade

    Statt das Script in den Autostart eines Nutzers zu schieben könntest du es in den HKLM Schlüssel dafür schieben. (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run)

    macht auf den 1. Anschein Sinn, aber dadurch bestimmt das zuletzt getartete Skript wann in Energiesparmodus geschaltet wird.

    Zitat von Bioshade

    Das Hindernis bleibt nur noch eine wie auch immer geartete Kommunikation zwischen den Scripts. Beispielsweise über Dateien oder Registry.

    das ist eineLösung, hier tut's eine einfache Ini in einem von allen les-/beschreibaren Verzeichnis
    z.B.: @AppDataCommonDir, ein Registryeintrag ist natürlich auch ein Weg.
    Vielleicht kann man aber auch ganz auf die Kommunikation verzichten in dem das (von jedem gestartete Skript) regelmäßig prüft ob sich der Rechner im Energiesparmodus befindet und vom zugeordneten User aktiv benutzt wird. Wenn ja Energiesparmodus (falls an) aus => volle Leistung ein.
    Die 1. Lösung empfinde ich als besser und nur unwesentlich scherer umzusetzen.

  • Revision 2016 - "The return of EvilBot"

    • autoBert
    • 29. März 2016 um 22:06
    Zitat von Andy

    Die sind nicht nur vom anderen Ufer, die sind auch noch "vunn de ebsch Seid"...ganz arme Leute

    sorry, bin weder quadratisch noch (Rheinland-)Pfälzer, brauche Dolmetscher.

    Zitat von Xorianator

    Je weiter weg vom warmen Grill, desto mehr Bier.

    jedem das seine und das in ausreichenden Maß'en.

  • Revision 2016 - "The return of EvilBot"

    • autoBert
    • 29. März 2016 um 21:34
    Zitat von Xorianator

    Wärmender Grill? Davon hätte ich auch gerne was gemerkt

    Zitat von Andy

    Konnte ja keiner was dafür, dass du auf der falschen Seite des Tisches gesessen hast

    @Xorinator: soviel Grundkenntnisse in angewander Physik solltest du doch auch haben. Je weiter weg vom warmen Grill desto mehr frier!
    Aber Professor @Andy wird uns (vielleicht) den korrekten Merksatz (Energiepotenzial ausgleich?) dafür nachliefern. Da er auch weiß, daß es Brücken gibt (wie in der ShoutBox gelesen) stellt er unter Berücksichtung dieser sicher eine auf notwendigste geschrumpfte Formel + erjlärendes Schaubild zur Veranschaulichung ein:

    Btw.: @Andy Ludwigshafen wird dann natürlich eingemeindet, sind doch auch Menschen. Die können doch schließlich nichts dafür, daß sie vom anderen Ufer sind :D .

  • Autoit Anfänger Brauche hilfe für schleife

    • autoBert
    • 28. März 2016 um 18:55

    Erkläre erst einmal was du mit der stundenlangen Mausschubserei bezwecken willst. Es gibt nämlich bessere Möglichkeiten eine Anwendung zu automatisieren.

  • "Gegenstände" im bild zählen

    • autoBert
    • 28. März 2016 um 14:16
    Zitat von GerhardSchr

    //edit: Mir ist gerade noch eingefallen, dass man die Körner ja auch hintereinander anordnen könnte (z.B. in einer Rinne)...dann sollte das zählen einfacher sein oder?

    ja dann könnte es gehen idealerweise sollten die Körner nicht ohne Zwischenabstand liegen. Wenn intakte und aufgesprungene zusammen auf einem Bild sind wird es aber auch dann fast unmöglich.

  • Excel Tabelle Namen und Zahlen auslesen, in variable speichern

    • autoBert
    • 25. März 2016 um 17:01

    Kann ich ohne Exceldatei nicht nachvollziehen. Dein Objekt für RangeRead ist falsch, es muß ein WorkBook-Objekt sein und nicht ein Dateinamen.

    • Existiert eine 2. Tabelle?
    • Willst du eine Formel auslesen?

    Dies

    Code
    GUICtrlSetData($idSp1,_Excel_RangeRead($test, 1, "C6", 1))

    funktioniert bei mir in der 1. Tabelle von "C:\Program Files\AutoIt3\Examples\Helpfile\Extras\_Excel1.xls".
    Übrigens sind deine Labels etwas kurz, 600 wird schon nicht mehr vollständig dargestellt.

  • Excel Tabelle Namen und Zahlen auslesen, in variable speichern

    • autoBert
    • 25. März 2016 um 15:59

    Du liest die Werte zwar aus und weist sie einer Variablen zu. Um die Werte anzuzeigen mußt du sie mit GuiCtrlSetData auch dem zugehörigen Label zuweisen:

    Code
    Case $msg = $r1
    			Local $sp1 = _Excel_RangeRead($xlspart, 2, "C6", 2)
    			GUICtrlSetData($idSp1,$sp1)

    dafür muß natürlich das Label auch über eine Varibale ansprechbar sein:

    Code
    $idSp1=GUICtrlCreateLabel($sp1, 100, 100)

    auf den Umweg lokale Variable kannst du auch verzichten:

    Code
    GUICtrlSetData($idSp1,_Excel_RangeRead($xlspart, 2, "C6", 2))
  • Datei lässt sich mit geöffneter GUI nicht löschen

    • autoBert
    • 23. März 2016 um 23:24

    Ohne FileOpen (FileClose ist dann überflüssig) hätte dein Skript funktioniert, FileDelete wäre dann zwingend gewesen, jetzt ist es nicht nötig.

  • Datei lässt sich mit geöffneter GUI nicht löschen

    • autoBert
    • 23. März 2016 um 21:38

    Teste dieses Script:

    C
    #RequireAdmin
    #include <AutoItConstants.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <File.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +
    Opt('GUIOnEventMode', 1)
    Opt('MustDeclareVars', 1)
    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +
    Global $g_hGUI, $Inputbox1, $dateiwahl, $labeltext, _
    	$dateibericht, $font
    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +
    $g_hGUI = GUICreate("Test", 820, 300, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_THICKFRAME))
    	GUISetBkColor(0xD7E4F2)
    	$Inputbox1 = GUICtrlCreateInput("Dateiauswahl nur über -Datei auswählen- möglich!", 201, 53, 580, 23, $ES_READONLY)
    	GUICtrlSetTip(-1, "Dieses Feld füllt sich automatisch" & @CRLF & "über den Button -Datei auswählen-!")
    	$dateiwahl = GUICtrlCreateButton("Datei auswählen!", 35, 53, 147, 25, $BS_ICON)
    	GUICtrlSetTip(-1, "Bitte Datei zur Defragmentierung auswählen!")
    	$labeltext = GUICtrlCreateLabel("Bitte entweder Datei, Ordner oder Laufwerk auswählen!", 37, 22, 600, 21)
    	$font="Arial Fett"
    	$dateibericht = GUICtrlCreateButton("Datei-Bericht", 160, 180, 125, 41)
    	GUISetOnEvent($GUI_EVENT_CLOSE, __GUI_EVENT_CLOSE__)
    	GUICtrlSetOnEvent($dateiwahl, __idButton_dateiwahl__)
    	GUICtrlSetOnEvent($dateibericht, __idButton_dateibericht__)
    	GUISetState(@SW_SHOW)
    While Sleep(200)
    WEnd
    Func __GUI_EVENT_CLOSE__();funktioniert!
    	Exit
    EndFunc
    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +
    Func __idButton_dateiwahl__()
    	Local $inputbox = "Dateiauswahl nur über -Datei auswählen- möglich!"
    	Local $id_Dateiwahl
    	Local $message = "Mehrfachauswahl ist nicht möglich"
    	Local $dateiwahl = FileOpenDialog($message, @HomePath, "Alle Dateien (*.*)", 1 + 2)
    	Local $aFiles, $szDrive, $szDir, $szFName, $szExt
    	If @error Then
    		Return MsgBox(64, "Achtung", "Sie haben keine Datei ausgewählt")
    	Else
    		_GUICtrlListView_BeginUpdate($id_Dateiwahl)
    		$aFiles = StringSplit($dateiwahl, "|")
    		If $aFiles[0] > 1 Then ;trifft nur bei Mehrfachauwal zu
    			;$aFiles[0] enthält Anzahl der Strings
    			;$aFiles[1] enthält den Pfad für alle ausgewählten Lieder
    			;$aFiles[2] enthält 1. Lied
    			;$aFiles[n+1] enthält n. Lied
    			;Rückgabe des Fileopenialogs in einzzenlne Strings für Array splitten
    			;_ArrayDisplay($aFiles)	;Array anzeigen nur zu Verständnisuwecken evtl. aktivieren
    			For $i = 2 To $aFiles[0]
    				_PathSplit($aFiles[$i], $szDrive, $szDir, $szFName, $szExt)
    				GUICtrlCreateListViewItem($szFName & "||" & $aFiles[1] & "\" & $aFiles[$i], $id_Dateiwahl)
    			Next
    		Else ;nur eine Datei ausgewählt
    			;;consolewrite($aFiles[1] & @crlf)
    			_PathSplit($aFiles[1], $szDrive, $szDir, $szFName, $szExt)
    			GUICtrlCreateListViewItem($szFName & "||" & $aFiles[1], $id_Dateiwahl)
    		EndIf
    		_GUICtrlListView_SetColumnWidth($id_Dateiwahl, 0, $LVSCW_AUTOSIZE)
    		_GUICtrlListView_EndUpdate($id_Dateiwahl)
    		If @error Then Return MsgBox(64, "Achtung", "Sie haben keine Datei ausgewählt")
    		Sleep(100)
    		Return GUICtrlSetData($Inputbox1, $dateiwahl)
    	EndIf
    EndFunc   ;==>__idButton_Dateiwahl__
    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +
    Func __idButton_dateibericht__();funktioniert!
    Local $daten
    Local $datei = (@ScriptDir & "\Test.txt")
    Local $contigdir = (@ScriptDir & "\Contig.exe")
    Local $dateiwahl = GUICtrlRead($Inputbox1)
    If $dateiwahl = "Dateiauswahl nur über -Datei auswählen- möglich!" Then Return MsgBox(64, "Hinweis", "Bitte auswählen Sie zunächst über den Button -Datei auswählen- eine Datei zur Berichtausgabe aus!", 0, $g_hGUI)
    Local $bericht = Run($contigdir & ' -a' & " """ & $dateiwahl & """", "", @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD)
    sleep(100)
    ProcessWaitClose($bericht)
    sleep(100)
    StdinWrite($bericht)
    sleep(100)
    While True
        $daten &= StdoutRead($bericht)
        If @error Then ExitLoop
        Sleep(100)
    WEnd
    ProcessClose($contigdir)
    ProcessClose($daten)
    $hFile=FileOpen($datei, 2+32)
    FileWrite($hFile, $daten)
    FileClose($hFile)
    ShellExecute($datei, "", @ScriptDir, "edit")
    sleep(100)
    FileDelete($datei)
    ;Ausgabe einer Messagebox alternativ zur Ausgabedatei, falls erwünscht
    ;~ MsgBox(64, "Ergebnis", $datei)
    EndFunc   ;==>__idButton_dateibericht__
    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +
    Alles anzeigen
  • FTP Upload funktioniert nicht - _FTP_FilePut

    • autoBert
    • 23. März 2016 um 17:37

    Dann gib dir für den Ordner mit einem Standard-FTP-Client (z.B.FileZilla) die Berechtigung und probiere es danach erneut.

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™