Hallo,
wie kann ich mit AutoIt einen InputBox machen das genauso funktioniert wie das da oben(Suchfunktionsinput).?
Also wenn man da nicht draufklickt steht da "Suchbegriff eingeben" und bei klick ist es leer.
Hallo,
wie kann ich mit AutoIt einen InputBox machen das genauso funktioniert wie das da oben(Suchfunktionsinput).?
Also wenn man da nicht draufklickt steht da "Suchbegriff eingeben" und bei klick ist es leer.
ich würde das so machen:
#include <GUIConstants.au3>
#include <WindowsConstants.au3>
GUICreate('')
$input = GUICtrlCreateInput("Suchkriterien eingeben ...",10,10,300,20)
$button = GUICtrlCreateButton("OK",135,40,40,20)
GUICtrlSetState($button,$GUI_FOCUS)
GUISetState()
GUIRegisterMsg($WM_COMMAND, "MY_WM_COMMAND")
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
Exit
EndSelect
WEnd
Func MY_WM_COMMAND($hWnd, $msg, $wParam, $lParam)
$nNotifyCode = BitShift($wParam, 16)
$nID = BitAND($wParam, 0xFFFF)
Switch $nNotifyCode
Case 512 ; verläßt Focus
Case 256 ; erhält Focus
GUICtrlSetData($input,"")
Case 1024 ; Edit in Focus
EndSwitch
EndFunc ;==>MY_WM_COMMAND
Hey, das ist klasse!
Eine etwas erweiterte Version:
#include <EditConstants.au3>
#include <ScrollBarConstants.au3>
#include <GuiEdit.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
Global $iHit = 0
Global $sFile = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\AutoIt', 'InstallDir') & '\include\changelog.txt'
$hGui = GUICreate('Text suchen', 720, 480)
[/autoit] [autoit][/autoit] [autoit]$hEdit = GUICtrlCreateEdit(FileRead($sFile), 10, 10, 700, 440, BitOR($GUI_SS_DEFAULT_EDIT, $ES_READONLY))
GUICtrlSetBkColor(-1, 0xFFFFFF)
ControlFocus($hGui, '', $hEdit)
$hInput = GUICtrlCreateInput('Bitte Suchbegriff eingeben!', 10, 455, 638, 20)
$hSearch = GUICtrlCreateButton('Suchen', 650, 454, 60, 22)
GUISetState()
GUIRegisterMsg($WM_COMMAND, 'MY_WM_COMMAND')
While True
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $hSearch
$sText = GUICtrlRead($hEdit)
$sSearch = GUICtrlRead($hInput)
$iHit = StringInStr($sText, $sSearch, 0, 1, $iHit + 1)
If $iHit > 0 Then
ControlFocus($hGui, '', $hEdit)
_GUICtrlEdit_SetSel($hEdit, $iHit - 1, $iHit - 1 + StringLen($sSearch))
_GUICtrlEdit_Scroll($hEdit, $SB_SCROLLCARET)
GUICtrlSetData($hSearch, 'Weiter...')
Else
Beep(400, 100)
GUICtrlSetData($hSearch, 'Suchen')
EndIf
EndSwitch
WEnd
Func MY_WM_COMMAND($hWnd, $msg, $wParam, $lParam)
Local $nNotifyCode = BitShift($wParam, 16)
Local $nID = BitAND($wParam, 0xFFFF)
If $nID = $hInput And $nNotifyCode = 256 Then
GUICtrlSetData($hSearch, 'Suchen')
GUICtrlSetData($hInput, '')
$iHit = 0
EndIf
Return $GUI_RUNDEFMSG
EndFunc ;==>MY_WM_COMMAND
Hi, das lässt sich noch mehr erweitern
#include <EditConstants.au3>
#include <ScrollBarConstants.au3>
#include <GuiEdit.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
Global $iHit = 0, $_EMPTY_TEXT='Bitte Suchbegriff eingeben!', $_OLD_TEXT=""
Global $sFile = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\AutoIt', 'InstallDir') & '\include\changelog.txt'
$hGui = GUICreate('Text suchen', 720, 480)
[/autoit] [autoit][/autoit] [autoit]$hEdit = GUICtrlCreateEdit(FileRead($sFile), 10, 10, 700, 440, BitOR($GUI_SS_DEFAULT_EDIT, $ES_READONLY))
GUICtrlSetBkColor(-1, 0xFFFFFF)
ControlFocus($hGui, '', $hEdit)
$hInput = GUICtrlCreateInput($_EMPTY_TEXT, 10, 455, 638, 20)
$hSearch = GUICtrlCreateButton('Suchen', 650, 454, 60, 22)
GUISetState()
GUIRegisterMsg($WM_COMMAND, 'MY_WM_COMMAND')
While True
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $hSearch
$sText = GUICtrlRead($hEdit)
$sSearch = GUICtrlRead($hInput)
$iHit = StringInStr($sText, $sSearch, 0, 1, $iHit + 1)
If $iHit > 0 Then
ControlFocus($hGui, '', $hEdit)
_GUICtrlEdit_SetSel($hEdit, $iHit - 1, $iHit - 1 + StringLen($sSearch))
_GUICtrlEdit_Scroll($hEdit, $SB_SCROLLCARET)
GUICtrlSetData($hSearch, 'Weiter...')
Else
Beep(400, 100)
GUICtrlSetData($hSearch, 'Suchen')
EndIf
EndSwitch
WEnd
Func MY_WM_COMMAND($hWnd, $msg, $wParam, $lParam)
Local $nNotifyCode = BitShift($wParam, 16)
Local $nID = BitAND($wParam, 0xFFFF)
If $nID = $hInput Then
Switch $nNotifyCode
Case 256
If GUICtrlRead($nID) = $_EMPTY_TEXT Then
GUICtrlSetData($hInput, '')
EndIf
Case 512
If GUICtrlRead($nID) = "" Then
GUICtrlSetData($hSearch, 'Suchen')
GUICtrlSetData($hInput, $_EMPTY_TEXT)
$iHit = 0
EndIf
Case 1024
Local $txt = GUICtrlRead($nID)
If $_OLD_TEXT <> $txt Then
GUICtrlSetData($hSearch, 'Suchen')
$iHit = 0
$_OLD_TEXT = $txt
EndIf
EndSwitch
EndIf
Return $GUI_RUNDEFMSG
EndFunc ;==>MY_WM_COMMAND