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

Beiträge von Bitnugger

  • _LogFile - Einfach LogFiles erstellen und schreiben

    • Bitnugger
    • 3. Februar 2017 um 11:07
    AutoIt
    Func __LogFile_Write($i_LOG_LEVEL, $s_LOG_MESSAGE)
    	Local $a_LOG_LEVEL[] = ["Nichts ----------------", "Information -----------", "Warnung ---------------", "Fehler ----------------", "Kritischer Fehler -----"]
    	FileWriteLine($__g_fHwndLog, "[" & @YEAR & "-" & @MON & "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & "] -> " & $a_LOG_LEVEL[$i_LOG_LEVEL] & " -> " & $s_LOG_MESSAGE)
    EndFunc   ;==>


    Zu Zeile 2:
    Local $a_LOG_LEVEL[] = [...] ; wenn du keinen Wert angibst, kannst du die [] auch weglassen.
    Local $a_LOG_LEVEL = [...]

    "Nichts ----------------"; Hust... da kann ich geistig nicht folgen, wofür das gut sein soll. ?(

    Zu Zeile 3:
    FileWriteLine($__g_fHwndLog, ... ; Kann bitte mal jemand diesen Variablennamen aufschlüsseln? :D
    FileWriteLine($__g_hLog, ... ; wäre doch treffender?!

    Ansonsten würde ich die Funktion eher so schreiben...

    AutoIt
    Func __LogFile_Write($hLOG, $iLOG_LEVEL, $sLOG_MESSAGE)
    	; Static Variablen existieren nur innerhalb der Funktion in der sie deklariert wurden, aber sie existieren weiter und behalten ihren letzten Wert, nachdem die Ausführung der Funktion beendet ist.
    	Local Static $_FO_LOG = '[%s/%s/%s %s:%s:%s] -> %s -> %s', _
    		$_aLOG_LEVEL = ["Nichts ----------------", _
    				"Information -----------", _
    				"Warnung ---------------", _
    				"Fehler ----------------", _
    				"Kritischer Fehler -----"]
    
    
    ;~ 	ConsoleWrite(StringFormat($_FO_LOG, @YEAR, @MON, @MDAY, @HOUR, @MIN, @SEC, $_aLOG_LEVEL[$iLOG_LEVEL], $sLOG_MESSAGE) & @CRLF)
    	FileWriteLine($hLOG, StringFormat($_FO_LOG, @YEAR, @MON, @MDAY, @HOUR, @MIN, @SEC, $_aLOG_LEVEL[$iLOG_LEVEL], $sLOG_MESSAGE))
    EndFunc   ;==>__LogFile_Write
    Alles anzeigen
  • GuiCtrlColorChooser - Moderne Farbauswahl (Version 1.0)

    • Bitnugger
    • 2. Februar 2017 um 02:53
    Zitat von Kanashius

    Ich denke Farbnamen bestimmen immer einen bestimmten Farbbereich

    Ich denke, dass lässt sich interpretieren, wie es einem gerade in den Kram passt.

    Ich formuliere es mal so...

    Die NTC.js bietet ein "n_exactmatch" an... wenn du das als zusätzlichen Style anbietest, hätte ich Verwendung für dein Tool, andernfalls halt nicht.

  • GuiCtrlColorChooser - Moderne Farbauswahl (Version 1.0)

    • Bitnugger
    • 1. Februar 2017 um 10:28

    Ich würde das so handhaben:

    Wenn als Style nur $CCS_COLORNAME angegeben wird,
    dann darf der Farbkreis nur Farben enthalten bzw. zur Auswahl anbieten, für die ein Name definiert wurde. Anderfalls macht der Style absolut keinen Sinn.


    Wenn als Style $CCS_HEXCODE und $CCS_COLORNAME angegeben wird,
    dann darf der Farbkreis alle Farben enthalten bzw. zur Auswahl anbieten und zu dem Hex-Farbcode aber nur dann ein Name anzeigt werden,
    wenn für den ausgewählten Farbwert ein Name definiert wurde.

  • GuiCtrlColorChooser - Moderne Farbauswahl (Version 1.0)

    • Bitnugger
    • 1. Februar 2017 um 08:33
    Zitat von Zeitriss

    Bei mir läuft das Beispiel unter Win10 sobald ich Zeile 218 durch folgendes ersetze:

    Jeep - bei mir dann auch!


    Zitat von chesstiger

    $CCS_COLORNAME: Im Kreis in der Mitte erscheint der Farbname auf Englisch, basierend auf den Daten von NTC.js von Chirag Mehta.

    Wenig Sinn macht jedoch, dass ein FarbeName für mehrere FarbWerte steht...

    wobei keiner der Werte auch nur annähernd mit dem in der NTC.js definierten Wert übereinstimmt...

    JavaScript
    ["8B00FF", "Electric Violet"],


    ...und Electric Violet (0x8B00FF) sieht bei mir so aus...
    Electric Violet_3.jpg

  • GuiCtrlColorChooser - Moderne Farbauswahl (Version 1.0)

    • Bitnugger
    • 31. Januar 2017 um 16:12
    Zitat von chesstiger

    Und die Kombination der beiden Styles funktioniert?

    Nein, auch nicht - mit $CCS_COLORNAME funktioniert bei mir nicht.

    Zitat von chesstiger

    Du nutzt Windows 10, nehme ich an?

    Ja, relevante Infos kannst du dem Bild entnehmen...

    Zitat von chesstiger

    Mehr Möglichkeiten zum Testen habe ich leider nicht.

    Hm, ja ok... ist halt so... brauchst/willst du eine Lizenz für WIN_10? Bei ebay bekommst du die schon für ~ 5 EURO... :D

  • Auf einmal Fehler im Array: "Subscript used on non-accessible variable"

    • Bitnugger
    • 31. Januar 2017 um 07:37
    AutoIt
    $aGrund = _StringBetween( $sLine , $aLfdNr[0] & ";" & $aDate[0] & ";" & $aKundenNr[0] & ";" & $aKunde[0] & ";" & $aKundeZusatz[0] & ";" & $aStrasze[0] & ";" & $aPLZ[0] & ";" & $aOrt[0] & ";" & $aBetrag & ";" , ";" )
    		_ArrayAdd( $aGrundRes , $aGrund[0] )
    		$aSHA256 = _StringBetween( $sLine , $aLfdNr[0] & ";" & $aDate[0] & ";" & $aKundenNr[0] & ";" & $aKunde[0] & ";" & $aKundeZusatz[0] & ";" & $aStrasze[0] & ";" & $aPLZ[0] & ";" & $aOrt[0] & ";" & $aBetrag & ";" & $aGrund & ";" , "" )


    Zeile 33: Hinter $aBetrag fehlt das [0]
    Zeile 35: Hinter $aBetrag und $aGrund fehlt das [0]

    Richtig wäre:

    AutoIt
    $aGrund = _StringBetween( $sLine , $aLfdNr[0] & ";" & $aDate[0] & ";" & $aKundenNr[0] & ";" & $aKunde[0] & ";" & $aKundeZusatz[0] & ";" & $aStrasze[0] & ";" & $aPLZ[0] & ";" & $aOrt[0] & ";" & $aBetrag[0] & ";" , ";" )
    		_ArrayAdd( $aGrundRes , $aGrund[0] )
    		$aSHA256 = _StringBetween( $sLine , $aLfdNr[0] & ";" & $aDate[0] & ";" & $aKundenNr[0] & ";" & $aKunde[0] & ";" & $aKundeZusatz[0] & ";" & $aStrasze[0] & ";" & $aPLZ[0] & ";" & $aOrt[0] & ";" & $aBetrag[0] & ";" & $aGrund[0] & ";" , "" )
    		_ArrayAdd( $aSHA256Res , $aSHA256[0] )


    Doch schau mal hier:

    AutoIt
    ;-- TIME_STAMP   2017-01-31 07:34:12
    
    
    #include <File.au3>
    
    
    #Region Declarations
    Global $aArray, $sFile = @ScriptDir & "\Data\data.txt", $sIniPath = @ScriptDir & "\settings.ini"
    Global Const $CALG_SHA_256 = 0x0000800c
    Global Enum $enLfdNr, $enDate, $enKundenNr, $enKunde, $enKundeZusatz, $enStrasze, $enPLZ, $enOrt, $enBetrag, $enGrund, $enSHA256
    Global $FO = '%-12s %-10s %-12s %-26s %-26s %-26s %-8s %-26s %-12s %-26s %-26s\r\n'
    #EndRegion Declarations
    
    
    #Region Get archived data from data.txt and write to array
    _FileReadToArray($sFile, $aArray, $FRTA_NOCOUNT, ';')
    If @error = 0 Then
    	ConsoleWrite(StringFormat($FO, 'LfdNr', 'Date', 'KundenNr', 'Kunde', 'KundeZusatz', 'Strasze', 'PLZ', 'Ort', 'Betrag', 'Grund', 'SHA256'))
    	For $i = 0 To UBound($aArray) -1 Step 1
    		ConsoleWrite(StringFormat($FO, _
    			$aArray[$i][$enLfdNr], _
    			$aArray[$i][$enDate], _
    			$aArray[$i][$enKundenNr], _
    			$aArray[$i][$enKunde], _
    			$aArray[$i][$enKundeZusatz], _
    			$aArray[$i][$enStrasze], _
    			$aArray[$i][$enPLZ], _
    			$aArray[$i][$enOrt], _
    			$aArray[$i][$enBetrag], _
    			$aArray[$i][$enGrund], _
    			$aArray[$i][$enSHA256]))
    	Next
    EndIf
    
    
    _ArrayDisplay($aArray, '$aArray')
    #EndRegion
    Alles anzeigen
  • GuiCtrlColorChooser - Moderne Farbauswahl (Version 1.0)

    • Bitnugger
    • 31. Januar 2017 um 02:02

    Mit $CCS_COLORNAME stürzt das Script bei mir ab, sobald ich auf den Farbring klicke!

    $CCS_COLORNAME.jpg

  • Senden von Escape-Sequenzen an Drucker (ESC/POS)

    • Bitnugger
    • 26. Januar 2017 um 01:10
    Zitat von Dexter

    Konntest Du das mal an einem Bondrucker ausprobieren?

    Nein, habe leider keinen.

    Das könnte helfen... sonst bin ich mit meinem Latein auch am Ende.

    printexample3
    AutoIt
    ;-- TIME_STAMP   2017-01-26 01:05:27   v 0.1
    
    
    #include <File.au3>
    #include 'printMGv2.au3'
    #include <WinAPIShPath.au3>
    
    
    Global $iReset = 0x00 ; Alle Werte auf Default setzen
    Global $iFontA = 0x00 ; Character font A (12x24)
    Global $iFontB = 0x01 ; Character font B ( 9x17)
    Global $iEmphasized = 0x08 ; Text hervorheben
    Global $iDoubleH = 0x10 ; Doppelte Höhe
    Global $iDoubleW = 0x20 ; Doppelte Breite
    Global $iUnderline = 0x80 ; Text unterstreichen
    
    
    Global $iMask = BitOR($iFontA, $iFontB, $iEmphasized, $iDoubleH, $iDoubleW, $iUnderline)
    ConsoleWrite('$iMask = ' & _Hex($iMask) & @CRLF)
    
    
    _Print()
    
    
    Func _Print()
    	Local $sIniFile = _WinAPI_PathRemoveExtension(@ScriptFullPath)
    
    
    	Local $sLfdNr       = Int(IniRead($sIniFile, "CurrentData", "LfdNr", '1'))
    	Local $sKundenNr    = 1234567
    	Local $sCurrentDate = 'Heute'
    	Local $sKunde       = 'Ike'
    	Local $sZusatz      = 'Der Berliner'
    	Local $sStrasse     = 'Am Zoo 42'
    	Local $sPLZ         = 1234
    	Local $sOrt         = 'Berlin'
    	Local $sBetrag      = 10000000
    	Local $sGrund       = 'Lebensberechtigungskarte'
    
    
    	IniWrite($sIniFile, "CurrentData", "LfdNr", $sLfdNr + 1)
    
    
    	Local $pErr = '', $Prn = _PrintDllStart($pErr), $sPrinter = "Pos-80-Series"
    
    
    	Local $sDefaualtPrinter = _PrintGetPrinter($Prn)	; Aktuellen Standard-Drucker merken
    	_PrintSelectPrinter($Prn, $sPrinter, True)			; Temporär als Standard-Drucker setzen
    
    
    	_PrintSetDocTitle($Prn, "Zahlungsbeleg")
    
    
    	; start printing operation
    	_PrintStartPrint($Prn)
    	;_PrintSetFont($Prn,$FontName,$FontSize,$FontCol=0,$Fontstyle = '')
    	;To check that the text will fit a space use _PrintGetTextHeight and _PrintGetTextWidth
    	;_PrintText($hDll,$sText,$ix=-1,$iy=-1,$iAngle=0)
    	_PrintESC($Prn, $sPrinter, 'ADEU'	, "            Musterfirma GmbH & Co.         ", 10, 20)
    	_PrintESC($Prn, $sPrinter, ''		, "                                           ", 10, 60)
    	_PrintESC($Prn, $sPrinter, 'BDEU'	, "               Musterstraße 99             ", 10, 100)
    	_PrintESC($Prn, $sPrinter, 'BDEU'	, "              12345 Musterstadt            ", 10, 140)
    	_PrintESC($Prn, $sPrinter, ''		, "                                           ", 10, 180)
    	_PrintESC($Prn, $sPrinter, 'BDEU'	, "              Tel: 0123 4567890            ", 10, 220)
    	_PrintESC($Prn, $sPrinter, ''		, "                                           ", 10, 260)
    	_PrintESC($Prn, $sPrinter, ''		, "                                           ", 10, 300)
    	_PrintESC($Prn, $sPrinter, 'BDE'	, "           ZAHLUNGSBELEG NR. " & $sLfdNr, 10, 340)
    	_PrintESC($Prn, $sPrinter, ''		, "                                           ", 10, 380)
    	_PrintESC($Prn, $sPrinter, 'BDE'	, "   Kd.Nr.: " & $sKundenNr & "      Datum: " & $sCurrentDate, 10, 420)
    	_PrintESC($Prn, $sPrinter, ''		, "                                          ", 10, 460)
    	_PrintESC($Prn, $sPrinter, 'BDE'	, "   Kunde:  " & $sKunde, 10, 500)
    	_PrintESC($Prn, $sPrinter, 'BDE'	, "           " & $sZusatz, 10, 540)
    	_PrintESC($Prn, $sPrinter, 'BDE'	, "           " & $sStrasse, 10, 580)
    	_PrintESC($Prn, $sPrinter, 'BDE'	, "           " & $sPLZ & " " & $sOrt, 10, 620)
    	_PrintESC($Prn, $sPrinter, ''		, "                                           ", 10, 660)
    	_PrintESC($Prn, $sPrinter, 'BDE'	, "   EUR " & $sBetrag & " dankend in bar erhalten.", 10, 700)
    	_PrintESC($Prn, $sPrinter, ''		, "                                           ", 10, 740)
    	_PrintESC($Prn, $sPrinter, 'BDE'	, "   Verw.zweck: " & $sGrund, 10, 780)
    	_PrintESC($Prn, $sPrinter, ''		, "                                           ", 10, 820)
    	_PrintESC($Prn, $sPrinter, 'ADE'	, "       * Dieser Beleg berechtigt nicht *   ", 10, 860)
    	_PrintESC($Prn, $sPrinter, 'ADE'	, "            * zum Vorsteuerabzug *         ", 10, 900)
    	_PrintEndPrint($Prn)
    
    
    	Local $hArchiv = FileOpen(@ScriptDir & '\Archiv.dat', $FO_APPEND + $FO_UTF8)
    	If $hArchiv = -1 Then
    		MsgBox($MB_SYSTEMMODAL, "Fehler", "Die Werte konnten nicht ins Archiv geschrieben werden.")
    		Return False
    	EndIf
    	;                                     1  2  3  4  5  6  7  8  9        1:Int  , 2:String     , 3:Int     , 4:String, 5:String, 6:String , 7:Int, 8:String, 9:Int
    	FileWriteLine($hArchiv, StringFormat('%i;%s;%i;%s;%s;%s;%i;%s;%i\r\n', $sLfdNr, $sCurrentDate, $sKundenNr, $sKunde, $sZusatz, $sStrasse, $sPLZ, $sOrt, $sBetrag))
    	FileClose($hArchiv)
    
    
    	_PrintSelectPrinter($Prn, $sDefaualtPrinter, True)			; Standard-Drucker wieder zurücksetzen
    	_PrintDllClose($Prn)
    EndFunc   ;==>_Print
    
    
    Func _PrintESC($Prn, $sPrinter, $sESC, $Txt, $x, $y)
    	Local $n = $iMask, $aSplit = StringSplit('!' & $sESC, '')
    
    
    	For $i = 1 To $aSplit[0] Step 1
    		Switch $aSplit[$i]
    			Case '!' ; No ESC Code - print text only
    				$n = '!'
    				ExitLoop
    			Case 'A' ; Character font A (12x24)
    				$n = BitXOR($n, $iFontA)
    			Case 'B' ; Character font B ( 9x17)
    				$n = BitXOR($n, $iFontB)
    			Case 'D' ; Doppelte Höhe und Breite
    				$n = BitXOR($n, $iDoubleH, $iDoubleW)
    			Case 'E' ; Text hervorheben
    				$n = BitXOR($n, $iEmphasized)
    			Case 'H' ; Doppelte Höhe
    				$n = BitXOR($n, $iDoubleH)
    			Case 'W' ; Doppelte Breite
    				$n = BitXOR($n, $iDoubleW)
    			Case 'U' ; Text unterstreichen
    				$n = BitXOR($n, $iUnderline)
    			Case Else ; Alle Werte auf Default setzen
    				$n = $iReset
    				ExitLoop
    		EndSwitch
    	Next
    
    
    	Local $iErr
    	Switch $n
    		Case '!'
    			ConsoleWrite(StringFormat('_PrintText(%s, %s, %i, %i)\r\n', $Prn, $Txt, $x, $y))
    			_PrintText($Prn, $Txt, $x, $y)
    		Case Else
    			Local $aData = [0x1B, 0x21, $n]
    
    
    			$iErr = _PrintBytesDirect($Prn, $sPrinter, $aData)
    			ConsoleWrite(StringFormat('$iErr = %08i _PrintBytesDirect(%s, %s, %s)\r\n', $iErr, $Prn, $sPrinter, _ArrayToString($aData, ', ')))
    
    
    			ConsoleWrite(StringFormat('_PrintText(%s, %s, %i, %i)\r\n', $Prn, $Txt, $x, $y))
    			_PrintText($Prn, $Txt, $x, $y)
    
    
    			$aData[2] = $iReset
    			$iErr = _PrintBytesDirect($Prn, $sPrinter, $aData)
    			ConsoleWrite(StringFormat('$iErr = %08i _PrintBytesDirect(%s, %s, %s)\r\n', $iErr, $Prn, $sPrinter, _ArrayToString($aData, ', ')))
    	EndSwitch
    EndFunc   ;==>_PrintESC
    
    
    Func _Hex($iDec)
    	Return '0x' & Hex($iDec, 6)
    EndFunc   ;==>_Hex
    Alles anzeigen

    Das hier hast du bereits gesehen?

    PrintWinAPI.au3

  • Senden von Escape-Sequenzen an Drucker (ESC/POS)

    • Bitnugger
    • 25. Januar 2017 um 17:42

    So evtl.

    printexample2.au3
    AutoIt
    ;-- TIME_STAMP   2017-01-25 17:50:34   v 0.1
    
    
    #include <File.au3>
    #include 'printMGv2.au3'
    #include <WinAPIShPath.au3>
    
    
    Global $iReset = 0x00 ; Alle Werte auf Default setzen
    Global $iFontA = 0x00 ; Character font A (12x24)
    Global $iFontB = 0x01 ; Character font B ( 9x17)
    Global $iEmphasized = 0x08 ; Text hervorheben
    Global $iDoubleH = 0x10 ; Doppelte Höhe
    Global $iDoubleW = 0x20 ; Doppelte Breite
    Global $iUnderline = 0x80 ; Text unterstreichen
    
    
    Global $iMask = BitOR($iFontA, $iFontB, $iEmphasized, $iDoubleH, $iDoubleW, $iUnderline)
    ConsoleWrite('$iMask = ' & _Hex($iMask) & @CRLF)
    
    
    _Print()
    
    
    Func _Print()
    	Local $sIniFile = _WinAPI_PathRemoveExtension(@ScriptFullPath)
    
    
    	Local $sLfdNr       = Int(IniRead($sIniFile, "CurrentData", "LfdNr", '1'))
    	Local $sKundenNr    = 1234567
    	Local $sCurrentDate = 'Heute'
    	Local $sKunde       = 'Ike'
    	Local $sZusatz      = 'Der Berliner'
    	Local $sStrasse     = 'Am Zoo 42'
    	Local $sPLZ         = 1234
    	Local $sOrt         = 'Berlin'
    	Local $sBetrag      = 10000000
    	Local $sGrund       = 'Lebensberechtigungskarte'
    
    
    	IniWrite($sIniFile, "CurrentData", "LfdNr", $sLfdNr + 1)
    
    
    	Local $pErr = '', $Prn = _PrintDllStart($pErr), $sPrinter = "Pos-80-Series"
    
    
    	; _PrintSelectPrinter($Prn, $sPrinter, False)
    
    
    	_PrintSetDocTitle($Prn, "Zahlungsbeleg")
    
    
    	; start printing operation
    	_PrintStartPrint($Prn)
    	;_PrintSetFont($Prn,$FontName,$FontSize,$FontCol=0,$Fontstyle = '')
    	;To check that the text will fit a space use _PrintGetTextHeight and _PrintGetTextWidth
    	;_PrintText($hDll,$sText,$ix=-1,$iy=-1,$iAngle=0)
    	_PrintESC($Prn, $sPrinter, 'ADEU'	, "            Musterfirma GmbH & Co.         ", 10, 20)
    	_PrintESC($Prn, $sPrinter, ''		, "                                           ", 10, 60)
    	_PrintESC($Prn, $sPrinter, 'BDEU'	, "               Musterstraße 99             ", 10, 100)
    	_PrintESC($Prn, $sPrinter, 'BDEU'	, "              12345 Musterstadt            ", 10, 140)
    	_PrintESC($Prn, $sPrinter, ''		, "                                           ", 10, 180)
    	_PrintESC($Prn, $sPrinter, 'BDEU'	, "              Tel: 0123 4567890            ", 10, 220)
    	_PrintESC($Prn, $sPrinter, ''		, "                                           ", 10, 260)
    	_PrintESC($Prn, $sPrinter, ''		, "                                           ", 10, 300)
    	_PrintESC($Prn, $sPrinter, 'BDE'	, "           ZAHLUNGSBELEG NR. " & $sLfdNr, 10, 340)
    	_PrintESC($Prn, $sPrinter, ''		, "                                           ", 10, 380)
    	_PrintESC($Prn, $sPrinter, 'BDE'	, "   Kd.Nr.: " & $sKundenNr & "      Datum: " & $sCurrentDate, 10, 420)
    	_PrintESC($Prn, $sPrinter, ''		, "                                          ", 10, 460)
    	_PrintESC($Prn, $sPrinter, 'BDE'	, "   Kunde:  " & $sKunde, 10, 500)
    	_PrintESC($Prn, $sPrinter, 'BDE'	, "           " & $sZusatz, 10, 540)
    	_PrintESC($Prn, $sPrinter, 'BDE'	, "           " & $sStrasse, 10, 580)
    	_PrintESC($Prn, $sPrinter, 'BDE'	, "           " & $sPLZ & " " & $sOrt, 10, 620)
    	_PrintESC($Prn, $sPrinter, ''		, "                                           ", 10, 660)
    	_PrintESC($Prn, $sPrinter, 'BDE'	, "   EUR " & $sBetrag & " dankend in bar erhalten.", 10, 700)
    	_PrintESC($Prn, $sPrinter, ''		, "                                           ", 10, 740)
    	_PrintESC($Prn, $sPrinter, 'BDE'	, "   Verw.zweck: " & $sGrund, 10, 780)
    	_PrintESC($Prn, $sPrinter, ''		, "                                           ", 10, 820)
    	_PrintESC($Prn, $sPrinter, 'ADE'	, "       * Dieser Beleg berechtigt nicht *   ", 10, 860)
    	_PrintESC($Prn, $sPrinter, 'ADE'	, "            * zum Vorsteuerabzug *         ", 10, 900)
    	_PrintEndPrint($Prn)
    
    
    	Local $hArchiv = FileOpen(@ScriptDir & '\Archiv.dat', $FO_APPEND + $FO_UTF8)
    	If $hArchiv = -1 Then
    		MsgBox($MB_SYSTEMMODAL, "Fehler", "Die Werte konnten nicht ins Archiv geschrieben werden.")
    		Return False
    	EndIf
    	;                                     1  2  3  4  5  6  7  8  9        1:Int  , 2:String     , 3:Int     , 4:String, 5:String, 6:String , 7:Int, 8:String, 9:Int
    	FileWriteLine($hArchiv, StringFormat('%i;%s;%i;%s;%s;%s;%i;%s;%i\r\n', $sLfdNr, $sCurrentDate, $sKundenNr, $sKunde, $sZusatz, $sStrasse, $sPLZ, $sOrt, $sBetrag))
    	FileClose($hArchiv)
    
    
    	_PrintDllClose($Prn)
    EndFunc   ;==>_Print
    
    
    Func _PrintESC($Prn, $sPrinter, $sESC, $Txt, $x, $y)
    	Local $n = $iMask, $aSplit = StringSplit('!' & $sESC, '')
    
    
    	For $i = 1 To $aSplit[0] Step 1
    		Switch $aSplit[$i]
    			Case '!' ; No ESC Code - print text only
    				$n = '!'
    				ExitLoop
    			Case 'A' ; Character font A (12x24)
    				$n = BitXOR($n, $iFontA)
    			Case 'B' ; Character font B ( 9x17)
    				$n = BitXOR($n, $iFontB)
    			Case 'D' ; Doppelte Höhe und Breite
    				$n = BitXOR($n, $iDoubleH, $iDoubleW)
    			Case 'E' ; Text hervorheben
    				$n = BitXOR($n, $iEmphasized)
    			Case 'H' ; Doppelte Höhe
    				$n = BitXOR($n, $iDoubleH)
    			Case 'W' ; Doppelte Breite
    				$n = BitXOR($n, $iDoubleW)
    			Case 'U' ; Text unterstreichen
    				$n = BitXOR($n, $iUnderline)
    			Case Else ; Alle Werte auf Default setzen
    				$n = $iReset
    				ExitLoop
    		EndSwitch
    	Next
    
    
    	Switch $n
    		Case '!'
    			ConsoleWrite(StringFormat('_PrintText(%s, %s, %i, %i)\r\n', $Prn, $Txt, $x, $y))
    			_PrintText($Prn, $Txt, $x, $y)
    		Case Else
    			Local $aData = [0x1B, 0x21, $n]
    
    
    			ConsoleWrite(StringFormat('_PrintBytesDirect(%s, %s, %s)\r\n', $Prn, $sPrinter, _ArrayToString($aData, ', ')))
    			_PrintBytesDirect($Prn, $sPrinter, $aData)
    
    
    			ConsoleWrite(StringFormat('_PrintText(%s, %s, %i, %i)\r\n', $Prn, $Txt, $x, $y))
    			_PrintText($Prn, $Txt, $x, $y)
    
    
    			$aData[2] = $iReset
    			ConsoleWrite(StringFormat('_PrintBytesDirect(%s, %s, %s)\r\n', $Prn, $sPrinter, _ArrayToString($aData, ', ')))
    			_PrintBytesDirect($Prn, $sPrinter, $aData)
    	EndSwitch
    EndFunc   ;==>_PrintESC
    
    
    Func _Hex($iDec)
    	Return '0x' & Hex($iDec, 6)
    EndFunc   ;==>_Hex
    Alles anzeigen
  • Button betätigen nach Ereignissänderung

    • Bitnugger
    • 25. Januar 2017 um 09:53

    @Frost0071
    In dem geänderten Script in Post #21 sehe ich, dass du mich nicht verstanden hast!


    AutoIt
    Global $g_aCheckPos

    Hier reicht es nicht, wenn du die Array-Variable deklarierst - du musst ihr auch Werte zuweisen! Bei mir hatte ich die Koordinaten der Maus verwendet, du solltest hier die Position des Windows verwenden, in dem du mit PixelGetColor() die Farben prüfen willst und vor allem natürlich auch testen, ob das Programm gestartet wurde und das Window des Programms auch sichtbar ist.

    AutoIt
    Global $g_iColor = 0x87c323, $g_iColor1 = 0x34302d, $g_iCheckCount = 1, $g_iSleep = 100, $g_iTimeout = 3000, $g_x = $g_aCheckPos, $g_y = $g_aCheckPos

    Denn $g_x und $g_y bekommen hier dann natürlich auch keinen Wert zugewiesen und sind somit absolut nutzlos/überflüssig.

    AutoIt
    Global $g_aArray = [[$g_x + 290, $g_y + 198, $g_iColor], _
    		    [$g_x + 290, $g_y + 198, $g_iColor], _
    		    [$g_x + 290, $g_y + 198, $g_iColor], _
    		    [$g_x + 325, $g_y + 631, $g_iColor1]]

    Hier gibst du gleich 3x hintereinander dieselben Posititionen an... das ist natürlich Quatsch.

    In diesem Array sollen die (relativen) Positionen und Farben der "gemalten Controls" innerhalb des Windows "Mach3 CNC Demo" gespeichert werden. Dazu musst du natürlich wissen, an welcher Position sich dieses Window gerade befindet und ob es sichtbar ist, denn anderfalls liefert dir PixelGetColor() falsche Werte, wenn es z. B. minimiert wurde oder von anderen Fenstern verdeckt wird!

    Morgen mal schauen, was mein Zeitplan sagt... evtl. schreibe ich dir ein Demo-Script...

  • Button betätigen nach Ereignissänderung

    • Bitnugger
    • 23. Januar 2017 um 02:31
    Zitat von Frost0071

    Muss ich bei $g_x = $g_aMousePos[0], $g_y = $g_aMousePos[1] auch was eintragen?

    Um es testen zu können, habe ich bei mir der Einfachheit halber die Position der Maus verwendet. Du musst dafür natürlich die Koordinaten einsetzen, die du überprüfen willst. Aus $g_aMousePos wird dann also $g_aCheckPos und Zeile 7 kannst du dann löschen.

    Ebenso Zeile 12... dort musst du die Klick-Koordinaten setzen - und wenn du willst, dass ein Mausklick ausgeführt wird, musst du die Zeilen 29 und 33 auskommentieren oder löschen.

  • Button betätigen nach Ereignissänderung

    • Bitnugger
    • 22. Januar 2017 um 21:20

    Mein Fehler... das Dec(...) ist der Grund.

    Schaue dir dieses Script mal an...

    _PixelArrayCheckColor()
    AutoIt
    ;-- TIME_STAMP   2017-01-22 21:16:57
    
    
    #include <GUIConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    
    
    Global $g_aMousePos = MouseGetPos()
    
    
    ; $g_iColor = Hintergrundfarbe des SciTE-Window
    Global $g_iColor = 0xADC2DE, $g_iCheckCount = 3, $g_iSleep = 100, $g_iTimeout = 3000, $g_x = $g_aMousePos[0], $g_y = $g_aMousePos[1]
    
    
    Global $g_ixPosClick = 100, $g_iyPosClick = 100
    
    
    Global $g_aArray = [[$g_x +  0, $g_y +  0, $g_iColor], _
    				    [$g_x - 50, $g_y - 50, $g_iColor], _
    				    [$g_x + 50, $g_y + 50, $g_iColor]]
    
    
    Global $g_bAdlib = AdlibRegister('_CheckColor', $g_iTimeout)
    
    
    While $g_bAdlib = True
    	Sleep(100)
    WEnd
    
    
    _Exit()
    
    
    Func _CheckColor()
    	Local Static $iCheckCount = 0
    
    
    	#cs
    		If _PixelArrayCheckColor($aArray, $g_iSleep) = True Then
    			MouseClick("left", $g_ixPosClick, $g_iyPosClick, 1, 1)
    		EndIf
    	#ce
    
    
    	If _PixelArrayCheckColor($g_aArray, $g_iSleep) = True Then
    		ConsoleWrite('+ Bingo!!!' & @CRLF)
    	Else
    		ConsoleWrite('! Ops...' & @CRLF)
    	EndIf
    
    
    	$iCheckCount += 1
    	If $iCheckCount = $g_iCheckCount Then $g_bAdlib = False
    EndFunc
    
    
    Func _PixelArrayCheckColor($aArray, $iSleep = 1)
    	Local $iColor
    	For $i = 0 To UBound($aArray) -1 Step 1
    		$iColor = PixelGetColor($aArray[$i][0], $aArray[$i][1])
    		If $iColor <> $aArray[$i][2] Then Return False
    		ConsoleWrite('- $iColor(' & _Hex($iColor) &') = PixelGetColor('& _Hex($aArray[$i][2]) & ')' & @CRLF)
    		Sleep($iSleep)
    	Next
    
    
    	Return True
    EndFunc
    
    
    Func _Hex($iDec)
    	Return '0x' & Hex($iDec, 6)
    EndFunc
    
    
    Func _Exit()
    	AdlibUnRegister('_CheckColor')
    	Exit
    EndFunc
    Alles anzeigen
  • DirMove - Verzeichnis verschieben

    • Bitnugger
    • 21. Januar 2017 um 23:52
    Zitat von AutoMit

    Wie kann man das Script von Bitnugger erweitern, damit nur Verzeichnisse berücksichtigt werden?

    MoveDir
    AutoIt
    ;-- TIME_STAMP   2017-01-21 23:50:10
    
    
    #include <File.au3>
    
    
    Global $sHomeDir = 'R:\0 - Kopie\'
    Global $sSubDir  = '02\'
    Global $sTestDir = $sHomeDir & $sSubDir & $sSubDir & $sSubDir & $sSubDir
    Global $aDirList, $aFileList, $sSourceDir = $sHomeDir, $sDestinationDir = $sHomeDir & $sSubDir, $sDestinationDirTemp, $iDirCreate, $iMove, $iRemove
    
    
    _MakeTestDir()
    
    
    While 1
    	$sSourceDir &= $sSubDir
    
    
    	ConsoleWrite('+ $sSourceDir = ' & $sSourceDir & @CRLF)
    	$iMove = _GetFileList($sSourceDir & $sSubDir, $sSubDir)
    	Select
    		Case @error
    			_MoveDir($sSourceDir, $sDestinationDir)
    			ExitLoop
    		Case $iMove = True
    			_MoveDir($sSourceDir & $sSubDir, $sDestinationDir)
    			ExitLoop
    	EndSelect
    WEnd
    
    
    Func _MoveDir($sSourceDir, $sDestinationDir)
    	If $sSourceDir = $sDestinationDir Then
    		ConsoleWrite('! $sSourceDir = $sDestinationDir' & @CRLF)
    		Exit	; dann gibt es nichts zu tun...
    	EndIf
    
    
    	; Trimm trailing backslashes
    	If StringRight($sSourceDir, 1) = '\' Then $sSourceDir = StringTrimRight($sSourceDir, 1)
    	If StringRight($sDestinationDir, 1) = '\' Then $sDestinationDir = StringTrimRight($sDestinationDir, 1)
    
    
    	; move to TempDir as workaround, if ..\SubDir are identical for $sSourceDir and $sDestinationDir
    	$sDestinationDirTemp = $sDestinationDir & '_Temp'
    	ConsoleWrite(StringFormat('- DirMove("%s", "%s", $FC_NOOVERWRITE)\n', $sSourceDir, $sDestinationDirTemp))
    	$iMove = DirMove($sSourceDir, $sDestinationDirTemp, $FC_NOOVERWRITE)
    	If $iMove = 0 Then
    		ConsoleWrite('! $sSourceDir "' & $sSourceDir & '" konnte nicht verschoben werden!' & @CRLF)
    		Return SetError(1)
    	EndIf
    
    
    	; Remove this directory, inclusive all files and subdirectories
    	ConsoleWrite(StringFormat('- DirRemove("%s", $DIR_REMOVE)\n', $sDestinationDir))
    	$iRemove = DirRemove($sDestinationDir, $DIR_REMOVE)
    	If $iRemove = 0 Then
    		ConsoleWrite('! $sDestinationDir "' & $sDestinationDir & '" konnte nicht gelöscht werden!' & @CRLF)
    		Return SetError(2)
    	EndIf
    
    
    	; Move TempDir to DestinationDir
    	ConsoleWrite(StringFormat('- DirMove("%s", "%s", $FC_NOOVERWRITE)\n', $sDestinationDirTemp, $sDestinationDir))
    	$iMove = DirMove($sDestinationDirTemp, $sDestinationDir, $FC_NOOVERWRITE)
    	If $iMove = 0 Then
    		ConsoleWrite('! $sDestinationDirTemp "' & $sDestinationDirTemp & '" konnte nicht verschoben werden!' & @CRLF)
    		Return SetError(3)
    	EndIf
    EndFunc
    
    
    Func _GetFileList($sPath, $sDirFilter)
    	If FileExists($sPath) = 0 Then Return SetError(1, 0, False)	; dann gibt es nichts zu tun...
    
    
    	$sDirFilter = StringReplace($sDirFilter, '\', '')
    
    
    	Local $iError = 0, $iIndex = -1
    	$aDirList  = _FileListToArray($sPath, "*", $FLTA_FOLDERS, False)
    	If @error Then $iError = 1
    	$aFileList = _FileListToArray($sPath, "*", $FLTA_FILES, False)
    	If @error Then $iError += 2
    
    
    	Switch $iError
    		Case 0												; Verzeichnisse und Dateien gefunden - verschieben!
    			Return True
    		Case 1												; Nur Dateien gefunden - verschieben!
    			Return True
    		Case 2												; Nur Verzeichnisse gefunden...
    			If _ArraySearch($aDirList, $sDirFilter) = 1 And $aDirList[0] = 1 Then
    				Return False								; Nur das Verzeichnis $sDirFilter gefunden - NICHT verschieben!
    			Else
    				Return True									; Neben $sDirFilter noch weitere Verzeichnisse gefunden - verschieben!
    			EndIf
    		Case 3												; Verzeichnis ist leer - verschieben!
    			Return True
    	EndSwitch
    EndFunc
    
    
    Func _MakeTestDir()
    	If FileExists($sTestDir) = 0 Then
    		; Remove this directory, inclusive all files and subdirectories
    		If FileExists($sHomeDir) = 1 Then DirRemove($sHomeDir, $DIR_REMOVE)
    
    
    		ConsoleWrite(StringFormat('- DirCreate("%s")\n', $sTestDir & 'Test'))
    		$iDirCreate = DirCreate($sTestDir & 'Test')
    		If $iDirCreate = 0 Then
    			ConsoleWrite('! "' & $sTestDir & 'Test\' & '" konnte nicht angelegt werden!' & @CRLF)
    			Exit 1
    		EndIf
    		For $i = 1 To 3 Step 1
    			ConsoleWrite('- MakeDummyFile(' & $sTestDir & '\Test\Dummy_' & $i & '.txt)' & @CRLF)
    			FileWrite($sTestDir & '\Test\Dummy_' & $i & '.txt', 'Dummytext = ' & $i)
    		Next
    	EndIf
    EndFunc
    Alles anzeigen
  • DirMove - Verzeichnis verschieben

    • Bitnugger
    • 20. Januar 2017 um 22:11

    Remarks
    If the source and destination are on different volumes or UNC paths are used then a copy/delete operation will be performed rather than a move.

    If the destination already exists and the overwrite flag is specified then the source directory will be moved inside the destination.

    Da wird man dann wohl nicht um ein temporäres Verzeichnis herumkommen...

    Ich habe das gerade mal so getestet:

    MoveDir
    AutoIt
    ;-- TIME_STAMP   2017-01-20 22:09:03
    
    
    #include <File.au3>
    
    
    Global $sHomeDir = 'R:\0 - Kopie\'
    Global $sSubDir  = '02\'
    Global $sTestDir = $sHomeDir & $sSubDir & $sSubDir & $sSubDir & $sSubDir
    Global $aFileList, $sSourceDir = $sHomeDir, $sDestinationDir = $sHomeDir & $sSubDir, $sDestinationDirTemp, $iMove, $iRemove
    
    
    $aFileList = _GetFileList($sDestinationDir)
    If @extended = 0 And FileExists($sTestDir) = 0 Then
    	ConsoleWrite('DirCreate: ' & $sTestDir & @CRLF)
    	Global $iDirCreate = DirCreate($sTestDir)
    	ConsoleWrite('$iDirCreate = ' & $iDirCreate & @CRLF)
    	For $i = 1 To 3 Step 1
    		FileWrite($sTestDir & '\Dummy_' & $i & '.txt', 'Dummytext = ' & $i)
    	Next
    EndIf
    
    
    While 1
    	$sSourceDir &= $sSubDir
    	If FileExists($sSourceDir) = 0 Then Exit	; dann gibt es nichts zu tun...
    
    
    	ConsoleWrite('$sSourceDir = ' & $sSourceDir & @CRLF)
    	$aFileList = _GetFileList($sSourceDir)
    	If @extended > 0 Then ExitLoop
    WEnd
    
    
    If $aFileList[0] > 0 Then
    	If $sSourceDir = $sDestinationDir Then
    		ConsoleWrite('$sSourceDir = $sDestinationDir' & @CRLF)
    		Exit	; dann gibt es nichts zu tun...
    	EndIf
    
    
    	ConsoleWrite(@CRLF & 'FileList in Directory: ' & $sSourceDir & @CRLF & _ArrayToString($aFileList, @CRLF) & @CRLF)
    	If StringRight($sDestinationDir, 1) = '\' Then	$sDestinationDir = StringTrimRight($sDestinationDir, 1)
    	$sDestinationDirTemp = $sDestinationDir & '_Temp'
    	ConsoleWrite(StringFormat('DirMove("%s", "%s")\n', $sSourceDir, $sDestinationDirTemp))
    	$iMove = DirMove($sSourceDir, $sDestinationDirTemp, $FC_NOOVERWRITE)
    	ConsoleWrite(@CRLF & '$iMove = ' & $iMove & @CRLF)
    
    
    	If $iMove = 1 Then
    		$iRemove = DirRemove($sDestinationDir, $DIR_REMOVE)	; remove files and subdirectories
    		ConsoleWrite('$iRemove = ' & $iRemove & @CRLF)
    
    
    		ConsoleWrite(StringFormat('DirMove("%s", "%s")\n', $sDestinationDirTemp, $sDestinationDir))
    		$iMove = DirMove($sDestinationDirTemp, $sDestinationDir, $FC_NOOVERWRITE)
    		ConsoleWrite(@CRLF & '$iMove = ' & $iMove & @CRLF)
    	EndIf
    EndIf
    
    
    Func _GetFileList($sPath)
    	$aFileList = _FileListToArray($sPath, "*", $FLTA_FILES, False)
    	If @error Then Return SetError(@error, 0, 0)
    
    
    	Return SetError(0, $aFileList[0], $aFileList)
    EndFunc
    Alles anzeigen
  • Button betätigen nach Ereignissänderung

    • Bitnugger
    • 20. Januar 2017 um 16:01
    Zitat von Frost0071

    Wie schon mal erwähnt meine Programmierkentnisse sind 0

    Dann möchtest du in diesem Fall wohl eher eine fertige Lösung für dein Problem... was du aber nicht zur Gewohnheit werden lassen solltest. ;)

    _PixelArrayCheckColor()
    AutoIt
    ;-- TIME_STAMP   2017-01-20 15:27:53
    
    
    Global $iColor = 0xFFFFFF, $iTimeout = 3000, $x = 55, $y = 128
    Global $aArray = [[$x +  0, $y +   0, $iColor], _
    				  [$x + 50, $y + 169, $iColor], _
    				  [$x + 50, $y + 265, $iColor]]
    
    
    If _PixelArrayCheckColor($aArray, $iTimeout) = True Then MouseClick("left", $x + 86, $y + 508, 1, 1)
    
    
    Func _PixelArrayCheckColor($aArray, $iTimeout = -1)
    	Switch $iTimeout
    		Case -1	; ohne Timeout
    			For $i = 0 To UBound($aArray) -1 Step 1
    				If PixelGetColor($aArray[$i][0], $aArray[$i][1]) <> Dec($aArray[$i][2]) Then Return False
    			Next
    		Case Else ; mit Timeout
    			Local $hTimer = TimerInit()
    			While Dec(TimerDiff($hTimer)) < Dec($iTimeout)
    				For $i = 0 To UBound($aArray) -1 Step 1
    					If PixelGetColor($aArray[$i][0], $aArray[$i][1]) <> Dec($aArray[$i][2]) Then Return False
    				Next
    			WEnd
    	EndSwitch
    
    
    	Return True
    EndFunc
    Alles anzeigen
  • Checkboxen in "SysListView32" auslesen und steuern

    • Bitnugger
    • 18. Januar 2017 um 15:46
    Zitat von alpines

    Richtig wäre eher wenn die bei der Control ID keine 1 steht, sondern das hier [CLASS:SysListView32; INSTANCE:1].

    Ja ok, das ist noch etwas sicherer...

    _GetItemChecked()
    AutoIt
    ;-- TIME_STAMP   2017-01-18 15:43:14
    
    
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <WinAPISys.au3>
    
    
    Example()
    
    
    Func Example()
        Local $hGUI = GUICreate("Listview Items", 220, 250, 100, 200)
        GUISetBkColor(0x00E0FFFF) ; will change background color
    
    
        Local $idButton = GUICtrlCreateButton("Check It!", 75, 170, 70, 20)
    
    
    	Local $idListview = GUICtrlCreateListView("ItemList", 10, 10, 200, 150) ;,$LVS_SORTDESCENDING)
    	_GUICtrlListView_SetExtendedListViewStyle($idListview, $LVS_EX_CHECKBOXES)
    	_GUICtrlListView_SetColumnWidth($idListview, 0, 192)
        Local $idItem1 = GUICtrlCreateListViewItem("ListviewItem1", $idListview)
        Local $idItem2 = GUICtrlCreateListViewItem("ListviewItem2", $idListview)
        Local $idItem3 = GUICtrlCreateListViewItem("ListviewItem3", $idListview)
        GUISetState(@SW_SHOW)
    
    
    	; Loop until the user exits.
        While 1
            Switch GUIGetMsg()
                Case $GUI_EVENT_CLOSE
                    ExitLoop
    
    
                Case $idButton
    				; Handle des 'fremden' ListViews holen
    				$hListview = ControlGetHandle('[TITLE:Listview Items]', '', '[CLASS:SysListView32; INSTANCE:1]')
    				$iCount = _GUICtrlListView_GetItemCount($hListview)
    				ConsoleWrite('---------------------------' & @CRLF)
    				For $i = 0 To $iCount -1 Step 1
    					Switch _GUICtrlListView_GetItemChecked($hListview, $i)
    						Case True
    							ConsoleWrite('+ Item ' & $i & ' ist checked!' & @CRLF)
    						Case Else
    							ConsoleWrite('! Item ' & $i & ' ist not checked!' & @CRLF)
    					EndSwitch
    				Next
    				ConsoleWrite('---------------------------' & @CRLF)
            EndSwitch
        WEnd
    EndFunc   ;==>Example
    Alles anzeigen
  • Checkboxen in "SysListView32" auslesen und steuern

    • Bitnugger
    • 18. Januar 2017 um 13:59

    Auszug aus der AutoIt-Hilfe: ControlCommand ( "title", "text", controlID, "command" [, "option"] )

    Zitat von FelixBro

    $chk = ControlCommand ("Red Giant Software Registration", "", "SysListView321", "isChecked" )

    Hier hast du den Parameter controlID nicht richtig angegeben...

    Richtig wäre:
    $chk = ControlCommand("Red Giant Software Registration", "", 1, "isChecked")

    Besser ist:
    Global $hListView = ControlGetHandle(WinGetHandle("[TITLE:Red Giant Software Registration]"), "", 1)
    $chk = _GUICtrlListView_GetItemChecked($hListView)

  • Button betätigen nach Ereignissänderung

    • Bitnugger
    • 18. Januar 2017 um 11:49

    Bilder solltest du besser direkt hier im Forum als Anhang hochladen...

    Bei Au3Info kannst du zudem in vielen Fällen auch leicht an dem roten Rahmen erkennen, ob es ein Control ist.
    Au3Info.jpg


    Wenn Controls durch andere Controls überdeckt werden - sie z. b. innerhalb eines Group-Controls definiert wurden, sind diese mit Au3Info leider nicht erreichbar. In solchen Fällen hole ich mir die Liste der Controls zu einem Window dann mit _WinAPI_EnumChildWindows(). Hier findest du auch eine UDF dafür: _WinGetControls()

  • PHP Öffnen

    • Bitnugger
    • 14. Januar 2017 um 09:07
    Zitat von heyhey83

    brauche ich dazu noch das IE Include oder so ???

    Nein.

    Du brauchst lediglich, wie @alpines schon sagte, einen Webserver mit einem PHP-Interpreter, wobei es keine Rolle spielt, ob es ein externer oder interner Webserver ist.


    Einen internen Webserver inkl. PHP-Interpreter kannst du dir z. B. mit wenig Aufwand mit xampp aufsetzen.


    Vereinfacht ausgedrückt funktioniert das dann etwa so:
    Mit ShellExecute('https://127.0.0.1/info/ip.php') wird dein Standard-Brower gestartet und ihm die URL als Parameter mit übergeben. Dein Standard-Brower öffnet nun ein neues Fenster oder Tab und ruft den Webserver mit dieser URL auf.

    Dein lokaler Webserver führt die in dem Script enthaltenen Anweisungen aus - in unserem Fall also das PHP-Script "ip.php" aus dem Unterverzeichnis /info, dass unterhalb des Webroot-Verzeichnisses liegt. Die Ausgaben des PHP-Scripts werden dann wiederum vom PHP-Interpreter an den Webserver übergeben, der diese dann letztendlich an den Browser übergibt, welcher das Ergebnis dann anzeigt.


    Das PHP-Script "ip.php" könnte dann z. B. so aussehen:

    PHP
    <?php
    $ip = $_SERVER["REMOTE_ADDR"];
    if (isset($ip)) {
            echo("$ip");
    }
    ?>
  • PHP Öffnen

    • Bitnugger
    • 13. Januar 2017 um 17:09

    Wenn du die Seite mit AutoIt öffnen willst, ginge das z. B. so:

    AutoIt
    ShellExecute('https://MyServer.de/info/ip.php')
    ; oder
    ShellExecute('https://127.0.0.1/info/ip.php')

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™