Erst einmal herzliches Hallo an die Community
Ich habe mich diesen Monat mit dem Thema Autoit beschäftigt und bin gerade dabei ein Script zu entwerfen.
Eiegentlich sind es sogar 2...das erste wird auf die gewünschten PCs "installiert" und erzeugt in einem gewissen Intervall
Screenshots vom Desktop und speichert diese in einen Ordner.
Nun entwerfe ich das "Hauptscript" mit passender GUI. Dieses soll mir quasi die Bilder die das erste Tool erzeugt hat,
anzeigen. Dazu habe ich erst einmal eine Listbox erstellt wo ich die Bilder im Ordner sehen kann. Nun hänge ich seit einigen Tagen und etlichen Probieren an den Problem, das mir das Script auch genau das Bild anzeigt, was ich in der Listbox ausgewählt habe. Ich habe es erst einmal so weit, das er mir überhaubt ein Bild anzeigt, sobald ich etwas ausgewählt habe. Ich müsste den script doch jetzt nur noch zeigen, das er mir das Anzeigen soll, was er im Array hat oder?
Am Ende habe ich dann noch vor die Möglichkeit zu haben, das ich den PC-Namen mit den Standort des PCs koppel und er mir dann Quasi den Standort anzeigt und nicht den Namen vom Bild bzw. vom PC.
Hier einmal die Codes:
Tool 1:
Spoiler anzeigen
#include <ScreenCapture.au3>
#include <Constants.au3>
#include <GUIConstants.au3>
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#NoTrayIcon
;AutoItSetOption("MustDeclareVars", 1)
;AutoItSetOption("MouseCoordMode", 1)
;AutoItSetOption("PixelCoordMode", 0)
;AutoItSetOption("RunErrorsFatal", 0)
;AutoItSetOption("TrayIconDebug", 1)
;AutoItSetOption("WinTitleMatchMode", 4)
;Opt("TrayMenuMode",1)
;----------------------------------------------------------------------------------------------------------------------------
; Pfad zu den ScreenShot Einstellungen:
;----------------------------------------------------------------------------------------------------------------------------
Global $inifile = @ScriptDir & "\settings.ini"
;----------------------------------------------------------------------------------------------------------------------------
; Ini Datei:
;----------------------------------------------------------------------------------------------------------------------------
global $interval = Iniread(@Scriptdir & "\settings.ini", "Allgemein", "Intervall", "")
;----------------------------------------------------------------------------------------------------------------------------
; Erstellen des Tray-Menu's:
;----------------------------------------------------------------------------------------------------------------------------
Global $trayscreenshot = TrayCreateMenu("ScreenShot")
Global $traydeskshot = TrayCreateItem("Start", $trayscreenshot)
Global $trayexitshot = TrayCreateItem("Beenden", $trayscreenshot)
Global $options = TrayCreateMenu("Einstellungen")
Global $options_intervall = TrayCreateItem("Intervall", $options)
Global $info = TrayCreateItem("Über")
TraySetState()
Global $exit = TrayCreateItem("Exit")
TrayTip("ScreenShot-Tool:", "zum Erstellen von automatischen ScreenShots.", 5, 1)
Opt("TrayMenuMode", 1) ; "script paused" wird ausgechalten
;----------------------------------------------------------------------------------------------------------------------------
; Screenshot des Desktops:
; ----------------------------------------------------------------------------------------------------------------------------
Func DesktopScreenShot()
[/autoit] [autoit][/autoit] [autoit]DirCreate(@DesktopDir & "\Screenshots\"); erstellt Verzeichnis für die Screenshots
_ScreenCapture_Capture(@DesktopDir & "\Screenshots\Screenshot_" & @ComputerName & ".jpg")
If @error Then MsgBox(262160, "Fehler", "Es wurde kein Screenshot erstellt!", 4)
;sleep (30000)
EndFunc
;----------------------------------------------------------------------------------------------------------------------------
; Info:
; ----------------------------------------------------------------------------------------------------------------------------
Func info()
MsgBox(64, "Info:", "Windows SreenShot-Tool" & @LF & "Version: 1.0.0" & @LF & "erstellt mit AutoIt 3" & @LF & "" & @LF & "© 2011 by Tom W", 15)
EndFunc
;----------------------------------------------------------------------------------------------------------------------------
; Funktion CheckInput:
; ----------------------------------------------------------------------------------------------------------------------------
func CheckInput()
$getinput = GUICtrlRead ($interval)
if StringIsDigit ($getinput) = 0 Then
SplashTextOn("Fehler", "Bitte geben Sie die gewünschte Aktualisierungszeit ein!")
EndIf
EndFunc
;----------------------------------------------------------------------------------------------------------------------------
; tray:
; ----------------------------------------------------------------------------------------------------------------------------
While 1
$trayMsg = TrayGetMsg()
Switch $trayMsg
Case $traydeskshot
if ($interval > 0) Then
AdlibRegister("DesktopScreenshot", $interval * 1000)
Else
DesktopScreenShot()
EndIf
Case $trayexitshot
AdlibUnRegister("DesktopScreenshot")
case $options_intervall
Do
$interval = Inputbox("","Aktualisierungshäufigkeit in Sekunden: ")
;CheckInput()
if @error = 1 Then
ExitLoop
EndIf
if ($interval <=0) Then
MsgBox(0,"Fehler!", "Bitte geben Sie einen gültigen Wert ein!")
EndIf
Iniwrite(@Scriptdir & "\settings.ini", "Allgemein", "Intervall", $interval)
Until ($interval > 0)
Case $info
info()
Case $exit
Exit
Exit
EndSwitch
WEnd
Tool 2:
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <WindowsConstants.au3>
#include <File.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>
#include <GDIPlus.au3>
#include <ScreenCapture.au3>
#include <StructureConstants.au3>
#include <array.au3>
#include <GuiComboBox.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 886, 644, 188, 117)
$filemenu = GUICtrlCreateMenu ("&Programm")
$fileitem1 = GUICtrlCreateMenuItem("Start", $filemenu)
$fileitem2 = GUICtrlCreateMenuItem("Einstellungen", $filemenu)
GUICtrlCreateMenuItem("", $filemenu, 2)
$fileitem3 = GUICtrlCreateMenuItem("Beenden", $filemenu)
$Button1 = GUICtrlCreateButton("Aktualisieren", 64, 24, 273, 41, $WS_GROUP)
$ListBox = GUICtrlCreateList("", 24, 168, 225, 406, BitOR($CBS_SORT, $GUI_SS_DEFAULT_COMBO))
$label = GUICtrlCreateGroup("PC-Screenshot", 270, 148, 610, 436)
$hWndListBox = GUICtrlGetHandle($ListBox)
GUISetState()
#EndRegion ### END Koda GUI section ###
$Form2 = GUICreate("Form2", 300,300,188,117)
GUICtrlSetState(-1, $GUI_DISABLE)
$LastSel = ""
[/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
;$sPath = FileSelectFolder("Bitte Pfad aussuchen", "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}", 2, @ScriptDir, $Form1) ;evtl. 2 mit 0 ersetzen
$sPath = "Pfad zu den Screenshots"
$Files = _FileListToArray($sPath, "*.jpg", 1)
For $i = 1 To $Files[0]
GUICtrlSetData($Listbox, $Files[$i] )
Next
Case $fileitem2
GUISetState(@SW_SHOW, $Form2)
EndSwitch
[/autoit] [autoit][/autoit] [autoit]If GUICtrlRead($ListBox) <> $LastSel Then
$LastSel = GUICtrlRead($ListBox)
$pic = GUICtrlCreatePic(@ScriptDir & "\bild.jpg", 300, 168, 561, 409)
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]WEnd
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]Über Hilfe und Ratschläge wäre ich sehr dankbar =)