Nicht angemeldet.
Hier können Sie Ihre eigenen Skripte und UDF's veröffentlichen undanderen zum Download anbieten oder von anderen herunterladen
#Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Outfile=..\..\..\..\Dokumente und Einstellungen\Bert\Desktop\ScreenShot.exe #AutoIt3Wrapper_UseUpx=n #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <GUIConstantsEx.au3> #include <ScreenCapture.au3> #include <GuiListView.au3> ;#include <array.au3> $sIniPlace = @MyDocumentsDir & "\SreenShots" If Not FileExists($sIniPlace) Then DirCreate($sIniPlace) Global $iNr = IniRead($sIniPlace & "\ScreenShot.INI", "NR", "Bild", "0") ;consolewrite($iNr & @CRLF) $hGui = GUICreate("ScreenShot", 280, 230) GUISetBkColor(0x00E0FFFF) ; Ändert die Hintergrundfarbe $listview = GUICtrlCreateListView("Programme|Handle", 10, 10, 260, 180) $btnFoto = GUICtrlCreateButton("&Foto", 105, 200, 70, 20) ;$btnAkt = GUICtrlCreateButton("Liste &aktualisieren", 90, 200, 100, 20) _GetList() GUISetState() AdlibRegister("_GetList", 5000) ;evtl. heruntersetzen While 1 $msg = GUIGetMsg() Switch $msg Case $GUI_EVENT_CLOSE IniWrite($sIniPlace & "\ScreenShot.INI", "NR", "Bild", $iNr) Exit ; Case $btnAkt ; _GetList() Case $btnFoto AdlibUnRegister("_GetList") $iNr = $iNr + 1 $aItem = _GUICtrlListView_GetItemTextArray($listview) Switch $aItem[1] Case "Ganzer Bildschirm" ;consolewrite("Alles") _ScreenCapture_Capture($sIniPlace & "\" & $iNr & "_" & "VollBild" & ".jpg") Case "Program Manager" ;consolewrite("Manager" & @CRLF) For $i = 1 To _GUICtrlListView_GetItemCount($listview) - 1 $aItem2 = _GUICtrlListView_GetItemTextArray($listview, $i) If $aItem2[1] <> "Program Manager" Then ;consolewrite("verstecke " & $aItem2[1] & @CRLF) WinSetState($aItem2[1], "", @SW_HIDE) EndIf Next GUISetState(@SW_HIDE, $hGui) _ScreenCapture_Capture($sIniPlace & "\" & $iNr & "_" & "Desktop" & ".jpg") GUISetState(@SW_SHOW, $hGui) For $i = _GUICtrlListView_GetItemCount($listview) - 1 To 0 Step -1 $aItem2 = _GUICtrlListView_GetItemTextArray($listview, $i) ;consolewrite("zeige " & $aItem2[1] & @CRLF) WinSetState($aItem2[1], "", @SW_SHOW) Next Case Else ;_ArrayDisplay($aItem) $iOldState = WinGetState($aItem[1]) $aName = StringSplit($aItem[1], "\") If IsArray($aName) Then $sName = $aName[$aName[0]] Else $sName = $aItem[1] EndIf ;consolewrite($iOldState & @CRLF) $sCaptured = " " & @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN WinSetTitle($aItem[1], "", $aItem[1] & $sCaptured) $HWnd = WinActivate($aItem[1]) ;consolewrite($aItem[1] & " " & $aItem[2] & @CRLF) If $HWnd <> "" Then _ScreenCapture_CaptureWnd($sIniPlace & "\" & $iNr & "_" & $sName & ".jpg",$HWnd) ;_ScreenCapture_CaptureWnd($sIniPlace & "\Bild" & $iNr & ".jpg", $aItem[2]) ;falls die langen Dateinamen lästig sind einfach 2. Version nehmen Else ;consolewrite("ohne Handle" & @CRLF) _ScreenCapture_Capture($sIniPlace & $iNr & "_" & "\VollBild" & ".jpg") ;nur vorsichtshalber HWnd kann eigentlich nur leer sein, wenn Fenster mittlerweile geschlossen EndIf WinActivate("ScrenShot") WinSetTitle($aItem[1] & $sCaptured, "", $aItem[1]) WinSetState($aItem[1], "", $iOldState) GUISetState(@SW_RESTORE, $hGui) AdlibRegister("_GetList", 5000) ;evtl. heruntersetzen EndSwitch EndSwitch WEnd Func _GetList() $aItem = _GUICtrlListView_GetItemTextArray($listview) ;consolewrite($aItem[1] & @CRLF) _GUICtrlListView_BeginUpdate($listview) _GUICtrlListView_DeleteAllItems($listview) GUICtrlCreateListViewItem("Ganzer Bildschirm|0", $listview) $var = WinList() For $i = 1 To $var[0][0] ; Listet nur die sichtbaren Fenster auf, die einen Titel haben If $var[$i][0] <> "" And IsVisible($var[$i][1]) Then GUICtrlCreateListViewItem($var[$i][0] & "|" & $var[$i][1], $listview) Next _GUICtrlListView_SetColumnWidth($listview, 0, $LVSCW_AUTOSIZE) ;_GUICtrlListView_SetColumnWidth($listview, 1, 0) If $aItem[1] <> "" Then _GUICtrlListView_SetItemState($listview, _GUICtrlListView_FindText($listview, $aItem[1], 0, False), $LVIS_SELECTED, $LVIS_SELECTED) _GUICtrlListView_EndUpdate($listview) EndFunc ;==>_GetList Func IsVisible($handle) If BitAND(WinGetState($handle), 2) Then Return 1 Else Return 0 EndIf EndFunc ;==>IsVisible
Zitat Zitat AtoIt Help (History / ChangeLog 3.3.6.0) Fixed #1446: _ScreenCapture_Capture() was using height/width of 1 pixel less.
Dauerhaft angemeldet bleiben?