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

  • Texte aus verschiedenen Quellen auslesen?

    • autoBert
    • 24. August 2016 um 12:29
    Zitat von LaMagnos

    Ich wollte das ein Programm nach einem bestimmt Text/Wort auf einer Internet-Seite oder in der CMD Sucht.

    Das war's

    Frag Cortana, die weis angeblich alles.

  • InetGet auf verschlüsseltem Bereich

    • autoBert
    • 21. August 2016 um 17:37
    Zitat von andynbg9000

    Der Übertragungstyp war in Filezilla auf ASCII gestellt.

    wenn du mit FileZilla Zugriff hast klappt das auch mit der FTPEx.au3.

    Zitat von autoBert

    Auch die FTPEx kann eine Option sein.

  • InetGet auf verschlüsseltem Bereich

    • autoBert
    • 21. August 2016 um 12:07

    Das ist kein Fehler, sondern die Art und Weise wie die Seite aufgebaut ist. Du kannst die WinHTTP-UDF oder die IE-UDF zur Lösung benutzen. Auch die FTPEx kann eine Option sein.

  • Reguläre Ausdruck. Komme nicht weiter

    • autoBert
    • 17. August 2016 um 11:42

    Man kann auch die Stringfunktionen dafür verwenden:

    AutoIt
    #include <Array.au3>
    #include <String.au3>
    
    
    $sString = 'class="adress">Rathausplatz 5<br/>90403 Nürnberg<br/><a href=" ' & @CRLF & _
    		'Kontakt</h3><p class="adress">Äußere Bayreuther Str. 121<br/>90409 Nürnberg<br/><a href="' & @CRLF & _
    		'</span></p><h3>Kontakt</h3><p class="adress">Wallensteinstraße 28<br/>90439 Nürnberg<br/><a href="' & @CRLF & _
    		'</span></p><h3>Kontakt</h3><p class="adress">Glogauer Str. 30 - 38<br/>90473 Nürnberg<br/><a href="'
    $aAdress=_StringBetween($sString,'"adress">','<br/><a href="')
    ;ergibt jede adresszeile also z.B.:   Rathausplatz 5<br/>90403 Nürnberg
    _ArrayColInsert($aAdress,1)	;Spalte einfügen
    _ArrayColInsert($aAdress,1)	;Spalte einfügen
    For $i=0 To UBound($aAdress)-1
    	$aSplit=StringSplit($aAdress[$i][0],'<br/>',$STR_ENTIRESPLIT)
    	;ergibt Array mit 3 Feldern
    	;0 = Anzahl der Einträge
    	;1 = Straße HausNr
    	;2 = PLZ Ort
    	if @error Then ContinueLoop
    	If $aSplit[0]<1 Then ContinueLoop
    	$aAdress[$i][0]=$aSplit[1]
    	;Straße HausNr in 2D Array speichern
    	If $aSplit[0]<2 Then ContinueLoop
    	$aAdress[$i][1]=StringLeft($aSplit[2],5)
    	;PLZ in 2D Array speichern
    	$aAdress[$i][2]=StringMid($aSplit[2],7)
    	;Ort in 2D Array speichern
    Next
    _ArrayDisplay($aAdress)
    Alles anzeigen

    ironischerweise verwendet _StringBetween intern auch StringRegExp man muß sich aber nicht selbst mit Patterns herumschlagen.

  • Liegen zwei Partitionen auf gleicher Festplatte?

    • autoBert
    • 12. August 2016 um 15:41
    Zitat von Code-Jack

    autoBert, ich habe "blind" Deinen Quelltext gestartet und sofort einen Bluescreen geerntet.

    seltsamer Zufall, das Skript enhält keinen kritsichen Code.

    Zitat von Alina

    Vergleiche doch die SN der HDD von den beiden Patitionen.

    DriveGetSerial liefert die Windows-Volume ID und nicht die physikalische Sereiennummer.

  • Inputbox OK Button gibt keinen Text zurück?

    • autoBert
    • 12. August 2016 um 12:01

    Das Skript macht was du sagst, es geht nach dem Drücken des OK-Buttons in den case Zweig 0 (lag ja kein Fehler vor).

  • Liegen zwei Partitionen auf gleicher Festplatte?

    • autoBert
    • 11. August 2016 um 13:31

    Reichen die Infos, die mit AutoIt ermittelbar sind nicht? Hier ein Ausschnitt:

    Code
    #include <Array.au3>
    
    
    Global $aDrives[26][10]
    _CreateDriveItems()
    
    
    Func _CreateDriveItems($bDelete = False)
    	Local $aLdrives, $iFound, $hIcon
    	$aLdrives = DriveGetDrive('ALL')
    	_ArrayDelete($aLdrives, 0)
    	;_ArrayDisplay($aLdrives)
    	For $i = 25 To 0 Step -1
    		If $bDelete And $aDrives[$i][0] <> '' Then
    			;_GUICtrlTreeView_Delete($idTVLocal, $aDrives[$i][0])
    			$aDrives[$i][0] = ''
    		EndIf
    		$iFound = _ArraySearch($aLdrives, Chr($i + 65) & ':')
    		If @error Then
    			If $aDrives[$i][0] <> '' Then
    				;_GUICtrlTreeView_Delete($idTVLocal, $aDrives[$i][0])
    				$aDrives[$i][0] = ''
    			EndIf
    		Else
    			If $aDrives[$i][0] = '' Then
    				$aDrives[$i][0] = Chr($i + 65)
    				$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] & '\')
    				#cs
    					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
    					_GUICtrlTreeView_SetItemParam($idTVLocal, $aDrives[$i][0], $aDrives[$i][0])
    					_AddFolderLocal($aLdrives[$iFound] & '\', $aDrives[$i][0])
    					_GUICtrlTreeView_Expand($idTVLocal, $aDrives[$i][0], False)
    				#ce
    			EndIf
    		EndIf
    	Next
    	_ArrayInsert($aDrives,0)
    	$aDrives[0][1] = 'Drive Type'
    	$aDrives[0][2] = 'SSD Status'
    	$aDrives[0][3] = 'Bus Type'
    	$aDrives[0][4] = 'Drive Status'
    	$aDrives[0][5] = 'Windows Volume ID'
    	$aDrives[0][6] = 'Label'
    	$aDrives[0][7] = 'File System Type'
    	$aDrives[0][8] = 'Free Space'
    	$aDrives[0][9] = 'Space Total'
    	_ArrayDisplay($aDrives)
    EndFunc   ;==>_CreateDriveItems
    Alles anzeigen

    oder "C:\Program Files\AutoIt3\Examples\COM\Scriptomatic.au3" sollte doch noch mehr Infos liefern können.

  • 2D-Array aus ListView verwerten

    • autoBert
    • 11. August 2016 um 12:40

    Wenn du UDF's verwendest, die nicht Standard sind solltest du diese anhängen:

    Brainfuck
    "C:\Users\Bert\AutoIt3.My\Temp\test.au3"(4,10) : error: can't open include file <GUIListViewEx.au3>.
  • sysprep.exe Fenster verschieben

    • autoBert
    • 10. August 2016 um 09:24
    Zitat von Bitnugger

    Das wird in deinem Script doch gar nicht benötigt.

    Stimmt, zuerst hatte ich _WinAPI_GetUserDefaultLCID benutzt um die locale zu bestimmen, später auf das Makro @OSLang umgestellt.

    Zitat von Bitnugger

    Hier hat der Fehlerteufel zugeschlagen.


    Ich denke mal, so ist es richtig...

    stimmt natürlich auch, danke @Bitnugger.

  • _FTP_ProgressUpload Title und Text ändern

    • autoBert
    • 10. August 2016 um 01:27

    Das von dir verlinkte Beispiel funktioniert bei mir wunderbar. Du mußt nur diesen Hinweis beachten:

    Code
    ; This example NEED TO BE ADAPTED to valid $g_sRemoteFile/$sServer/$sUsername/$sPass

    also gültige Werte für $g_sRemoteFile/$sServer/$sUsername/$sPass angeben. Der verwendete Server ist ein öffentlicher bei dem nur Downloads möglich sind.


    Die Variable $iPercent ist in der Funktion _UpdateProgress als Parameter definiert. _UpdateProgress wird von _FTP_ProgressUpload mit Parameter aufgerufen.

  • _FTP_ProgressUpload Title und Text ändern

    • autoBert
    • 9. August 2016 um 22:02
    Zitat von 0cool

    Deine Funktion wird bei der folgenden Prüfung beendet

    dann gilt meine Funktion ab in die Tonne und damit (Ursprungsversion) leben:

    Zitat von autoBert

    Mit dieser Fungtion eigentlich gar nicht, oder siehst du einen Parameter der dies zulässt?

  • sysprep.exe Fenster verschieben

    • autoBert
    • 9. August 2016 um 21:50
    Zitat von Sumale.my

    kannst Du mir eventuell ein lauffähiges Beispiel schreiben?

    dieses Beispiel ist lauffähig:

    AutoIt
    #RequireAdmin
    #include <Array.au3>
    
    
    Global $aLang[5][2]	;Größe anpassen
    ;in diesem Array werden in Spalte 0 die User abhängige Landeslocale
    ;					und in Spalte 1 das zu suchende Wort gespeichert
    ;es müssen nur die Ausnahmen gespeichert werden in denen NICHT das vorbelgete Wort vorkommt!!
    ;MsgBox(64,'Locale',@OSLang)	;Eintrag in Spalte 0
    $sText='(Sysprep)'
    $iFound=_ArraySearch($aLang,@OSLang)
    If $iFound<>-1 Then $sText=$aLang[$iFound][1]
    $Hwnd = WinGetHandle('[CLASS:#32770]',$sText)
    ;MsgBox(64, 'Sysprep', 'Hwnd: ' & $Hwnd)
    $aPos=WinGetPos($Hwnd)
    WinMove($Hwnd,'',@DesktopWidth-$aPos[2]-5,@DesktopHeight-$aPos[3]-35)
    Alles anzeigen

    vorausgesetzt"(Sysprep)" kommt als Text vor. Ich habe leider nur dieses 1 System und kann daher nicht alle möglichen Sprachen überpüfen. Du mußt also alle Ausnahmen ["(Sysprep)" kommt nicht im Text vor} im Array definieren.

  • _FTP_ProgressUpload Title und Text ändern

    • autoBert
    • 9. August 2016 um 00:09

    Mit dieser Fungtion eigentlich gar nicht, oder siehst du einen Parameter der dies zulässt?

    Du kannst natürlich mit WinSetTitle bzw. ControlSetText das Fenster anpassen. Besser wäre aber die Funktion abändern und unter neuem Namen direkt ins Skript aufnehmen:

    Code
    ; #FUNCTION# ====================================================================================================================
    ; Author ........: limette, Prog@ndy
    ; Modified.......: jchd
    ; Änderungsvorschlag autoBert
    ; ===============================================================================================================================
    Func _MyFTP_ProgressUpload($hFTPSession, $sLocalFile, $sRemoteFile, $MyTitle = '', $MyText = '', $hFunctionToCall = 0)
    	If $__g_hWinInet_FTP = -1 Then Return SetError(-2, 0, 0)
    
    
    	Local $hFile = FileOpen($sLocalFile, $FO_BINARY)
    	If @error Then Return SetError(-1, _WinAPI_GetLastError(), 0)
    
    
    	Local $ai_FtpOpenfile = DllCall($__g_hWinInet_FTP, 'handle', 'FtpOpenFileW', 'handle', $hFTPSession, 'wstr', $sRemoteFile, 'dword', $GENERIC_WRITE, 'dword', $FTP_TRANSFER_TYPE_BINARY, 'dword_ptr', 0)
    	If @error Or $ai_FtpOpenfile[0] = 0 Then Return SetError(-3, _WinAPI_GetLastError(), 0)
    	If $MyTitle = '' Then $MyTitle = "FTP Upload"
    	If $MyText = '' Then $MyText = "Uploading " & $sLocalFile
    	If Not IsFunc($hFunctionToCall) Then ProgressOn($MyTitle, $MyText)
    
    
    	Local $iLen = FileGetSize($sLocalFile)
    	Local Const $iChunkSize = 256 * 1024
    	Local $iLast = Mod($iLen, $iChunkSize)
    
    
    	Local $iParts = Ceiling($iLen / $iChunkSize)
    	Local $tBuffer = DllStructCreate("byte[" & $iChunkSize & "]")
    
    
    	Local $aDone, $ai_FtpWrite, $iOut, $iRet, $iLasterror
    	Local $x = $iChunkSize
    	Local $iDone = 0
    	For $i = 1 To $iParts
    		If $i = $iParts And $iLast > 0 Then
    			$x = $iLast
    		EndIf
    		DllStructSetData($tBuffer, 1, FileRead($hFile, $x))
    
    
    		$ai_FtpWrite = DllCall($__g_hWinInet_FTP, 'bool', 'InternetWriteFile', 'handle', $ai_FtpOpenfile[0], 'struct*', $tBuffer, 'dword', $x, 'dword*', $iOut)
    		If @error Or $ai_FtpWrite[0] = 0 Then
    			$iLasterror = _WinAPI_GetLastError()
    			$aDone = DllCall($__g_hWinInet_FTP, 'bool', 'InternetCloseHandle', 'handle', $ai_FtpOpenfile[0])
    			; No need to test @error.
    			FileClose($hFile)
    
    
    			If Not IsFunc($hFunctionToCall) Then ProgressOff()
    			Return SetError(-4, $iLasterror, 0)
    		EndIf
    		$iDone += $x
    
    
    		If Not IsFunc($hFunctionToCall) Then
    			ProgressSet(($iDone / $iLen) * 100)
    		Else
    			$iRet = $hFunctionToCall(($iDone / $iLen) * 100)
    			If $iRet <= 0 Then
    				$iLasterror = @error
    				$aDone = DllCall($__g_hWinInet_FTP, 'bool', 'InternetCloseHandle', 'handle', $ai_FtpOpenfile[0])
    				; No need to test @error.
    				DllCall($__g_hWinInet_FTP, 'bool', 'FtpDeleteFileW', 'handle', $hFTPSession, 'wstr', $sRemoteFile)
    				; No need to test @error.
    				FileClose($hFile)
    				If Not IsFunc($hFunctionToCall) Then ProgressOff()
    				Return SetError(-6, $iLasterror, $iRet)
    			EndIf
    		EndIf
    		Sleep(10)
    	Next
    
    
    	FileClose($hFile)
    
    
    	If Not IsFunc($hFunctionToCall) Then ProgressOff()
    
    
    	$aDone = DllCall($__g_hWinInet_FTP, 'bool', 'InternetCloseHandle', 'handle', $ai_FtpOpenfile[0])
    	; No need to test @error.
    	If @error Or $aDone[0] = 0 Then Return SetError(-5, _WinAPI_GetLastError(), 0)
    
    
    	Return 1
    EndFunc   ;==>_MyFTP_ProgressUpload
    Alles anzeigen


    du mußt natürlich noch dein Skript anpassen:

    Code
    _MyFTP_ProgressUpload($Conn, $s_LocalFile, $s_RemoteFile, "Mein Titel", "Mein Text")
  • simple berechnung - eingabe wird abgerundet dabei brauche ich zur berechnung den gesamten eingegeben wert

    • autoBert
    • 9. August 2016 um 00:01
    Zitat von Lottich

    - halbjährlich rund 113,40 € ==> macht im Jahr 226,80 €
    - vierteljährlich rund 57,80 € ==> macht im Jahr 231,20 €
    - monatlich rund 19,45 € ==> macht im Jahr 233,40 €

    Und DAS ergibt doch wesentlich mehr Sinn!

    Das dies Sinn macht ist mir klar, aber die Formel hat er auf Grundlagenmaterial entwickelt welches uns nicht vorliegt.

    Und die Fragestellung geht am Problem (der offensichtlich falschen Berechnung) vorbei, denn es wird nirgends gerundet.

  • simple berechnung - eingabe wird abgerundet dabei brauche ich zur berechnung den gesamten eingegeben wert

    • autoBert
    • 8. August 2016 um 19:24
    Zitat von Zeitriss

    Ich vermute das Script rechnet von der Zahlungshöhe

    Zitat von fairsicherungsordner

    jahresbeitrag brutto sind zb 220.19 €

    Vermutungen nützen nichts, Fakten zählen.

  • simple berechnung - eingabe wird abgerundet dabei brauche ich zur berechnung den gesamten eingegeben wert

    • autoBert
    • 8. August 2016 um 18:08
    Zitat von fairsicherungsordner

    autobert, wo stehen hier 1000% zinsen?

    Sorry. ich hatte Tippfehler, muß natürlich >10000% heisen. Denn wenn etwas was im Monat mehr als das 10 fache des Jahresbeitrags kostet hat effektiv einen Zuschlag größer 11000 %. Auch hieran zu erkennen:

    Zitat von Zeitriss

    Netto Jährlich: 220.19
    Netto Halbjährlich: 0 (427.5533980)
    Netto Vierteljährlich: 838.8190476
    Netto Monatlich: 2492.716981

    daß entweder die verwendete Formel falsch bzw. falsch umgesetzt ist oder deine Gesellschaft bald ohne Kundschaft dasteht. Oder ist dir jemals ein Kunde begegnet, der lieber freiwillig jeden Monat 2.400 € zahlt (und das dann noch 11* für das Jahr), anstatt einmal 220 €? Ich würde hier sofort das Gespräch abbbrechen und bei im Internet nach einer günstigeren Monatsrate suchen!

    Zitat von fairsicherungsordner

    gibts hier auch coder oder nur spezialisten die nach rechtschreibfehlern suchen?

    rechtschreibfehler <> Rechenfehler bzw. Fehler beim aufstellen der Formel. Da das ganze ja gewerblich ist schlage ich vor: Du postest in Programmieranfragen mit Gegenleistung und stellst die Links zur Dokumentation der Berechnungsformel zur Verfügung. Bei Programmierern gehe ich, im Gegensatz zu Versicherungsvertretern, stark davon aus das diese Zinsrechnung und Dreisatz beherschen. Dabei sollten letztere doch mittlerweile auch einen gewissen Abschluss verfügen.

  • _IECreate funktioniert nicht mehr

    • autoBert
    • 8. August 2016 um 15:19

    Die _IE* Funktionen laufen auch auf Win 10 noch:
    94_VollBild.jpg

    lies mal https://www.autoitscript.com/forum/topic/17…-autoit-v3314x/

  • simple berechnung - eingabe wird abgerundet dabei brauche ich zur berechnung den gesamten eingegeben wert

    • autoBert
    • 8. August 2016 um 14:57
    Zitat von fairsicherungsordner

    um das etwas genauer zu erklären, der jahresbeitrag brutto sind zb 220.19 € - die netto (/1.19)- der kunde hat sich entschieden monatlich zu zahlen. dazu kommt der zinswert für die zahlungsweise (/1.06). am ende wird es * 12 monate gerechnet und der fällige jahresbeitrag ist berechnet.

    na dann hast du wohl einen Fehler im Skript, denn für monatliche Zahlweise einen Aufschlag von ~1000 % zu nehmen ist mehr als unverschämt:

    Zitat von autoBert

    aus 1200 Brutto wird 13584.90566 monatlich netto.

    Zitat von fairsicherungsordner

    das script aber rechnet statt mit den 220.19 € mit 220 euro. das macht leider die provisionsberechnung sehr ungenau und somit unbrauchbar.

    in deinem Skript ist keine Funktion zum abrunden enthalten.

    Zitat von autoBert

    Ich kann jedenfalls kein int, round oder stringfunktion finden, die für das abrunden verantwortlich sein sollte.

  • sysprep.exe Fenster verschieben

    • autoBert
    • 7. August 2016 um 20:21

    Du kannst doch eine Kombination aus CLASS:#32770 und Text verwenden. Du benötigst einen Textausschnitt, der bei allen von dir zu betreuenden Computer vorkommt. Ich gehe davon aus dies ist "(Sysprep)". Daraus ergibt sich folgende Lösung:

    Code
    $Hwnd = WinGetHandle('[CLASS:#32770]','(Sysprep)')
    MsgBox(64, 'Sysprep', 'Hwnd: ' & $Hwnd)

    sollte dies bei dir nicht gegegeben sein, mußt du in einem Array das jeweilige Suchwort zusammen mit der Ländersprache abspeichern und dementsprechend das Skript anpassen.

    mfg (auto)Bert

  • Aus CVS Datei erste Zeile löschen

    • autoBert
    • 7. August 2016 um 12:17

    war nicht der einzige Crosspost: im "bösen" Forum hat er für 10 € einen Auftrag dafür vergeben. Dieser wurde noch am gleichen Tag erledigt.

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™