Auch von mir: Alles Gute zum Geburtstag!
Du bist eine echte Bereicherung für unser Forum. Seitdem Du hier bist, gibt es viele Scripte mit GDI+.
Danke für die tollen Scripte und mach weiter so.
Auch von mir: Alles Gute zum Geburtstag!
Du bist eine echte Bereicherung für unser Forum. Seitdem Du hier bist, gibt es viele Scripte mit GDI+.
Danke für die tollen Scripte und mach weiter so.
Wenn Du von Hide und Show sprichst, meinst Du doch wohl Fenster und nicht Prozesse, nicht wahr?
Dementsprechend solltest Du nicht ProcessList benutzen, sondern WinList.
Hier ist mal ein Beispielscript, mit dem man Fenster anzeigen, verstecken und schließen kann:
#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <ListViewConstants.au3>
Global $iOld = -1
$hGui = GUICreate('Window-Manager', 640, 480)
$hWinList = GUICtrlCreateListView('Window-Title|Handle|Status', 5, 5, 630, 430)
GUICtrlSendMsg($hWinList, $LVM_SETCOLUMNWIDTH, 0, 400)
GUICtrlSendMsg($hWinList, $LVM_SETCOLUMNWIDTH, 1, 110)
GUICtrlSendMsg($hWinList, $LVM_SETCOLUMNWIDTH, 2, 60)
$hClose = GUICtrlCreateButton('Close', 390, 450, 60, 22)
$hShow = GUICtrlCreateButton('Show', 470, 450, 60, 22)
$hHide = GUICtrlCreateButton('Hide', 550, 450, 60, 22)
GUISetState()
WinSetOnTop($hGui, '', 1)
While True
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $hHide
$iSelect = ControlListView($hGui, '', $hWinList, 'GetSelected')
If $iSelect <> '' Then
$hWindow = HWnd(ControlListView($hGui, '', $hWinList, 'GetText', $iSelect, 1))
WinSetState($hWindow, '', @SW_HIDE)
$iOld = -1
EndIf
Case $hShow
$iSelect = ControlListView($hGui, '', $hWinList, 'GetSelected')
If $iSelect <> '' Then
$hWindow = HWnd(ControlListView($hGui, '', $hWinList, 'GetText', $iSelect, 1))
WinSetState($hWindow, '', @SW_SHOW)
$iOld = -1
EndIf
Case $hClose
$iSelect = ControlListView($hGui, '', $hWinList, 'GetSelected')
If $iSelect <> '' Then
$hWindow = HWnd(ControlListView($hGui, '', $hWinList, 'GetText', $iSelect, 1))
WinClose($hWindow, '')
$iOld = -1
EndIf
EndSwitch
_DisplayListview($hWinList)
WEnd
Func _DisplayListview(ByRef $hListview)
Local $aWinList, $hwndListview
$aWinList = WinList()
If $aWinList[0][0] = $iOld Then Return
$iOld = $aWinList[0][0]
_ArrayDelete($aWinList, 0)
_ArraySort($aWinList)
$hwndListview = GUICtrlGetHandle($hListview)
_GUICtrlListView_BeginUpdate($hwndListview)
_GUICtrlListView_DeleteAllItems($hwndListview)
For $i = 0 To UBound($aWinList) - 1
If ($aWinList[$i][0] <> '') And BitAND(WinGetState($aWinList[$i][1]), 4) Then
GUICtrlCreateListViewItem($aWinList[$i][0] & '|' & $aWinList[$i][1] & '|' & WinGetState($aWinList[$i][1]), $hListview)
EndIf
Next
_GUICtrlListView_EndUpdate($hwndListview)
EndFunc ;==>_DisplayListview
Aber vorsicht vor dem schließen von unbekannten Fenstern! Die könnten zu irgendwelchen wichtigen (Hintergrund-)Programmen gehören!
PrideRage: extrem unleserlicher Captcha. In 4 von 5 Fällen lag ich falsch, weil ich einfach nur raten musste. Das würde bei den meisten Anwendern Frustration auslösen.
Gefragt war doch, wie das mit Notepad geht (warum auch immer?). ![]()
Also vielleicht so:
Run("notepad.exe")
WinWait("[CLASS:Notepad]")
ControlSetText("[CLASS:Notepad]", "", "Edit1", "Script-Dir = " & @ScriptDir & @CRLF & "Windows-Dir = " & @WindowsDir)
Sleep(1000)
$iLines = ControlCommand("[CLASS:Notepad]", "", "Edit1", "GetLineCount", "")
For $i = 1 To $iLines
$sLine = ControlCommand("[CLASS:Notepad]", "", "Edit1", "GetLine", $i)
$sLeft = StringLeft($sLine, StringInStr($sLine, '\') - 1)
MsgBox(0, "Nach dem ersten '\' löschen", $sLeft)
Next
Hmmm, ich hatte das jetzt eher so verstanden, dass er nicht die hexadezimalen Farbwerte auswählen will, sondern den Farbnamen und angezeigt werden soll dann der Hexwert dazu.
Also eher so:
#include <ComboConstants.au3>
#include <GuiComboBox.au3>
#include <GUIConstantsEx.au3>
Global $aColors[3][2] = [['Rot', '0xFF0000'], ['Grün', '0x00FF00'],['Blau', '0x0000FF']]
GUICreate('test', 180, 80)
$hCombo = GUICtrlCreateCombo($aColors[0][0], 10, 10, 80, 20, $CBS_DROPDOWNLIST)
For $i = 0 To UBound($aColors) - 1
GUICtrlSetData($hCombo, $aColors[$i][0])
Next
GUISetState()
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $hCombo
$iSelect = _GUICtrlComboBox_GetCurSel($hCombo)
ToolTip($aColors[$iSelect][1])
EndSwitch
WEnd
Ich hatte mal mit USB-Joypads experimentiert und habe im engl. Forum ein paar Funktionen dazu gefunden.
Vielleicht hilft Dir das weiter:
#include <GUIConstantsEx.au3>
Global $hJoy
Global $sTitle = 'Joy-Test'
Global $hGui = GUICreate($sTitle, 1200, 740)
Global $hListview = GUICtrlCreateListView('0|0|0|0|0|0|0|0', 10, 10, 1180, 720)
Global $aJoy = _NumberJoy()
Global $hLVItem[$aJoy[0]+1]
For $i = 1 To $aJoy[0]
$hLVItem[$i-1] = GUICtrlCreateListViewItem('0|0|0|0|0|0|0|0', $hListview)
Next
Global $aAllJoy
[/autoit] [autoit][/autoit] [autoit]GUISetState()
AdlibRegister('My_WM_USER_Function', 10)
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
AdlibUnRegister('My_WM_USER_Function')
Func My_WM_USER_Function()
$a = TimerInit()
$aAllJoy = _GetAllJoy($aJoy)
ToolTip(TimerDiff($a))
For $i = 1 To $aJoy[0]
GUICtrlSetData($hLVItem[$i-1], $aAllJoy[$i-1])
Next
EndFunc
Func _GetAllJoy(ByRef $aJoy)
Local $aAllJoy[$aJoy[0]+1], $aTmp
For $i = 1 To $aJoy[0]
$lpJoy = _JoyInit()
$aTmp = _GetJoy($lpJoy, $aJoy[$i])
For $j = 0 To 7
$aAllJoy[$i-1] &= $aTmp[$j] & '|'
Next
Next
Return $aAllJoy
EndFunc
Func _NumberJoy()
Local $aTmp, $j = 0, $aJoy[1] = [0], $lpJoy
For $i = 0 To 15
$lpJoy = _JoyInit()
$aTmp = _GetJoy($lpJoy, $i)
If $aTmp[0] <> 0 Then
$j += 1
ReDim $aJoy[$j + 1]
$aJoy[$j] = $i
$aJoy[0] = $j
EndIf
Next
Return $aJoy
EndFunc
;____________________________________________________________________
; Original program by Ejoc ;
; Improved by Adam1213 (autoit 3.2 compatiblity + improved labels ;
;____________________________________________________________________
;======================================
; _JoyInit()
;======================================
Func _JoyInit()
Global $JOYINFOEX_struct = "dword[13]"
Local $joy = DllStructCreate($JOYINFOEX_struct)
DllStructSetData($joy, 1, DllStructGetSize($joy), 1);dwSize = sizeof(struct)
DllStructSetData($joy, 1, 255, 2) ;dwFlags = GetAll
Return $joy
EndFunc ;==>_JoyInit
;======================================
; _GetJoy($lpJoy,$iJoy)
; $lpJoy Return from _JoyInit()
; $iJoy Joystick # 0-15
; Return Array containing X-Pos, Y-Pos, Z-Pos, R-Pos, U-Pos, V-Pos,POV
; Buttons down
;
; *POV This is a digital game pad, not analog joystick
; 65535 = Not pressed
; 0 = U
; 4500 = UR
; 9000 = R
; Goes around clockwise increasing 4500 for each position
;======================================
Func _GetJoy($lpJoy, $iJoy)
Local $coor[8], $ret
DllCall("Winmm.dll", "int", "joyGetPosEx", "int", $iJoy, "ptr", DllStructGetPtr($lpJoy))
If Not @error Then
$coor[0] = DllStructGetData($lpJoy, 1, 3)
$coor[1] = DllStructGetData($lpJoy, 1, 4)
$coor[2] = DllStructGetData($lpJoy, 1, 5)
$coor[3] = DllStructGetData($lpJoy, 1, 6)
$coor[4] = DllStructGetData($lpJoy, 1, 7)
$coor[5] = DllStructGetData($lpJoy, 1, ![]()
$coor[6] = DllStructGetData($lpJoy, 1, 11)
$coor[7] = DllStructGetData($lpJoy, 1, 9)
EndIf
Return $coor
EndFunc ;==>_GetJoy
Möglichst keine globalen Variablen benutzen und die lokalen Variablen auch als Local deklarieren, damit es keine Konflikte mit evtl. vorhandenen globalen Variablen gleichen Namens gibt.
Ich glaube nicht, dass ein entfernen der "Null-Beitrag-User" einen Geschwindigkeitsgewinn bringt.
Mal abgesehen davon, dass es ja auch sein kann, dass diese User nur lesend am Forum teilnehmen.
Wenn überhaupt, müsste man das zusätzlich abhängig machen vom letzten LogIn des Users, aber wie bereits gesagt, bezweifle ich, dass das geschwindigkeitsmäßig etwas bringt.
So kannst Du das viel einfacher auslesen:
#include <Array.au3>
HttpSetUserAgent('firefox')
$sIndex = BinaryToString(InetRead('http://jurax.square7.ch/INR/index.html'))
If @error Then
If @OSLang = 0407 Then
MsgBox(0, "INR Updater", "Keine Verbindung zur Seite. Bitte überprüfen Sie ihre Netzwerkverbindung und versuchen es erneut!")
Else
MsgBox(0, "INR Updater", "Could not connect to site. Please check your connection and try again!")
EndIf
Sleep(4000)
Exit
EndIf
$aVersion = StringRegExp($sIndex, 'INR Version\s+(\d+\.\d+)', 3)
_ArrayDisplay($aVersion)
Post#1 wiederhergestellt und nach "Hilfe & Unterstützung" verschoben.
Es gibt auch noch die Möglichkeit mit einer Checkbox und dem $BS_PUSHLIKE-Style solche Buttons zu erstellen:
#include <ButtonConstants.au3>
GUICreate('Switch-Button', 400, 300)
$hButton1 = GUICtrlCreateCheckbox('Button 1', 20, 20, 100, 20, $BS_PUSHLIKE)
$hButton2 = GUICtrlCreateCheckbox('Button 2', 20, 60, 100, 20, $BS_PUSHLIKE)
$hButton3 = GUICtrlCreateCheckbox('Button 3', 20, 100, 100, 20, $BS_PUSHLIKE)
GUISetState()
Do
Until GUIGetMsg() = -3
Wohl eher so:
[autoit]
#include <File.au3>
$array = _FileListToArray(@DesktopDir, '*.lnk')
If IsArray($array) Then
For $i = 1 To $array[0]
FileDelete(@DesktopDir & '\' & $array[$i])
Next
EndIf
Das Erste, was Du tun könntest, wäre: Dein Script hier zu posten. ![]()
Und wir unterstützen hier Deinen Bot immer noch nicht!
Diesen Thread hier habe ich doch bereits geschlossen. Glaubst Du, dass Du uns ver**schen kannst?
[Thread closed]
Bitte benutze für AutoIt-Scripte die Spoiler- und AutoIt-Tags, dann kann man den Quelltext hier einfacher lesen.
Ich denke der Fehler liegt darin, dass Du StringReplace und nicht StringReqExpReplace benutzt (wie in meinem Beispiel).
Die "\x27" für die einfachen Anführungszeichen funktionieren nur bei RegExp nicht beim normalen Replace.
Generell wäre es für uns einfacher, wenn Du eine der HTML-Dateien posten würdest (Anhang) und dann dazuschreibst, was davon ersetzt werden soll.
So könnte man das leichter testen.
Das verstösst aber mit Sicherheit gegen die AGBs des Betreibers und somit unterstützen wir auch das nicht!
[Thread closed]
Ich weiß jetzt nicht, welcher Teil zum erkennen (match) relevant ist, deshalb habe ich mal alles genommen:
[autoit]
$string = FileRead('test.txt')
$string = StringRegExpReplace($string, '<a href="" onclick="document.searchForm.SectionDefInternalNames.value=\x27FaqSection,Attachments,SurveySection,RightNowDetails\x27;_popupPrepareFormForSubmit\(\x27searchForm\x27\);documentsDetailsPrepareDocEdition\(\x27searchForm\x27,\x270\x27,\x27DT_Troubleshooting_FAQLoc\x27\);return mytasksExecuteAction\(\x27searchForm\x27,\x27root\x27, (\d{6}),(\d{3}), \x27No\x27,false,false,2,\x27\/crm\/publication\/includes\/editor.jsp\x27,\x27_self\x27,\x27none\x27\);">', '<td>$1, $2</td>')
MsgBox(0,0,$string)
ich vermute aber mal, dass nach dem "<a href...>" auch noch ein Text und ein "</a>" folgt, die dann wohl auch entfernt werden müssen. Deshalb hier noch eine entsprechend erweiterte Version:
[autoit]
$string = FileRead('test.txt')
$string = StringRegExpReplace($string, '<a href="" onclick="document.searchForm.SectionDefInternalNames.value=\x27FaqSection,Attachments,SurveySection,RightNowDetails\x27;_popupPrepareFormForSubmit\(\x27searchForm\x27\);documentsDetailsPrepareDocEdition\(\x27searchForm\x27,\x270\x27,\x27DT_Troubleshooting_FAQLoc\x27\);return mytasksExecuteAction\(\x27searchForm\x27,\x27root\x27, (\d{6}),(\d{3}), \x27No\x27,false,false,2,\x27\/crm\/publication\/includes\/editor.jsp\x27,\x27_self\x27,\x27none\x27\);">.+?</a>', '<td>$1, $2</td>')
MsgBox(0,0,$string)
Edit: Schnitzel, das ist echt schon erstaunlich! Immer zur gleichen Zeit! ![]()
Ojo, wenn Du Dir schon so sicher bist, dann will ich Dich mal nicht enttäuschen
:
$string = StringRegExpReplace($string, 'üüü(\d{6})\)', '<td>$1</td>')
[/autoit]Kann es vielleicht sein, dass Du vergessen hast, den ersetzten Text wieder der Variablen zuzuweisen?
Um m-obis Beispiel aufzugreifen, sollte die Zeile dann so aussehen:
$content = StringReplace($content, '<img src="/comp/crm/themes/concrete/jspimages/publication/sectionnotifgreenbullet.gif" alt="">', "ää_green")
[/autoit]Auf jeden Fall hat das nichts mit einem AutoIt-Projekt zu tun, sondern ist lediglich eine "Werbe-Aktion" für seine Homepage.
Habe den Thread mal nach Off-Topic verschoben!