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

  • Programmier-Ideen?

    • autoBert
    • 5. November 2016 um 20:32

    @Bitnugger: du weißt wenigstens wa du willst/brauchst. Deine Anforderungen/Wünsche kommen mir allerdings etwas zu hoch vor. Ich jedenfalls würde mir es (derzeit) nicht zu trauen. Und wenn es dir wirklich so wichtig ist, warum hat du es noch nicht verwirklicht?
    Von den AutoIt-Kenntnissen schätze ich dich, trotz deiner (zumindet lt. Statistik) niedrigen Beitragzahl, der oberen Liga dieses Forums zugehörig, also wag dich und überrache uns alle!

  • SQLite Datenbank wieder in exe integrieren?

    • autoBert
    • 4. November 2016 um 20:33

    Dann muß der Source ja neu kompliliert werden.

  • SQLite Datenbank wieder in exe integrieren?

    • autoBert
    • 3. November 2016 um 10:53

    In die Exe integrieren evtl. mit Umwegen, jedes Mal neu kompilieren. Deutlich einfacher:

    AutoIt
    FileInstall(".\Equipments.sqlite", ".\Equipments.sqlite", 0)


    und

    AutoIt
    ;	If FileExists(".\Equipments.sqlite") Then FileDelete(".\Equipments.sqlite" )

    damit sollte doch alles geregelt sein.

  • Auslosung Script (Wichteln)

    • autoBert
    • 3. November 2016 um 10:02

    Und noch eine einfache Lösung:

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <Array.au3>
    
    
    Global $aWichtelnamen = ['Andreas', 'Barbara', 'Cornelia', 'Doris', 'Ernst', 'Fred', 'Gustav', 'Hilde']
    
    
    Global $iCount = UBound($aWichtelnamen), $aidWichtellabel[$iCount][2]
    
    
    Opt('GUIOnEventMode', 1)
    
    
    Global $hGui = GUICreate('Wichtelgenerator', 420, 70 + $iCount * 30)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_CloseGui')
    
    
    For $i = 0 To $iCount - 1
    	$aidWichtellabel[$i][0] = GUICtrlCreateLabel($aWichtelnamen[$i], 20, 20 + $i * 30, 160, 25)
    	GUICtrlSetFont(-1, 16, 400, 0, 'Times New Roman')
    	GUICtrlSetBkColor(-1, 0xAAAAFF)
    	GUICtrlCreateLabel('->', 190, 20 + $i * 30, 160, 25)
    	GUICtrlSetFont(-1, 16, 800, 0, 'Courier New')
    	$aidWichtellabel[$i][1] = GUICtrlCreateLabel('', 235, 20 + $i * 30, 160, 25)
    	GUICtrlSetFont(-1, 16, 400, 0, 'Times New Roman')
    	GUICtrlSetBkColor(-1, 0xFFDDAA)
    Next
    GUICtrlCreateButton('Wichteln', 150, 30 + $iCount * 30, 120, 25)
    GUICtrlSetOnEvent(-1, '_Wichteln')
    
    
    GUISetState(@SW_SHOW, $hGui)
    WinWaitClose($hGui)
    Exit
    
    
    Func _Wichteln()
    	Local $aTmp = $aWichtelnamen, $bOK
    	For $i = 0 To $iCount - 1
    		GUICtrlSetData($aidWichtellabel[$i][1], '')
    	Next
    	Do
    		_ArrayShuffle($aTmp)	;mischen
    		$bOK=True
    		For $i=0 To UBound($aTmp) -1
    			If $aTmp[$i]=$aWichtelnamen[$i] Then	
    				;shit jemand wichtelt sich selbst
    				$bOK=False
    				ExitLoop
    			EndIf
    		Next
    	Until $bOK
    	For $i=0 To UBound($aTmp) -1
    		GUICtrlSetData($aidWichtellabel[$i][1], $aTmp[$i])
    	Next
    EndFunc   ;==>_Wichteln
    
    
    Func _Switch(ByRef $a, ByRef $b)
    	Local $c = $a
    	$a = $b
    	$b = $c
    EndFunc   ;==>_Switch
    
    
    Func _CloseGui()
    	GUIDelete($hGui)
    EndFunc   ;==>_CloseGui
    Alles anzeigen

    ist Oscars Skript mit einer anderen Wichtelroutine. Die Duplikate ($aTmp) werden solange gemischt, bis sich niemand selbst gezogen hat.

  • _GUICtrlTreeView_SetIcon individuell anpassen

    • autoBert
    • 1. November 2016 um 03:37

    Bei deiner Lernwilligkeit schlage ich vor in Mit Gegenleistung ein Thema zu erstellen.

  • Neulich in der Kneipe..."Compiler sind die besseren Programmierer"?!

    • autoBert
    • 28. Oktober 2016 um 14:21

    Andy: ich wollte damit meinen Vorgänger nicht heruntersetzen. Ich weiß ja, daß er zum damaligen Zeitpunkt um Welten besser als ich war (und heute sicher auch noch ist). Es war war nur als Anmerkung gedacht, wie wichtig es sein kann ein Programm zu optimieren. Er hat es zu einem Zeitpunkt geschrieben, als es sein Chef an den Kunden verkauft hat. Ich konnte mir später (jetzt als Angestellter des ehemaligen Kunden) die Zeit nehmen, die Datenstruktur und den Index der DB darauf zu optimieren und alle anderen Programme die betroffen waren anzupassen.

  • CSV-Datei (Trennzeichen Semikolon) enthält in den Feldern auch Semikolons

    • autoBert
    • 28. Oktober 2016 um 12:20

    Habe gerade funkeys Skript getested und nach Anpassungen (hauptsächlich auf neueste AutoItversion gebracht) bekomme ich angehängtes Ergebnis beim Exportieren zu HTML (hier habe ich auch den OpenMode von 2 auf 18 geändert).

    Dateien

    diag.html.txt 1,85 kB – 338 Downloads
  • CSV-Datei (Trennzeichen Semikolon) enthält in den Feldern auch Semikolons

    • autoBert
    • 28. Oktober 2016 um 06:47

    Schau mal ob CSV-Editor V0.8 (Stand 23.04.2010) von @funkey deine CSV-Dateien einlesen kann. Wenn ja kannst du ja die enstprechenden Routinen übernehmen.

  • Neulich in der Kneipe..."Compiler sind die besseren Programmierer"?!

    • autoBert
    • 27. Oktober 2016 um 21:18
    Zitat von Peter S. Taler

    Schöner Code ist wenn er:

    1) Funktioniert
    2) Auch nach 2 Monaten noch verstanden wird
    3) Im Rahmen der Aufgabenstellung schnell genug ist. Ob etwas 60 oder 100ms dauert macht keinen Sinn. Wenn es eine Schleife ist, die 500.000 durchlaufen wird, bekommt die Differenz Gewicht.
    4) Wer nicht nur zum Spass programiert muss auch wirtschaftlich denken. Programme müssen/sollen bezahlbar bleiben?

    du hast gut Dokumentation vergessen.

    zu 3. ein Beispiel aus meinem Berufsleben: verschenkte Zeit verleidet dem Anwender die Benutzung des Programms. Ein Programm (meines Vorgängers), von dem die Optimierung der Produktion unter Berücksichtung aller noch offen Aufträge bis zu einem gewissen Zeitpunkt erreicht werden sollte, lief unglaubliche 7 Stunden. Nach der 1. Optimierung 3 Stunden, am Schluß < 1 Stunde.

  • Datenbank , guilistview

    • autoBert
    • 27. Oktober 2016 um 19:27

    Schau dir mal _SQLite_GetTable2d samt Beispiel an. Da ein Array zurück gegeben wird kann man es sehr einfach in der LV darstellen. Entweder mit _GUICtrlListView_AddArray oder halt in typischer Schleifenform mit GuiCtrlSetData um mal 2 Möglichkeiten zu benennen.

  • Mindestgrößen einer GUI

    • autoBert
    • 17. Oktober 2016 um 13:14

    Laß mal dieses kleine Testskript laufen:

    AutoIt
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    Example()
    Func Example()
    	; Create a GUI 
    	Local $hGUI = GUICreate("Example", 100, 100, Default, Default,$WS_POPUPWINDOW)
    	; Display the GUI.
    	GUISetState(@SW_SHOW, $hGUI)
    	$aSize=WinGetPos($hGUI)
    	MsgBox(0,'Größe (-Ränder): ', 'Breite: ' & $aSize[2]-2&@CRLF&'Höhe: ' & $aSize[3]-2)
    	GUIDelete($hGUI)
    EndFunc   ;==>Example
    Alles anzeigen


    Damit kannst du auch 1x1 GUI's erstellen.

  • Autoit Crypt => Linux

    • autoBert
    • 14. Oktober 2016 um 18:05

    Du kannst mal http://www.autoitscript.com/forum/index.php?showtopic=78745 probieren.

  • Herzlichen Glückwunsch water

    • autoBert
    • 9. Oktober 2016 um 10:07

    auch von mir ein
    [Blockierte Grafik: http://www.123gif.de/gifs/herzlichen-glueckwunsch/herzlichen-glueckwunsch-0063.gif]
    (auto)Bert

  • Messagebox Fenster schließen

    • autoBert
    • 6. Oktober 2016 um 14:22

    Hier mal ein Skript aus der Konserve (Grundprinzip siehe: letzes Beispiel von https://www.autoitscript.com/wiki/Managing_…essageLoop_Mode)

    AutoIt
    #include <GUIConstantsEx.au3>
    #include<WindowsConstants.au3>
    
    
    Global $hGui1, $hGui2 = -99, $idMsgBox, $idZurueck, $idbtnExit2
    ;_CreateGui2() ;entweder hier oder erst wenn benötigt ($idbtmToGui2 Klick)
    #Region GUI1 #####################################################################################
    $hGui1 = GUICreate('GUI 1', 400, 280, 140, 150, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX),$WS_EX_TOPMOST)
    ;erzeugt eine GUI , das zurückgebebene Handle wird in der Variablen $hGui1 gespeichert
    ;die GUI hat BOXen für Mininmieren, Maximieren und ist in der Größe frei änderbar
    
    
    $idbtnToGui2 = GUICtrlCreateButton('&Aufruf GUI 2', 20, 20, 100, 21)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    ;verankert den Button "Aufruf Gui 2" links und oben und fixiert die Größe
    ;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand
    
    
    $idbtnICQ = GUICtrlCreateButton('&ICQ', 20, 50, 100, 21)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    ;verankert den Button "ICQ" links und oben und fixiert die Größe
    ;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand
    
    
    $idbtnExit1 = GUICtrlCreateButton('be&enden', 280, 225, 100, 21)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM)
    ;verankert den Button "beenden" links und oben und fixiert die Größe
    ;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand
    
    
    GUISetState(@SW_SHOW, $hGui1)
    #EndRegion ###########################################################################################
    
    
    While 1
    	$nMsg = GUIGetMsg(1) ;extended Modus wichtig!!
    	Switch $nMsg[1] ;für welches Fenster ist die Message
    		Case $hGui1 ;ab hier ist Gui 1 dran
    			Switch $nMsg[0] ;welche Message wurde ausgelöst
    				Case $idbtnToGui2
    					GUISetState(@SW_DISABLE, $hGui1) ;Gui 1 gegen Benutzereingaben sperren
    					If $hGui2 = -99 Then _CreateGui2() ;nur wenn noch nicht erzeugt
    					GUISetState(@SW_SHOW, $hGui2) ;Gui 2 anzeigen
    				Case $idbtnICQ
    					MsgBox(0, "", "Jetzt würde ICQ gestartet", 0, $hGui1)
    					;Run("C:\Program Files\ICQ7.0\ICQ.exe")
    				Case $idbtnExit1, $GUI_EVENT_CLOSE
    					_end()
    			EndSwitch
    		Case $hGui2 ;ab hier ist Gui 2 dran
    			Switch $nMsg[0] ;welche Message wurde ausgelöst
    				Case $idMsgBox
    					MsgBox(0, 'Test', 'Test', 0, $hGui2)
    				Case $idZurueck, $GUI_EVENT_CLOSE
    					GUISetState(@SW_ENABLE, $hGui1) ;Gui 1 wieder entsperren
    					GUISetState(@SW_HIDE, $hGui2) 	;Gui 2 verstecken
    				Case $idbtnExit2
    					_end()
    			EndSwitch
    	EndSwitch
    WEnd
    
    
    Func _CreateGui2()
    	$hGui2 = GUICreate('GUI 2', 400, 280, 200, 50, -1, -1, $hGui1) ;wichtig ist der letzte Parameter
    	;erzeugt eine GUI als Child von Gui1, das zurückgebebene Handle wird in der Variablen $hGui2 gespeichert
    	$idMsgBox = GUICtrlCreateButton('&MsgBox', 20, 20, 100, 21)
    	$idZurueck = GUICtrlCreateButton('&Zurück zu GUI 1', 20, 50, 100, 21)
    	$idbtnExit2 = GUICtrlCreateButton('be&enden', 280, 250, 100, 21)
    	GUISetState(@SW_HIDE, $hGui2) ;Gui 2 vorerst verstecken
    EndFunc   ;==>_CreateGui2
    
    
    Func _end()
    	GUIDelete($hGui2)
    	GUIDelete($hGui1)
    	Exit
    EndFunc   ;==>_end
    Alles anzeigen

    zum positionieren der MsgBox fällt mir nur ein nachträgliches WinMove ein.

    mfg (auto)Bert

  • _GUICtrlTreeView_SetIcon individuell anpassen

    • autoBert
    • 6. Oktober 2016 um 13:19

    Du kannst sogar jedem Node (Ast) ein extra Icon zuornden:

    AutoIt
    #include <APIShellExConstants.au3>
    #include <FileConstants.au3>
    #include <MsgBoxConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiTreeView.au3>
    #include <GuiListView.au3>
    #include <File.au3>
    #AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    
    
    Global Const $tagSHFILEINFO = 'ptr hIcon; int iIcon; DWORD dwAttributes; CHAR szDisplayName[255]; CHAR szTypeName[80];'
    Global $FOLDER_ICON_INDEX= _GUIImageList_GetFileIconIndex(@SystemDir, True, 1)
    ;Global $UP_ICON_INDEX = _GUIImageList_GetFileIconIndex($sIconDir & 'up.ico', True, 1)
    
    
    Global $sAutoItPath = StringReplace(StringReplace(@AutoItExe,'_x64',''),'autoit3.exe','')
    Global $idTV, $idRoot, $hIcon
    Global $aDirs, $aFiles
    
    
    ; Create GUI
    Global $hGui = GUICreate("ListView Add Item", 500, 700)
    GUISetFont(14)
    $idTV = GUICtrlCreateTreeView(2, 2, 494, 694)
    _GUICtrlTreeView_SetNormalImageList($idTV, _GUIImageList_GetSystemImageList(True))
    GUISetState(@SW_SHOW)
    
    
    If @error Then
    	$sAutoItPath=''
    	if MsgBox(16,'Ordner nicht gefunden','Möchten Sie selbst danach suchen?',$MB_YESNO,$hGui)=6 Then
    		$sAutoItPath=FileSelectFolder('AutoIt Ordner manuell suchen','c:\')
    	EndIf
    	if $sAutoItPath='' Then Exit
    EndIf
    ;ConsoleWrite($sAutoItPath&@CRLF)
    $idRoot=_GUICtrlTreeView_Add($idTV,0,$sAutoItPath,$FOLDER_ICON_INDEX)
    $aDirs=_FileListToArray($sAutoItPath, '*', 2)
    If Not @error Then
    	For $i = 1 To $aDirs[0]
    		; Add items
    		_GUICtrlTreeView_AddChild($idTV,$idRoot,$aDirs[$i],$FOLDER_ICON_INDEX,$FOLDER_ICON_INDEX)
    	Next
    EndIf
    $aFiles = _FileListToArray($sAutoItPath, '*', 1)
    If Not @error Then
    	For $i = 1 To $aFiles[0]
    		; Add items
    		$hIcon=_GUIImageList_GetFileIconIndex($aFiles[$i], True)
    		_GUICtrlTreeView_AddChild($idTV,$idRoot,$aFiles[$i],$hIcon,$hIcon)
    	Next
    EndIf
    _GUICtrlTreeView_Expand($idTV)
    ; Loop until the user exits.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
    
    
    
    
    ; Author: progandy (www.autoit.de)
    Func _GUIImageList_GetSystemImageList($bLargeIcons = False)
    	Local $dwFlags, $hIml, $FileInfo = DllStructCreate($tagSHFILEINFO)
    	$dwFlags = BitOR($SHGFI_USEFILEATTRIBUTES, $SHGFI_SYSICONINDEX)
    	If Not ($bLargeIcons) Then
    		$dwFlags = BitOR($dwFlags, $SHGFI_SMALLICON)
    	EndIf
    ;~    '// Load the image list - use an arbitrary file extension for the
    ;~    '// call to SHGetFileInfo (we don't want to touch the disk, so use
    ;~    '// FILE_ATTRIBUTE_NORMAL && SHGFI_USEFILEATTRIBUTES).
    	$hIml = _WinAPI_SHGetFileInfo(".txt", $FILE_ATTRIBUTE_NORMAL, _
    			DllStructGetPtr($FileInfo), DllStructGetSize($FileInfo), $dwFlags)
    	Return $hIml
    EndFunc   ;==>_GUIImageList_GetSystemImageList
    
    
    ; Author: progandy (www.autoit.de)
    Func _WinAPI_SHGetFileInfo($pszPath, $dwFileAttributes, $psfi, $cbFileInfo, $uFlags)
    	Local $return = DllCall("shell32.dll", "dword_ptr", "SHGetFileInfo", "str", $pszPath, "DWORD", $dwFileAttributes, "ptr", $psfi, "UINT", $cbFileInfo, "UINT", $uFlags)
    	If @error Then Return SetError(@error, 0, 0)
    	Return $return[0]
    EndFunc   ;==>_WinAPI_SHGetFileInfo
    
    
    ; Author: progandy (www.autoit.de)
    Func _GUIImageList_GetFileIconIndex($sFileSpec, $bLargeIcons = False, $bForceLoadFromDisk = False)
    	Local $dwFlags, $FileInfo = DllStructCreate($tagSHFILEINFO)
    	$dwFlags = $SHGFI_SYSICONINDEX
    	If $bLargeIcons Then
    		$dwFlags = BitOR($dwFlags, $SHGFI_LARGEICON)
    	Else
    		$dwFlags = BitOR($dwFlags, $SHGFI_SMALLICON)
    	EndIf
    ;~ ' We choose whether to access the disk or not. If you don't
    ;~ ' hit the disk, you may get the wrong icon if the icon is
    ;~ ' not cached. But the speed is very good!
    	If Not $bForceLoadFromDisk Then $dwFlags = BitOR($dwFlags, $SHGFI_USEFILEATTRIBUTES)
    ;~ ' sFileSpec can be any file. You can specify a
    ;~ ' file that does not exist and still get the
    ;~ ' icon, for example sFileSpec = "C:\PANTS.DOC"
    	Local $lR = _WinAPI_SHGetFileInfo( _
    			$sFileSpec, $FILE_ATTRIBUTE_NORMAL, DllStructGetPtr($FileInfo), DllStructGetSize($FileInfo), _
    			$dwFlags _
    			)
    	If ($lR = 0) Then
    		Return SetError(1, 0, -1)
    	Else
    		Return DllStructGetData($FileInfo, "iIcon")
    	EndIf
    EndFunc   ;==>_GUIImageList_GetFileIconIndex
    Alles anzeigen
  • Finde nicht den Visible Text den AU3Info anzeigt

    • autoBert
    • 6. Oktober 2016 um 11:14

    und wo ist dein Skript?

  • StringRegExp Bitte um Hilfe

    • autoBert
    • 5. Oktober 2016 um 15:42

    Bin am zweinfeln ob das mit Regex funktionieren kann, da die Datenzeilen unterschiedliche Strukturen haben. Die Lösung mit StringSplit ist auch nur eine Annäherung:

    Code
    #include <Array.au3>
    
    
    $sText="Teilweise bedeckt. Höchsttemperatur 11C. Wind aus NNO mit 15 bis 25 km/h."&@CRLF
    $sText&="Bedeckt. Tiefsttemperatur 5C. Wind aus NNW mit 10 bis 15 km/h."&@CRLF
    $sText&="Morgens Schauer. Höchsttemperatur 12C. Wind aus N mit 10 bis 15 km/h. Regenrisiko 30 %."&@CRLF
    $sText&="Zunächst Schauer. Tiefsttemperatur 6C. Wind aus NNO und wechselhaft. Regenrisiko 40 %."&@CRLF
    $sText&="Teilweise bedeckt. Höchsttemperatur 13C. Wind aus NNO und wechselhaft."&@CRLF
    $sText&="Meistens klar. Tiefsttemperatur 3C. Wind aus NNO und wechselhaft."&@CRLF
    $sText&="Meistens bewölkt. Höchsttemperatur 12C. Wind aus NNO mit 10 bis 15 km/h."&@CRLF
    $sText&="Teilweise bedeckt. Tiefsttemperatur 3C. Wind aus NNO und wechselhaft."
    
    
    $aWetter=StringSplit($sText,@CRLF,$STR_ENTIRESPLIT)
    
    
    _ArrayDisplay($aWetter)
    _ArrayColInsert($aWetter,1)
    _ArrayColInsert($aWetter,1)
    _ArrayColInsert($aWetter,1)
    For $i=1 to $aWetter[0][0]
    	$aSplit=StringSplit($aWetter[$i][0],'. ',$STR_ENTIRESPLIT)
    	For $j = 1 To $aSplit[0]
    		$aWetter[$i][$j-1]=$aSplit[$j]
    	Next
    Next
    _ArrayDisplay($aWetter)
    Alles anzeigen
  • Email Attachment extrahieren - per POP3 TXT filtern und in Variable übernehmen

    • autoBert
    • 3. Oktober 2016 um 10:05
    Zitat von Oscar

    Ich denke, mein Pop-Show ist nicht mehr wirklich geeignet, weil die meisten EMail-Provider auf SSL-Verschlüsselung umgestellt haben.

    Aber die von dir benutzte _DecodeEncodedWord.au3 von @progandy ist doch immer noch nützlich für seine Zwecke, oder?

  • Email Attachment extrahieren - per POP3 TXT filtern und in Variable übernehmen

    • autoBert
    • 2. Oktober 2016 um 20:39

    Hast du dir schonmal @Oscar's Pop-Show angesehen?

  • Daten von einer Webseite auslesen

    • autoBert
    • 30. September 2016 um 12:25

    Es gibt viele Lösungsmöglichkeiten, sehr einfach wäre:

    • gewünschten Text der Webseite markieren und auf eine Dropbox ziehen

      AutoIt: RicheditAsDropBox
      ;https://autoit.de/index.php/Thread/22579-Dropbox-f%C3%BCr-Links-aus-Browsern/?postID=185846#post185846
      #include <GuiRichEdit.au3>
      #include <GUIConstantsEx.au3>
      #include <WindowsConstants.au3>
      
      
      Local $hGui, $iMsg
      $hGui = GUICreate("Dropbox", 150, 150, -1, -1, BitOR($WS_SIZEBOX, $WS_BORDER), BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW))
      GUICtrlSetState(-1, $GUI_ONTOP)
      $hRichEdit = _GUICtrlRichEdit_Create($hGui, "", 0, 0, 150, 150, -1)
      GUISetState()
      GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
      _GUICtrlRichEdit_SetEventMask($hRichEdit, $ENM_SELCHANGE)
      While True
      	$iMsg = GUIGetMsg()
      	Select
      		Case $iMsg = $GUI_EVENT_CLOSE
      			_GUICtrlRichEdit_Destroy($hRichEdit)
      			GUIDelete()
      			Exit
      	EndSelect
      WEnd
      
      
      Func WM_NOTIFY($hWnd, $iMsg, $iWparam, $iLparam)
      	#forceref $hWnd, $iMsg, $iWparam
      	Local $hWndFrom, $iCode, $tNMHDR, $tEnLink, $cpMin, $cpMax, $tMsgFilter
      	$tNMHDR = DllStructCreate($tagNMHDR, $iLparam)
      	$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
      	$iCode = DllStructGetData($tNMHDR, "Code")
      	Switch $hWndFrom
      		Case $hRichEdit
      			Select
      				Case $iCode = $EN_SELCHANGE
      					_Check()
      			EndSelect
      	EndSwitch
      	Return $GUI_RUNDEFMSG
      EndFunc   ;==>WM_NOTIFY
      
      
      
      
      Func _Check()
      	$sText = _GUICtrlRichEdit_GetText($hRichEdit)
      	MsgBox(64,'Text',$sText)
      EndFunc   ;==>Checklink
      Alles anzeigen
    • das Beispiel zu _ClipBoard_ChangeChain

      AutoIt: _ClipBoard_ChangeChain
      #include <Clipboard.au3>
      #include <GUIConstantsEx.au3>
      #include <SendMessage.au3>
      #include <WindowsConstants.au3>
      
      
      Global $g_idMemo, $g_hNext = 0
      
      
      Example()
      
      
      Func Example()
      	Local $hGUI
      
      
      	; Create GUI
      	$hGUI = GUICreate("Clipboard", 600, 400)
      	$g_idMemo = GUICtrlCreateEdit("", 2, 2, 596, 396, $WS_VSCROLL)
      	GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New")
      	GUISetState(@SW_SHOW)
      
      
      	; Initialize clipboard viewer
      	$g_hNext = _ClipBoard_SetViewer($hGUI)
      
      
      	GUIRegisterMsg($WM_CHANGECBCHAIN, "WM_CHANGECBCHAIN")
      	GUIRegisterMsg($WM_DRAWCLIPBOARD, "WM_DRAWCLIPBOARD")
      
      
      	; Loop until the user exits.
      	Do
      	Until GUIGetMsg() = $GUI_EVENT_CLOSE
      
      
      	; Shut down clipboard viewer
      	_ClipBoard_ChangeChain($hGUI, $g_hNext)
      EndFunc   ;==>Example
      
      
      ; Write message to memo
      Func MemoWrite($sMessage = "")
      	GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1)
      EndFunc   ;==>MemoWrite
      
      
      ; Handle $WM_CHANGECBCHAIN messages
      Func WM_CHANGECBCHAIN($hWnd, $iMsg, $wParam, $lParam)
      	#forceref $hWnd, $iMsg
      	; Show that message was received
      	MemoWrite("***** $WM_CHANGECBCHAIN *****")
      
      
      	; If the next window is closing, repair the chain
      	If $wParam = $g_hNext Then
      		$g_hNext = $lParam
      		; Otherwise pass the message to the next viewer
      	ElseIf $g_hNext <> 0 Then
      		_SendMessage($g_hNext, $WM_CHANGECBCHAIN, $wParam, $lParam, 0, "hwnd", "hwnd")
      	EndIf
      EndFunc   ;==>WM_CHANGECBCHAIN
      
      
      ; Handle $WM_DRAWCLIPBOARD messages
      Func WM_DRAWCLIPBOARD($hWnd, $iMsg, $wParam, $lParam)
      	#forceref $hWnd, $iMsg
      	; Display any text on clipboard
      	MemoWrite(_ClipBoard_GetData())
      
      
      	; Pass the message to the next viewer
      	If $g_hNext <> 0 Then _SendMessage($g_hNext, $WM_DRAWCLIPBOARD, $wParam, $lParam)
      EndFunc   ;==>WM_DRAWCLIPBOARD
      Alles anzeigen

    beides mußt du natürlich nach deinen Bedürfnissen erweitern/abändern.


    Zitat von Muecke

    Hallo Christoph,

    das hört sich doch schon nicht so schlecht an, und sehr User freundlich.

    Jetzt muss ich aber doch doof fragen das ist ein Code der dann im Autoit laufen würde?

    ich habe noch nicht so richtig verstanden was das für ein Programm ist und wo ich das bekomme.

    Was kostet das Programm?

    Die IE.au3 ist eine Standard Datei die man in eigene Skripte inkludieren kann. Die IE.au3 ermöglich das automatisieren des Internetexplorers. Kosten = 0 für das include, Arbeitsaufwand je nach Kenntnissen und Ansprüchen 5 Min. bis unendlich. Schau dir einfach einmal die Beispiele zu _IECreate bzw. _IECreateEmbedded an.

    mfg (auto)Bert

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™