first commit

This commit is contained in:
Bernhard 2017-09-12 23:14:55 +02:00
commit 0f54c4f528
35 changed files with 2327 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
tumblr_opjjpnQXfQ1use0z2o1_1280.jpg
*.back

BIN
CalibeIcon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

186
CalibreMultiuserStarter.au3 Normal file
View File

@ -0,0 +1,186 @@
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=CalibeIcon.ico
#AutoIt3Wrapper_Res_Description=2013 Bernhard Linz / Bernhard@znil.de / http://znil.net
#AutoIt3Wrapper_Res_Fileversion=1.0.0.15
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Res_LegalCopyright=znil.net
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <GDIPlus.au3>
Dim Const $s_LockFileName = "CalibreLockFile.txt"
Dim Const $s_CalibreProgramName = "calibre-portable.exe"
Dim Const $s_CalibreMainProgramName = "calibre.exe"
Dim Const $s_WallpaperFile = "e4a21754cc0d4b0ee446f41df2b2ed9d.jpg"
Dim Const $a_ReplaceUsername[2] = [ "Error", "Bernhard" ]
Dim Const $a_ReplaceComputername[2] = [ "ERROR-PC" , "Computer von Bernhard" ]
Dim $sUsername
Dim $sComputername
Dim $h_lockfile
Dim $h_Calibre
Dim $b_RunCalibe = False
Dim $a_gelockt_von
Dim $h_DllErgebnis
Dim $s_clientname
Dim $s_ip
Dim $a_DezimalIP[5]
Dim $b_CalibreWindowsActive = False
Dim $b_SetWallpaper = False
$sComputername = StringReplace(@ComputerName, $a_ReplaceComputername[0], $a_ReplaceComputername[1])
$sUsername = StringReplace(@UserName, $a_ReplaceUsername[0], $a_ReplaceUsername[1])
;Setzt Hintergrundbild, siehe https://autoit.de/index.php/Thread/19060-Wallpaper-im-laufenden-Betrieb-%C3%A4ndern-inkl-auswahl-des-Styles/
Func Wallpaper($Wallpaper, $Stile)
;Set Wallpaper
;In XP only bmp files!
;$Wallpaper = Full Path and Filename. Leave blank if no Wallpaper
;$Stile = Wallpaper Style
;Call: Wallpaper("Path\Filename.extention","Stile")
;Don't miss to include the GDIPlus.au3 (#include <GDIPlus.au3>)
Select
Case $Stile="Center"
$Stile="0"
$Stile2="0"
Case $Stile="Fit"
$Stile="1"
$Stile2="0"
Case $Stile="Stretch"
$Stile="2"
$Stile2="0"
Case $Stile="Fill"
$Stile="-1"
$Stile2="0"
Case $Stile="Tile"
$Stile="0"
$Stile2="1"
EndSelect
Local $TempWallpaper = @TempDir & "\Wallpaper.bmp"
_GDIPlus_Startup()
$hBitmap = _GDIPlus_BitmapCreateFromFile($Wallpaper) ;Converts Image to Bitmap
_GDIPlus_ImageSaveToFile($hBitmap, $TempWallpaper) ;Save in temp directory
_GDIPlus_BitmapDispose($hBitmap) ;Release Bitmap Resource
_GDIPlus_Shutdown()
RegWrite("HKEY_CURRENT_USER\Control Panel\Desktop", "WallpaperStyle", "REG_SZ", $Stile)
RegWrite("HKEY_CURRENT_USER\Control Panel\Desktop", "TileWallpaper", "REG_SZ", $Stile2)
RegWrite("HKEY_CURRENT_USER\Control Panel\Desktop", "Wallpaper", "REG_SZ", $TempWallpaper)
DllCall("user32.dll", "int", "SystemParametersInfo","uint",20,"uint",0,"str",$TempWallpaper,"uint",3)
EndFunc ;EndFunc Wallpaper
If $CmdLine[0] > 0 Then
If $CmdLine[1] = "wallpaper" Then
$b_SetWallpaper = True
EndIf
EndIf
If FileExists($s_LockFileName) = 1 Then
$h_lockfile = FileOpen($s_LockFileName,0)
$a_gelockt_von = StringSplit(FileReadLine($s_LockFileName), ":", 0)
FileClose($h_lockfile)
; $a_gelockt_von[1] = Benutzername
; $a_gelockt_von[2] = Computername
; $a_gelockt_von[3] = Stunde
; $a_gelockt_von[4] = Minute
; $a_gelockt_von[5] = Tag
; $a_gelockt_von[6] = Monat
; $a_gelockt_von[7] = Jahr
If $a_gelockt_von[0] = 7 Then ; Wenn da 7 Werte drin stehen ist es eine gültige Datei
MsgBox(262160, "Calibre blockiert", "Der Benutzer '" & $a_gelockt_von[1] & "' am Computer '" & $a_gelockt_von[2] & "'" & @CRLF & _
"hat bereits um " & $a_gelockt_von[3] & ":" & $a_gelockt_von[4] & " Uhr am " & $a_gelockt_von[5] & "." & $a_gelockt_von[6] & "." & $a_gelockt_von[7] & @CRLF & _
"Calibre gestartet und nimmt eventuell Änderungen vor." & @CRLF & @CRLF & _
"Programmaufruf ist blockiert!")
EndIf
$b_RunCalibe = False
Else
$h_lockfile = FileOpen($s_LockFileName,2)
FileWriteLine($h_lockfile, $sUsername & ":" & $sComputername & ":" & @HOUR & ":" & @MIN & ":" & @MDAY & ":" & @MON & ":" & @YEAR & @CRLF)
FileClose($h_lockfile)
$b_RunCalibe = True
; Dinge aus RDP-Session herausfinden
$h_DllErgebnis = DllCall("Wtsapi32.dll","BOOL","WTSQuerySessionInformationW","int",0, "int", -1, "int", 10, "ptr*", 0, "DWORD*",0)
If @error Or $h_DllErgebnis[0] = 0 Then
$s_clientname = "unknown"
Else
$s_clientname = BinaryToString( DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1) ,2)
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
EndIf
$h_DllErgebnis = DllCall("Wtsapi32.dll","int", "WTSQuerySessionInformationW", "Ptr", 0, "int", -1, "int", 14, "ptr*", 0, "DWORD*", 0)
If @error Or $h_DllErgebnis[0] = 0 Then
$s_ip = "unknown"
Else
$s_ip = DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1)
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
$s_ip = StringTrimLeft($s_ip,14)
$a_DezimalIP[1] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[2] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[3] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[4] = Dec(StringLeft($s_ip,2))
$s_ip = $a_DezimalIP[1] & "." & $a_DezimalIP[2] & "." & $a_DezimalIP[3] & "." & $a_DezimalIP[4]
EndIf
; Und Logfile-Schreiben
If $s_clientname = "" Then
$s_clientname = "Keine RDP Sitzung!"
$s_ip = ""
EndIf
FileWriteLine(@ScriptDir & "\MultiuserLOG.txt", @YEAR & "-" & @MON & "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " - LOGIN => USERNAME: " & @UserName & _
" COMPUTERNAME: " & @ComputerName & " RDP-Client: " & $s_clientname & " - " & $s_ip)
EndIf
If $b_RunCalibe = False Then
Exit 1
EndIf
If $b_SetWallpaper = True Then
Wallpaper(@ScriptDir & "\" & $s_WallpaperFile, "Fill")
EndIf
$h_Calibre = Run(@ScriptDir & "\" & $s_CalibreProgramName, @ScriptDir, @SW_MAXIMIZE)
If $h_Calibre = 0 Then
FileDelete($s_LockFileName)
MsgBox(16, "Fehler", "Konnte '" & @ScriptDir & "\" & $s_CalibreProgramName & "' nicht starten")
Exit 1
EndIf
;SpashImage features: Title=No, Width=602, Height=302, Always On Top
SplashImageOn("", "bittewarten.jpg","602","302","-1","-1",1)
Do
If $b_CalibreWindowsActive = False Then
If WinExists ("calibre") = 1 Then
Sleep(2000)
SplashOff()
;MsgBox(0, "Calibre-Fenster", "Ist da!")
$b_CalibreWindowsActive = True
EndIf
EndIf
Sleep(1000)
;ConsoleWrite($h_Calibre & @CRLF)
If (ProcessExists($h_Calibre) = 0) And (ProcessExists($s_CalibreMainProgramName) = 0) Then
$b_RunCalibe = False
EndIf
Until $b_RunCalibe = False
FileDelete($s_LockFileName)
FileWriteLine("MultiuserLOG.txt", @YEAR & "-" & @MON & "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " - LOGOUT => USERNAME: " & @UserName & _
" COMPUTERNAME: " & @ComputerName & " RDP-Client: " & $s_clientname & " - " & $s_ip)
Sleep (2000)
If FileExists($s_LockFileName) = 1 Then
MsgBox(16,"Warnung", "Konnte das Calibre-Lock-File nicht löschen:" & @CRLF & @ScriptDir & "\" & $s_CalibreProgramName)
Exit 1
Else
Exit 0
EndIf

BIN
CalibreMultiuserStarter.exe Normal file

Binary file not shown.

BIN
Icon256-32.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

0
README.md Normal file
View File

View File

@ -0,0 +1,38 @@
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=Icon256-32.ico
#AutoIt3Wrapper_Change2CUI=y
#AutoIt3Wrapper_Res_SaveSource=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Opt('MustDeclareVars', 1)
Dim $h_DllErgebnis
Dim $s_clientname
Dim $s_ip
Dim $a_DezimalIP[5]
Func _ANSI2OEM($text)
$text = DllCall('user32.dll', 'Int', 'CharToOem', 'str', $text, 'str', '')
Return $text[2]
EndFunc ;==>_ANSI2OEM
RegDelete("HKEY_CURRENT_USER\Environment", "WTSAPI_ClientName")
ConsoleWrite(_ANSI2OEM("Call Wtsapi32.dll for Remote-Clientname ... "))
$h_DllErgebnis = DllCall("Wtsapi32.dll","BOOL","WTSQuerySessionInformationW","int",0, "int", -1, "int", 10, "ptr*", 0, "DWORD*",0)
If @error Or $h_DllErgebnis[0] = 0 Then
ConsoleWrite(_ANSI2OEM("failed! (It's ok if this is a Console-Session)" & @CRLF & @CRLF))
$s_clientname = ""
Else
$s_clientname = BinaryToString( DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1) ,2)
ConsoleWrite(_ANSI2OEM("success! Name is " & $s_clientname & @CRLF & @CRLF))
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
EndIf
$s_clientname = _ANSI2OEM($s_clientname)
ConsoleWrite(_ANSI2OEM("Setting %WTSAPI_ClientName% to '" & $s_clientname & "'" & @CRLF & @CRLF))
EnvSet("WTSAPI_ClientName", $s_clientname)
;~ RunWait(@ComSpec & "/C setx WTSAPI_ClientName " & $s_clientname)
RegWrite("HKEY_CURRENT_USER\Environment", "WTSAPI_ClientName", "REG_SZ", $s_clientname)
;~ EnvUpdate()
;~ MsgBox(0,"Clientname", @UserName & @CRLF & "COMPUTERNAME: " & @ComputerName & @CRLF & " RDP-Client: " & $s_clientname & " - " & $s_ip)

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,79 @@
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=thunderbird.ico
#AutoIt3Wrapper_Outfile=ThunderbirdMultiUserStarter.exe
#AutoIt3Wrapper_Outfile_x64=D:\Dropbox\Thunderbird Portable\ThunderbirdPortable.exe
#AutoIt3Wrapper_Res_Description=2013 Bernhard Linz / Bernhard@znil.de / http://znil.net
#AutoIt3Wrapper_Res_Fileversion=1.0.0.13
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Res_LegalCopyright=znil.net
#AutoIt3Wrapper_AU3Check_Stop_OnWarning=y
#AutoIt3Wrapper_Run_Tidy=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#Region
; **** Directives created by AutoIt3Wrapper_GUI ****
#EndRegion
; **** Directives created by AutoIt3Wrapper_GUI ****
; ThunderbirdMultiuserStarter
; 2013 von Bernhard Linz
; http://znil.net
; Bernhard@znil.net 
Dim Const $s_LockFileName = "ThunderbirdLockFile.txt"
Dim Const $s_ThunderbirdProgramName = "ThunderbirdPortable.exe"
Dim Const $s_ThunderbirdMainProgramName = "Thunderbird.exe"
Dim $h_lockfile
Dim $h_Thunderbird
Dim $b_RunThunderbird = False
Dim $a_gelockt_von
If FileExists($s_LockFileName) = 1 Then
$h_lockfile = FileOpen($s_LockFileName, 0)
$a_gelockt_von = StringSplit(FileReadLine($s_LockFileName), ":", 0)
FileClose($h_lockfile)
; $a_gelockt_von[1] = Benutzername
; $a_gelockt_von[2] = Computername
; $a_gelockt_von[3] = Stunde
; $a_gelockt_von[4] = Minute
; $a_gelockt_von[5] = Tag
; $a_gelockt_von[6] = Monat
; $a_gelockt_von[7] = Jahr
If $a_gelockt_von[0] = 7 Then
MsgBox(262160, "Thunderbird blockiert", "Der Benutzer '" & $a_gelockt_von[1] & "' am Computer '" & $a_gelockt_von[2] & "'" & @CRLF & _
"hat bereits um " & $a_gelockt_von[3] & ":" & $a_gelockt_von[4] & " Uhr am " & $a_gelockt_von[5] & "." & $a_gelockt_von[6] & "." & $a_gelockt_von[7] & @CRLF & _
"Thunderbird gestartet und nimmt eventuell Änderungen vor." & @CRLF & @CRLF & _
"Programmaufruf ist blockiert!")
EndIf
$b_RunThunderbird = False
Else
$h_lockfile = FileOpen($s_LockFileName, 2)
FileWriteLine($h_lockfile, @UserName & ":" & @ComputerName & ":" & @HOUR & ":" & @MIN & ":" & @MDAY & ":" & @MON & ":" & @YEAR & @CRLF)
FileClose($h_lockfile)
$b_RunThunderbird = True
EndIf
; 
If $b_RunThunderbird = False Then
Exit 1
EndIf
; 
$h_Thunderbird = Run(@ScriptDir & "\" & $s_ThunderbirdProgramName, @ScriptDir, @SW_MAXIMIZE)
If $h_Thunderbird = 0 Then
FileDelete($s_LockFileName)
MsgBox(16, "Fehler", "Konnte '" & @ScriptDir & "\" & $s_ThunderbirdProgramName & "' nicht starten")
Exit 1
EndIf
; 
Do
Sleep(3000)
If (ProcessExists($h_Thunderbird) = 0) And (ProcessExists($s_ThunderbirdMainProgramName) = 0) Then
$b_RunThunderbird = False
EndIf
Until $b_RunThunderbird = False
;
FileDelete($s_LockFileName)
Sleep(3000)
; 
If FileExists($s_LockFileName) = 1 Then
MsgBox(16, "Warnung", "Konnte das Thunderbird-Lock-File nicht löschen:" & @CRLF & @ScriptDir & "\" & $s_ThunderbirdProgramName)
Exit 1
Else
Exit 0
EndIf

View File

@ -0,0 +1,82 @@
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=CalibeIcon.ico
#AutoIt3Wrapper_Res_Description=2013 Bernhard Linz / Bernhard@znil.de / http://znil.net
#AutoIt3Wrapper_Res_Fileversion=1.0.0.3
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Res_LegalCopyright=znil.net
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
; CalibeMultiuserStarter
; 2013 von Bernhard Linz
; http://znil.net
; Bernhard@znil.net
Dim Const $s_LockFileName = "CalibreLockFile.txt"
Dim Const $s_CalibreProgramName = "calibre-portable.exe"
Dim Const $s_CalibreMainProgramName = "calibre.exe"
Dim $h_lockfile
Dim $h_Calibre
Dim $b_RunCalibe = False
Dim $a_gelockt_von
If FileExists($s_LockFileName) = 1 Then
$h_lockfile = FileOpen($s_LockFileName,0)
$a_gelockt_von = StringSplit(FileReadLine($s_LockFileName), ":", 0)
FileClose($h_lockfile)
; $a_gelockt_von[1] = Benutzername
; $a_gelockt_von[2] = Computername
; $a_gelockt_von[3] = Stunde
; $a_gelockt_von[4] = Minute
; $a_gelockt_von[5] = Tag
; $a_gelockt_von[6] = Monat
; $a_gelockt_von[7] = Jahr
If $a_gelockt_von[0] = 7 Then
MsgBox(262160, "Calibre blockiert", "Der Benutzer '" & $a_gelockt_von[1] & "' am Computer '" & $a_gelockt_von[2] & "'" & @CRLF & _
"hat bereits um " & $a_gelockt_von[3] & ":" & $a_gelockt_von[4] & " Uhr am " & $a_gelockt_von[5] & "." & $a_gelockt_von[6] & "." & $a_gelockt_von[7] & @CRLF & _
"Calibre gestartet und nimmt eventuell Änderungen vor." & @CRLF & @CRLF & _
"Programmaufruf ist blockiert!")
EndIf
$b_RunCalibe = False
Else
$h_lockfile = FileOpen($s_LockFileName,2)
FileWriteLine($h_lockfile, @UserName & ":" & @ComputerName & ":" & @HOUR & ":" & @MIN & ":" & @MDAY & ":" & @MON & ":" & @YEAR & @CRLF)
FileClose($h_lockfile)
$b_RunCalibe = True
EndIf
If $b_RunCalibe = False Then
Exit 1
EndIf
$h_Calibre = Run(@ScriptDir & "\" & $s_CalibreProgramName, @ScriptDir, @SW_MAXIMIZE)
If $h_Calibre = 0 Then
FileDelete($s_LockFileName)
MsgBox(16, "Fehler", "Konnte '" & @ScriptDir & "\" & $s_CalibreProgramName & "' nicht starten")
Exit 1
EndIf
Do
Sleep(3000)
ConsoleWrite($h_Calibre & @CRLF)
If (ProcessExists($h_Calibre) = 0) And (ProcessExists($s_CalibreMainProgramName) = 0) Then
$b_RunCalibe = False
EndIf
Until $b_RunCalibe = False
FileDelete($s_LockFileName)
Sleep (1000)
If FileExists($s_LockFileName) = 1 Then
MsgBox(16,"Warnung", "Konnte das Calibre-Lock-File nicht löschen:" & @CRLF & @ScriptDir & "\" & $s_CalibreProgramName)
Exit 1
Else
Exit 0
EndIf

View File

@ -0,0 +1,77 @@
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=CalibeIcon.ico
#AutoIt3Wrapper_Res_Description=2013 Bernhard Linz / Bernhard@znil.de / http://znil.net
#AutoIt3Wrapper_Res_Fileversion=1.0.0.3
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Res_LegalCopyright=znil.net
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Dim Const $s_LockFileName = "CalibreLockFile.txt"
Dim Const $s_CalibreProgramName = "calibre-portable.exe"
Dim Const $s_CalibreMainProgramName = "calibre.exe"
Dim $h_lockfile
Dim $h_Calibre
Dim $b_RunCalibe = False
Dim $a_gelockt_von
If FileExists($s_LockFileName) = 1 Then
$h_lockfile = FileOpen($s_LockFileName,0)
$a_gelockt_von = StringSplit(FileReadLine($s_LockFileName), ":", 0)
FileClose($h_lockfile)
; $a_gelockt_von[1] = Benutzername
; $a_gelockt_von[2] = Computername
; $a_gelockt_von[3] = Stunde
; $a_gelockt_von[4] = Minute
; $a_gelockt_von[5] = Tag
; $a_gelockt_von[6] = Monat
; $a_gelockt_von[7] = Jahr
If $a_gelockt_von[0] = 7 Then
MsgBox(262160, "Calibre blockiert", "Der Benutzer '" & $a_gelockt_von[1] & "' am Computer '" & $a_gelockt_von[2] & "'" & @CRLF & _
"hat bereits um " & $a_gelockt_von[3] & ":" & $a_gelockt_von[4] & " Uhr am " & $a_gelockt_von[5] & "." & $a_gelockt_von[6] & "." & $a_gelockt_von[7] & @CRLF & _
"Calibre gestartet und nimmt eventuell Änderungen vor." & @CRLF & @CRLF & _
"Programmaufruf ist blockiert!")
EndIf
$b_RunCalibe = False
Else
$h_lockfile = FileOpen($s_LockFileName,2)
FileWriteLine($h_lockfile, @UserName & ":" & @ComputerName & ":" & @HOUR & ":" & @MIN & ":" & @MDAY & ":" & @MON & ":" & @YEAR & @CRLF)
FileClose($h_lockfile)
$b_RunCalibe = True
EndIf
If $b_RunCalibe = False Then
Exit 1
EndIf
$h_Calibre = Run(@ScriptDir & "\" & $s_CalibreProgramName, @ScriptDir, @SW_MAXIMIZE)
If $h_Calibre = 0 Then
FileDelete($s_LockFileName)
MsgBox(16, "Fehler", "Konnte '" & @ScriptDir & "\" & $s_CalibreProgramName & "' nicht starten")
Exit 1
EndIf
Do
Sleep(3000)
ConsoleWrite($h_Calibre & @CRLF)
If (ProcessExists($h_Calibre) = 0) And (ProcessExists($s_CalibreMainProgramName) = 0) Then
$b_RunCalibe = False
EndIf
Until $b_RunCalibe = False
FileDelete($s_LockFileName)
Sleep (1000)
If FileExists($s_LockFileName) = 1 Then
MsgBox(16,"Warnung", "Konnte das Calibre-Lock-File nicht löschen:" & @CRLF & @ScriptDir & "\" & $s_CalibreProgramName)
Exit 1
Else
Exit 0
EndIf

View File

@ -0,0 +1,76 @@
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=CalibeIcon.ico
#AutoIt3Wrapper_Res_Description=2013 Bernhard Linz / Bernhard@znil.de / http://znil.net
#AutoIt3Wrapper_Res_Fileversion=1.0.0.2
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Res_LegalCopyright=znil.net
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Dim Const $s_LockFileName = "CalibreLockFile.txt"
Dim Const $s_CalibeProgramName = "calibre-portable.exe"
Dim $h_lockfile
Dim $h_Calibre
Dim $b_RunCalibe = False
Dim $a_gelockt_von
If FileExists($s_LockFileName) = 1 Then
$h_lockfile = FileOpen($s_LockFileName,0)
$a_gelockt_von = StringSplit(FileReadLine($s_LockFileName), ":", 0)
FileClose($h_lockfile)
; $a_gelockt_von[1] = Benutzername
; $a_gelockt_von[2] = Computername
; $a_gelockt_von[3] = Stunde
; $a_gelockt_von[4] = Minute
; $a_gelockt_von[5] = Tag
; $a_gelockt_von[6] = Monat
; $a_gelockt_von[7] = Jahr
If $a_gelockt_von[0] = 7 Then
MsgBox(262160, "Calibre blockiert", "Der Benutzer '" & $a_gelockt_von[1] & "' am Computer '" & $a_gelockt_von[2] & "'" & @CRLF & _
"hat bereits um " & $a_gelockt_von[3] & ":" & $a_gelockt_von[4] & " Uhr am " & $a_gelockt_von[5] & "." & $a_gelockt_von[6] & "." & $a_gelockt_von[7] & @CRLF & _
"Calibre gestartet und nimmt eventuell Änderungen vor." & @CRLF & @CRLF & _
"Programmaufruf ist blockiert!")
EndIf
$b_RunCalibe = False
Else
$h_lockfile = FileOpen($s_LockFileName,2)
FileWriteLine($h_lockfile, @UserName & ":" & @ComputerName & ":" & @HOUR & ":" & @MIN & ":" & @MDAY & ":" & @MON & ":" & @YEAR & @CRLF)
FileClose($h_lockfile)
$b_RunCalibe = True
EndIf
If $b_RunCalibe = False Then
Exit 1
EndIf
$h_Calibre = Run(@ScriptDir & "\" & $s_CalibeProgramName, @ScriptDir, @SW_MAXIMIZE)
If $h_Calibre = 0 Then
FileDelete($s_LockFileName)
MsgBox(16, "Fehler", "Konnte '" & @ScriptDir & "\" & $s_CalibeProgramName & "' nicht starten")
Exit 1
EndIf
Do
Sleep(3000)
ConsoleWrite($h_Calibre & @CRLF)
If ProcessExists($h_Calibre) = 0 Then
$b_RunCalibe = False
EndIf
Until $b_RunCalibe = False
FileDelete($s_LockFileName)
Sleep (1000)
If FileExists($s_LockFileName) = 1 Then
MsgBox(16,"Warnung", "Konnte das Calibre-Lock-File nicht löschen:" & @CRLF & @ScriptDir & "\" & $s_CalibeProgramName)
Exit 1
Else
Exit 0
EndIf

View File

@ -0,0 +1,76 @@
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=CalibeIcon.ico
#AutoIt3Wrapper_Res_Description=2013 Bernhard Linz / Bernhard@znil.de / http://znil.net
#AutoIt3Wrapper_Res_Fileversion=1.0.0.1
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Res_LegalCopyright=znil.net
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Dim Const $s_LockFileName = "CalibreLockFile.txt"
Dim Const $s_CalibeProgramName = "calibre-portable.exe"
Dim $h_lockfile
Dim $h_Calibre
Dim $b_RunCalibe = False
Dim $a_gelockt_von
If FileExists($s_LockFileName) = 1 Then
$h_lockfile = FileOpen($s_LockFileName,0)
$a_gelockt_von = StringSplit(FileReadLine($s_LockFileName), ":", 0)
FileClose($h_lockfile)
; $a_gelockt_von[1] = Benutzername
; $a_gelockt_von[2] = Computername
; $a_gelockt_von[3] = Stunde
; $a_gelockt_von[4] = Minute
; $a_gelockt_von[5] = Tag
; $a_gelockt_von[6] = Monat
; $a_gelockt_von[7] = Jahr
If $a_gelockt_von[0] = 7 Then
MsgBox(262160, "Calibre blockiert", "Der Benutzer '" & $a_gelockt_von[1] & "' am Computer '" & $a_gelockt_von[2] & "'" & @CRLF & _
"hat bereits um " & $a_gelockt_von[3] & ":" & $a_gelockt_von[4] & " Uhr am " & $a_gelockt_von[5] & "." & $a_gelockt_von[6] & "." & $a_gelockt_von[7] & @CRLF & _
"Calibre gestartet und nimmt eventuell Änderungen vor." & @CRLF & @CRLF & _
"Programmaufruf ist blockiert!")
EndIf
$b_RunCalibe = False
Else
$h_lockfile = FileOpen($s_LockFileName,2)
FileWriteLine($h_lockfile, @UserName & ":" & @ComputerName & ":" & @HOUR & ":" & @MIN & ":" & @MDAY & ":" & @MON & ":" & @YEAR & @CRLF)
FileClose($h_lockfile)
$b_RunCalibe = True
EndIf
If $b_RunCalibe = False Then
Exit 1
EndIf
$h_Calibre = Run(@ScriptDir & "\" & $s_CalibeProgramName, @ScriptDir, @SW_MAXIMIZE)
If $h_Calibre = 0 Then
FileDelete($s_LockFileName)
MsgBox(16, "Fehler", "Konnte '" & @ScriptDir & "\" & $s_CalibeProgramName & "' nicht starten")
Exit 1
EndIf
Do
Sleep(3000)
ConsoleWrite($h_Calibre & @CRLF)
If ProcessExists($h_Calibre) = 0 Then
$b_RunCalibe = False
EndIf
Until $b_RunCalibe = False
FileDelete($s_LockFileName)
Sleep (1000)
If FileExists($s_LockFileName) = 1 Then
MsgBox(16,"Warnung", "Konnte das Calibre-Lock-File nicht löschen:" & @CRLF & @ScriptDir & "\" & $s_CalibeProgramName)
Exit 1
Else
Exit 0
EndIf

View File

@ -0,0 +1,76 @@
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=CalibeIcon.ico
#AutoIt3Wrapper_Res_Description=2013 Bernhard Linz / Bernhard@znil.de / http://znil.net
#AutoIt3Wrapper_Res_Fileversion=1.0.0.1
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Res_LegalCopyright=znil.net
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Dim Const $s_LockFileName = "CalibreLockFile.txt"
Dim Const $s_CalibeProgramName = "calibre-portable.exe"
Dim $h_lockfile
Dim $h_Calibre
Dim $b_RunCalibe = False
Dim $a_gelockt_von
If FileExists($s_LockFileName) = 1 Then
$h_lockfile = FileOpen($s_LockFileName,0)
$a_gelockt_von = StringSplit(FileReadLine($s_LockFileName), ":", 0)
FileClose($h_lockfile)
; $a_gelockt_von[1] = Benutzername
; $a_gelockt_von[2] = Computername
; $a_gelockt_von[3] = Stunde
; $a_gelockt_von[4] = Minute
; $a_gelockt_von[5] = Tag
; $a_gelockt_von[6] = Monat
; $a_gelockt_von[7] = Jahr
If $a_gelockt_von[0] = 7 Then
MsgBox(262160, "Calibre blockiert", "Der Benutzer '" & $a_gelockt_von[1] & "' am Computer '" & $a_gelockt_von[2] & "'" & @CRLF & _
"hat bereits um " & $a_gelockt_von[3] & ":" & $a_gelockt_von[4] & " Uhr am " & $a_gelockt_von[5] & "." & $a_gelockt_von[6] & "." & $a_gelockt_von[7] & @CRLF & _
"Calibre gestartet und nimmt eventuell Änderungen vor." & @CRLF & @CRLF & _
"Programmaufruf ist blockiert!")
EndIf
$b_RunCalibe = False
Else
$h_lockfile = FileOpen($s_LockFileName,2)
FileWriteLine($h_lockfile, @UserName & ":" & @ComputerName & ":" & @HOUR & ":" & @MIN & ":" & @MDAY & ":" & @MON & ":" & @YEAR & @CRLF)
FileClose($h_lockfile)
$b_RunCalibe = True
EndIf
If $b_RunCalibe = False Then
Exit 1
EndIf
$h_Calibre = Run(@ScriptDir & "\" $s_CalibeProgramName, @ScriptDir, @SW_MAXIMIZE)
If $h_Calibre = 0 Then
FileDelete($s_LockFileName)
MsgBox(16, "Fehler", "Konnte '" & @ScriptDir & "\" & $s_CalibeProgramName & "' nicht starten")
Exit 1
EndIf
Do
Sleep(3000)
ConsoleWrite($h_Calibre & @CRLF)
If ProcessExists($h_Calibre) = 0 Then
$b_RunCalibe = False
EndIf
Until $b_RunCalibe = False
FileDelete($s_LockFileName)
Sleep (1000)
If FileExists($s_LockFileName) = 1 Then
MsgBox(16,"Warnung", "Konnte das Calibre-Lock-File nicht löschen:" & @CRLF & @ScriptDir & "\" & $s_CalibeProgramName)
Exit 1
Else
Exit 0
EndIf

View File

@ -0,0 +1,71 @@
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=CalibeIcon.ico
#AutoIt3Wrapper_Res_Description=2013 Bernhard Linz / Bernhard@znil.de / http://znil.net
#AutoIt3Wrapper_Res_Fileversion=1.0.0.1
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Res_LegalCopyright=znil.net
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Dim Const $s_LockFileName = "CalibeLockFile.txt"
Dim Const $s_CalibeProgramName = "calibre-portable.exe"
Dim $h_lockfile
Dim $h_Calibre
Dim $b_RunCalibe = False
Dim $a_gelockt_von
If FileExists($s_LockFileName) = 1 Then
$h_lockfile = FileOpen($s_LockFileName,0)
$a_gelockt_von = StringSplit(FileReadLine($s_LockFileName), ":", 0)
FileClose($h_lockfile)
; $a_gelockt_von[1] = Benutzername
; $a_gelockt_von[2] = Computername
; $a_gelockt_von[3] = Stunde
; $a_gelockt_von[4] = Minute
; $a_gelockt_von[5] = Tag
; $a_gelockt_von[6] = Monat
; $a_gelockt_von[7] = Jahr
If $a_gelockt_von[0] = 7 Then
MsgBox(262160, "Calibre blockiert", "Der Benutzer '" & $a_gelockt_von[1] & "' am Computer '" & $a_gelockt_von[2] & "'" & @CRLF & _
"hat bereits um " & $a_gelockt_von[3] & ":" & $a_gelockt_von[4] & " Uhr am " & $a_gelockt_von[5] & "." & $a_gelockt_von[6] & "." & $a_gelockt_von[7] & @CRLF & _
"Calibre gestartet und nimmt eventuell Änderungen vor." & @CRLF & @CRLF & _
"Programmaufruf ist blockiert!")
EndIf
$b_RunCalibe = False
Else
$h_lockfile = FileOpen($s_LockFileName,2)
FileWriteLine($h_lockfile, @UserName & ":" & @ComputerName & ":" & @HOUR & ":" & @MIN & ":" & @MDAY & ":" & @MON & ":" & @YEAR & @CRLF)
FileClose($h_lockfile)
$b_RunCalibe = True
EndIf
If $b_RunCalibe = False Then
Exit 1
EndIf
$h_Calibre = Run($s_CalibeProgramName, @ScriptDir, @SW_MAXIMIZE)
If $h_Calibre = 0 Then
FileDelete($s_LockFileName)
Exit 1
EndIf
Do
Sleep(3000)
Until ProcessExists($s_CalibeProgramName) = 0
FileDelete($s_LockFileName)
Sleep (1000)
If FileExists($s_LockFileName) = 1 Then
MsgBox(16,"Warnung", "Konnte das Calibre-Lock-File nicht löschen:" & @CRLF & @ScriptDir & "\" & $s_CalibeProgramName)
Exit 1
Else
Exit 0
EndIf

View File

@ -0,0 +1,64 @@
#NoTrayIcon
Dim Const $s_LockFileName = "CalibeLockFile.txt"
Dim Const $s_CalibeProgramName = "calibre-portable.exe"
Dim $h_lockfile
Dim $h_Calibre
Dim $b_RunCalibe = False
Dim $a_gelockt_von
If FileExists($s_LockFileName) = 1 Then
$h_lockfile = FileOpen($s_LockFileName,0)
$a_gelockt_von = StringSplit(FileReadLine($s_LockFileName), ":", 0)
FileClose($h_lockfile)
; $a_gelockt_von[1] = Benutzername
; $a_gelockt_von[2] = Computername
; $a_gelockt_von[3] = Stunde
; $a_gelockt_von[4] = Minute
; $a_gelockt_von[5] = Tag
; $a_gelockt_von[6] = Monat
; $a_gelockt_von[7] = Jahr
If $a_gelockt_von[0] = 7 Then
MsgBox(262160, "Calibre blockiert", "Der Benutzer '" & $a_gelockt_von[1] & "' am Computer '" & $a_gelockt_von[2] & @CRLF & _
"hat bereits um " & $a_gelockt_von[3] & ":" & $a_gelockt_von[4] & " Uhr am " & $a_gelockt_von[5] & "." & $a_gelockt_von[6] & "." & $a_gelockt_von[7] & @CRLF & _
"Calibre gestartet und nimmt eventuell Änderungen vor." & @CRLF & @CRLF & _
"Programmaufruf ist blockiert!")
EndIf
$b_RunCalibe = False
Else
$h_lockfile = FileOpen($s_LockFileName,2)
FileWriteLine($h_lockfile, @UserName & ":" & @ComputerName & ":" & @HOUR & ":" & @MIN & ":" & @MDAY & ":" & @MON & ":" & @YEAR & @CRLF)
FileClose($h_lockfile)
$b_RunCalibe = True
EndIf
If $b_RunCalibe = False Then
Exit 1
EndIf
$h_Calibre = Run($s_CalibeProgramName, @ScriptDir, @SW_MAXIMIZE)
If $h_Calibre = 0 Then
FileDelete($s_LockFileName)
Exit 1
EndIf
Do
Sleep(3000)
Until ProcessExists($s_CalibeProgramName) = 0
FileDelete($s_LockFileName)
Sleep (1000)
If FileExists($s_LockFileName) = 1 Then
MsgBox(16,"Warnung", "Konnte das Calibre-Lock-File nicht löschen:" & @CRLF & @ScriptDir & "\" & $s_CalibeProgramName)
Exit 1
Else
Exit 0
EndIf

View File

Binary file not shown.

View File

@ -0,0 +1,115 @@
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=CalibeIcon.ico
#AutoIt3Wrapper_Res_Description=2013 Bernhard Linz / Bernhard@znil.de / http://znil.net
#AutoIt3Wrapper_Res_Fileversion=1.0.0.8
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Res_LegalCopyright=znil.net
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Dim Const $s_LockFileName = "CalibreLockFile.txt"
Dim Const $s_CalibreProgramName = "calibre-portable.exe"
Dim Const $s_CalibreMainProgramName = "calibre.exe"
Dim $h_lockfile
Dim $h_Calibre
Dim $b_RunCalibe = False
Dim $a_gelockt_von
Dim $h_DllErgebnis
Dim $s_clientname
Dim $s_ip
Dim $a_DezimalIP[5]
If FileExists($s_LockFileName) = 1 Then
$h_lockfile = FileOpen($s_LockFileName,0)
$a_gelockt_von = StringSplit(FileReadLine($s_LockFileName), ":", 0)
FileClose($h_lockfile)
; $a_gelockt_von[1] = Benutzername
; $a_gelockt_von[2] = Computername
; $a_gelockt_von[3] = Stunde
; $a_gelockt_von[4] = Minute
; $a_gelockt_von[5] = Tag
; $a_gelockt_von[6] = Monat
; $a_gelockt_von[7] = Jahr
If $a_gelockt_von[0] = 7 Then
MsgBox(262160, "Calibre blockiert", "Der Benutzer '" & $a_gelockt_von[1] & "' am Computer '" & $a_gelockt_von[2] & "'" & @CRLF & _
"hat bereits um " & $a_gelockt_von[3] & ":" & $a_gelockt_von[4] & " Uhr am " & $a_gelockt_von[5] & "." & $a_gelockt_von[6] & "." & $a_gelockt_von[7] & @CRLF & _
"Calibre gestartet und nimmt eventuell Änderungen vor." & @CRLF & @CRLF & _
"Programmaufruf ist blockiert!")
EndIf
$b_RunCalibe = False
Else
$h_lockfile = FileOpen($s_LockFileName,2)
FileWriteLine($h_lockfile, @UserName & ":" & @ComputerName & ":" & @HOUR & ":" & @MIN & ":" & @MDAY & ":" & @MON & ":" & @YEAR & @CRLF)
FileClose($h_lockfile)
$b_RunCalibe = True
; Dinge aus RDP-Session herausfinden
$h_DllErgebnis = DllCall("Wtsapi32.dll","BOOL","WTSQuerySessionInformationW","int",0, "int", -1, "int", 10, "ptr*", 0, "DWORD*",0)
If @error Or $h_DllErgebnis[0] = 0 Then
$s_clientname = "unknown"
Else
$s_clientname = BinaryToString( DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1) ,2)
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
EndIf
$h_DllErgebnis = DllCall("Wtsapi32.dll","int", "WTSQuerySessionInformationW", "Ptr", 0, "int", -1, "int", 14, "ptr*", 0, "DWORD*", 0)
If @error Or $h_DllErgebnis[0] = 0 Then
$s_ip = "unknown"
Else
$s_ip = DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1)
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
$s_ip = StringTrimLeft($s_ip,14)
$a_DezimalIP[1] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[2] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[3] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[4] = Dec(StringLeft($s_ip,2))
$s_ip = $a_DezimalIP[1] & "." & $a_DezimalIP[2] & "." & $a_DezimalIP[3] & "." & $a_DezimalIP[4]
EndIf
; Und Logfile-Schreiben
If $s_clientname = "" Then
$s_clientname = "Keine RDP Sitzung!"
$s_ip = ""
EndIf
FileWriteLine(@ScriptDir & "\MultiuserLOG.txt", @YEAR & "-" & @MON & "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " - LOGIN => USERNAME: " & @UserName & _
" COMPUTERNAME: " & @ComputerName & " RDP-Client: " & $s_clientname & " - " & $s_ip)
EndIf
If $b_RunCalibe = False Then
Exit 1
EndIf
$h_Calibre = Run(@ScriptDir & "\" & $s_CalibreProgramName, @ScriptDir, @SW_MAXIMIZE)
If $h_Calibre = 0 Then
FileDelete($s_LockFileName)
MsgBox(16, "Fehler", "Konnte '" & @ScriptDir & "\" & $s_CalibreProgramName & "' nicht starten")
Exit 1
EndIf
Do
Sleep(3000)
;ConsoleWrite($h_Calibre & @CRLF)
If (ProcessExists($h_Calibre) = 0) And (ProcessExists($s_CalibreMainProgramName) = 0) Then
$b_RunCalibe = False
EndIf
Until $b_RunCalibe = False
FileDelete($s_LockFileName)
FileWriteLine("MultiuserLOG.txt", @YEAR & "-" & @MON & "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " - LOGOUT => USERNAME: " & @UserName & _
" COMPUTERNAME: " & @ComputerName & " RDP-Client: " & $s_clientname & " - " & $s_ip)
Sleep (2000)
If FileExists($s_LockFileName) = 1 Then
MsgBox(16,"Warnung", "Konnte das Calibre-Lock-File nicht löschen:" & @CRLF & @ScriptDir & "\" & $s_CalibreProgramName)
Exit 1
Else
Exit 0
EndIf

View File

@ -0,0 +1,116 @@
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=CalibeIcon.ico
#AutoIt3Wrapper_UseX64=y
#AutoIt3Wrapper_Res_Description=2013 Bernhard Linz / Bernhard@znil.de / http://znil.net
#AutoIt3Wrapper_Res_Fileversion=1.0.0.7
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Res_LegalCopyright=znil.net
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Dim Const $s_LockFileName = "CalibreLockFile.txt"
Dim Const $s_CalibreProgramName = "calibre-portable.exe"
Dim Const $s_CalibreMainProgramName = "calibre.exe"
Dim $h_lockfile
Dim $h_Calibre
Dim $b_RunCalibe = False
Dim $a_gelockt_von
Dim $h_DllErgebnis
Dim $s_clientname
Dim $s_ip
Dim $a_DezimalIP[5]
If FileExists($s_LockFileName) = 1 Then
$h_lockfile = FileOpen($s_LockFileName,0)
$a_gelockt_von = StringSplit(FileReadLine($s_LockFileName), ":", 0)
FileClose($h_lockfile)
; $a_gelockt_von[1] = Benutzername
; $a_gelockt_von[2] = Computername
; $a_gelockt_von[3] = Stunde
; $a_gelockt_von[4] = Minute
; $a_gelockt_von[5] = Tag
; $a_gelockt_von[6] = Monat
; $a_gelockt_von[7] = Jahr
If $a_gelockt_von[0] = 7 Then
MsgBox(262160, "Calibre blockiert", "Der Benutzer '" & $a_gelockt_von[1] & "' am Computer '" & $a_gelockt_von[2] & "'" & @CRLF & _
"hat bereits um " & $a_gelockt_von[3] & ":" & $a_gelockt_von[4] & " Uhr am " & $a_gelockt_von[5] & "." & $a_gelockt_von[6] & "." & $a_gelockt_von[7] & @CRLF & _
"Calibre gestartet und nimmt eventuell Änderungen vor." & @CRLF & @CRLF & _
"Programmaufruf ist blockiert!")
EndIf
$b_RunCalibe = False
Else
$h_lockfile = FileOpen($s_LockFileName,2)
FileWriteLine($h_lockfile, @UserName & ":" & @ComputerName & ":" & @HOUR & ":" & @MIN & ":" & @MDAY & ":" & @MON & ":" & @YEAR & @CRLF)
FileClose($h_lockfile)
$b_RunCalibe = True
; Dinge aus RDP-Session herausfinden
$h_DllErgebnis = DllCall("Wtsapi32.dll","BOOL","WTSQuerySessionInformationW","int",0, "int", -1, "int", 10, "ptr*", 0, "DWORD*",0)
If @error Or $h_DllErgebnis[0] = 0 Then
$s_clientname = "unknown"
Else
$s_clientname = BinaryToString( DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1) ,2)
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
EndIf
$h_DllErgebnis = DllCall("Wtsapi32.dll","int", "WTSQuerySessionInformationW", "Ptr", 0, "int", -1, "int", 14, "ptr*", 0, "DWORD*", 0)
If @error Or $h_DllErgebnis[0] = 0 Then
$s_ip = "unknown"
Else
$s_ip = DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1)
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
$s_ip = StringTrimLeft($s_ip,14)
$a_DezimalIP[1] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[2] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[3] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[4] = Dec(StringLeft($s_ip,2))
$s_ip = $a_DezimalIP[1] & "." & $a_DezimalIP[2] & "." & $a_DezimalIP[3] & "." & $a_DezimalIP[4]
EndIf
; Und Logfile-Schreiben
If $s_clientname = "" Then
$s_clientname = "Keine RDP Sitzung!"
$s_ip = ""
EndIf
FileWriteLine("MultiuserLOG.txt", @YEAR & "-" & @MON & "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " - LOGIN => USERNAME: " & @UserName & _
" COMPUTERNAME: " & @ComputerName & " RDP-Client: " & $s_clientname & " - " & $s_ip)
EndIf
If $b_RunCalibe = False Then
Exit 1
EndIf
$h_Calibre = Run(@ScriptDir & "\" & $s_CalibreProgramName, @ScriptDir, @SW_MAXIMIZE)
If $h_Calibre = 0 Then
FileDelete($s_LockFileName)
MsgBox(16, "Fehler", "Konnte '" & @ScriptDir & "\" & $s_CalibreProgramName & "' nicht starten")
Exit 1
EndIf
Do
Sleep(3000)
ConsoleWrite($h_Calibre & @CRLF)
If (ProcessExists($h_Calibre) = 0) And (ProcessExists($s_CalibreMainProgramName) = 0) Then
$b_RunCalibe = False
EndIf
Until $b_RunCalibe = False
FileDelete($s_LockFileName)
FileWriteLine("MultiuserLOG.txt", @YEAR & "-" & @MON & "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " - LOGOUT => USERNAME: " & @UserName & _
" COMPUTERNAME: " & @ComputerName & " RDP-Client: " & $s_clientname & " - " & $s_ip)
Sleep (2000)
If FileExists($s_LockFileName) = 1 Then
MsgBox(16,"Warnung", "Konnte das Calibre-Lock-File nicht löschen:" & @CRLF & @ScriptDir & "\" & $s_CalibreProgramName)
Exit 1
Else
Exit 0
EndIf

View File

@ -0,0 +1,110 @@
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=CalibeIcon.ico
#AutoIt3Wrapper_Res_Description=2013 Bernhard Linz / Bernhard@znil.de / http://znil.net
#AutoIt3Wrapper_Res_Fileversion=1.0.0.4
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Res_LegalCopyright=znil.net
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Dim Const $s_LockFileName = "CalibreLockFile.txt"
Dim Const $s_CalibreProgramName = "calibre-portable.exe"
Dim Const $s_CalibreMainProgramName = "calibre.exe"
Dim $h_lockfile
Dim $h_Calibre
Dim $b_RunCalibe = False
Dim $a_gelockt_von
Dim $h_DllErgebnis
Dim $s_clientname
Dim $s_ip
Dim $a_DezimalIP[5]
If FileExists($s_LockFileName) = 1 Then
$h_lockfile = FileOpen($s_LockFileName,0)
$a_gelockt_von = StringSplit(FileReadLine($s_LockFileName), ":", 0)
FileClose($h_lockfile)
; $a_gelockt_von[1] = Benutzername
; $a_gelockt_von[2] = Computername
; $a_gelockt_von[3] = Stunde
; $a_gelockt_von[4] = Minute
; $a_gelockt_von[5] = Tag
; $a_gelockt_von[6] = Monat
; $a_gelockt_von[7] = Jahr
If $a_gelockt_von[0] = 7 Then
MsgBox(262160, "Calibre blockiert", "Der Benutzer '" & $a_gelockt_von[1] & "' am Computer '" & $a_gelockt_von[2] & "'" & @CRLF & _
"hat bereits um " & $a_gelockt_von[3] & ":" & $a_gelockt_von[4] & " Uhr am " & $a_gelockt_von[5] & "." & $a_gelockt_von[6] & "." & $a_gelockt_von[7] & @CRLF & _
"Calibre gestartet und nimmt eventuell Änderungen vor." & @CRLF & @CRLF & _
"Programmaufruf ist blockiert!")
EndIf
$b_RunCalibe = False
Else
$h_lockfile = FileOpen($s_LockFileName,2)
FileWriteLine($h_lockfile, @UserName & ":" & @ComputerName & ":" & @HOUR & ":" & @MIN & ":" & @MDAY & ":" & @MON & ":" & @YEAR & @CRLF)
FileClose($h_lockfile)
$b_RunCalibe = True
; Dinge aus RDP-Session herausfinden
$h_DllErgebnis = DllCall("Wtsapi32.dll","BOOL","WTSQuerySessionInformationW","int",0, "int", -1, "int", 10, "ptr*", 0, "DWORD*",0)
If @error Or $h_DllErgebnis[0] = 0 Then
$s_clientname = "unknown"
Else
$s_clientname = BinaryToString( DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1) ,2)
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
EndIf
$h_DllErgebnis = DllCall("Wtsapi32.dll","int", "WTSQuerySessionInformationW", "Ptr", 0, "int", -1, "int", 14, "ptr*", 0, "DWORD*", 0)
If @error Or $h_DllErgebnis[0] = 0 Then
$s_ip = "unknown"
Else
$s_ip = DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1)
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
$s_ip = StringTrimLeft($s_ip,14)
$a_DezimalIP[1] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[2] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[3] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[4] = Dec(StringLeft($s_ip,2))
$s_ip = $a_DezimalIP[1] & "." & $a_DezimalIP[2] & "." & $a_DezimalIP[3] & "." & $a_DezimalIP[4]
EndIf
; Und Logfile-Schreiben
FileWriteLine("MultiuserLOG.txt", @YEAR & "-" & @MON & "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " - LOGIN => USERNAME: " & @UserName & _
" COMPUTERNAME: " & @ComputerName & " RDP-Client: " & $s_clientname & " - " & $s_ip)
EndIf
If $b_RunCalibe = False Then
Exit 1
EndIf
$h_Calibre = Run(@ScriptDir & "\" & $s_CalibreProgramName, @ScriptDir, @SW_MAXIMIZE)
If $h_Calibre = 0 Then
FileDelete($s_LockFileName)
MsgBox(16, "Fehler", "Konnte '" & @ScriptDir & "\" & $s_CalibreProgramName & "' nicht starten")
Exit 1
EndIf
Do
Sleep(3000)
ConsoleWrite($h_Calibre & @CRLF)
If (ProcessExists($h_Calibre) = 0) And (ProcessExists($s_CalibreMainProgramName) = 0) Then
$b_RunCalibe = False
EndIf
Until $b_RunCalibe = False
FileDelete($s_LockFileName)
FileWriteLine("MultiuserLOG.txt", @YEAR & "-" & @MON & "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " - LOGOUT => USERNAME: " & @UserName & _
" COMPUTERNAME: " & @ComputerName & " RDP-Client: " & $s_clientname & " - " & $s_ip)
Sleep (2000)
If FileExists($s_LockFileName) = 1 Then
MsgBox(16,"Warnung", "Konnte das Calibre-Lock-File nicht löschen:" & @CRLF & @ScriptDir & "\" & $s_CalibreProgramName)
Exit 1
Else
Exit 0
EndIf

View File

@ -0,0 +1,110 @@
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=CalibeIcon.ico
#AutoIt3Wrapper_Res_Description=2013 Bernhard Linz / Bernhard@znil.de / http://znil.net
#AutoIt3Wrapper_Res_Fileversion=1.0.0.3
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Res_LegalCopyright=znil.net
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Dim Const $s_LockFileName = "CalibreLockFile.txt"
Dim Const $s_CalibreProgramName = "calibre-portable.exe"
Dim Const $s_CalibreMainProgramName = "calibre.exe"
Dim $h_lockfile
Dim $h_Calibre
Dim $b_RunCalibe = False
Dim $a_gelockt_von
Dim $h_DllErgebnis
Dim $s_clientname
Dim $s_ip
Dim $a_DezimalIP[5]
If FileExists($s_LockFileName) = 1 Then
$h_lockfile = FileOpen($s_LockFileName,0)
$a_gelockt_von = StringSplit(FileReadLine($s_LockFileName), ":", 0)
FileClose($h_lockfile)
; $a_gelockt_von[1] = Benutzername
; $a_gelockt_von[2] = Computername
; $a_gelockt_von[3] = Stunde
; $a_gelockt_von[4] = Minute
; $a_gelockt_von[5] = Tag
; $a_gelockt_von[6] = Monat
; $a_gelockt_von[7] = Jahr
If $a_gelockt_von[0] = 7 Then
MsgBox(262160, "Calibre blockiert", "Der Benutzer '" & $a_gelockt_von[1] & "' am Computer '" & $a_gelockt_von[2] & "'" & @CRLF & _
"hat bereits um " & $a_gelockt_von[3] & ":" & $a_gelockt_von[4] & " Uhr am " & $a_gelockt_von[5] & "." & $a_gelockt_von[6] & "." & $a_gelockt_von[7] & @CRLF & _
"Calibre gestartet und nimmt eventuell Änderungen vor." & @CRLF & @CRLF & _
"Programmaufruf ist blockiert!")
EndIf
$b_RunCalibe = False
Else
$h_lockfile = FileOpen($s_LockFileName,2)
FileWriteLine($h_lockfile, @UserName & ":" & @ComputerName & ":" & @HOUR & ":" & @MIN & ":" & @MDAY & ":" & @MON & ":" & @YEAR & @CRLF)
FileClose($h_lockfile)
$b_RunCalibe = True
; Dinge aus RDP-Session herausfinden
$h_DllErgebnis = DllCall("Wtsapi32.dll","BOOL","WTSQuerySessionInformationW","int",0, "int", -1, "int", 10, "ptr*", 0, "DWORD*",0)
If @error Or $h_DllErgebnis[0] = 0 Then
$s_clientname = "unknown"
Else
$s_clientname = BinaryToString( DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1) ,2)
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
EndIf
$h_DllErgebnis = DllCall("Wtsapi32.dll","int", "WTSQuerySessionInformationW", "Ptr", 0, "int", -1, "int", 14, "ptr*", 0, "DWORD*", 0)
If @error Or $h_DllErgebnis[0] = 0 Then
$s_ip = "unknown"
Else
$s_ip = DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1)
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
$s_ip = StringTrimLeft($s_ip,14)
$a_DezimalIP[1] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[2] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[3] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[4] = Dec(StringLeft($s_ip,2))
$s_ip = $a_DezimalIP[1] & "." & $a_DezimalIP[2] & "." & $a_DezimalIP[3] & "." & $a_DezimalIP[4]
EndIf
; Und Logfile-Schreiben
FileWriteLine("MultiuserLOG.txt", @YEAR & "-" & @MON & "-" @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " - LOGIN => USERNAME: " & @UserName & _
" COMPUTERNAME: " & @ComputerName & " RDP-Client: " & $s_clientname & " - " & $s_ip)
EndIf
If $b_RunCalibe = False Then
Exit 1
EndIf
$h_Calibre = Run(@ScriptDir & "\" & $s_CalibreProgramName, @ScriptDir, @SW_MAXIMIZE)
If $h_Calibre = 0 Then
FileDelete($s_LockFileName)
MsgBox(16, "Fehler", "Konnte '" & @ScriptDir & "\" & $s_CalibreProgramName & "' nicht starten")
Exit 1
EndIf
Do
Sleep(3000)
ConsoleWrite($h_Calibre & @CRLF)
If (ProcessExists($h_Calibre) = 0) And (ProcessExists($s_CalibreMainProgramName) = 0) Then
$b_RunCalibe = False
EndIf
Until $b_RunCalibe = False
FileDelete($s_LockFileName)
FileWriteLine("MultiuserLOG.txt", @YEAR & "-" & @MON "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " - LOGOUT => USERNAME: " & @UserName & _
" COMPUTERNAME: " & @ComputerName & " RDP-Client: " & $s_clientname & " - " & $s_ip)
Sleep (2000)
If FileExists($s_LockFileName) = 1 Then
MsgBox(16,"Warnung", "Konnte das Calibre-Lock-File nicht löschen:" & @CRLF & @ScriptDir & "\" & $s_CalibreProgramName)
Exit 1
Else
Exit 0
EndIf

View File

@ -0,0 +1,110 @@
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=CalibeIcon.ico
#AutoIt3Wrapper_Res_Description=2013 Bernhard Linz / Bernhard@znil.de / http://znil.net
#AutoIt3Wrapper_Res_Fileversion=1.0.0.3
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Res_LegalCopyright=znil.net
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Dim Const $s_LockFileName = "CalibreLockFile.txt"
Dim Const $s_CalibreProgramName = "calibre-portable.exe"
Dim Const $s_CalibreMainProgramName = "calibre.exe"
Dim $h_lockfile
Dim $h_Calibre
Dim $b_RunCalibe = False
Dim $a_gelockt_von
Dim $h_DllErgebnis
Dim $s_clientname
Dim $s_ip
Dim $a_DezimalIP[5]
If FileExists($s_LockFileName) = 1 Then
$h_lockfile = FileOpen($s_LockFileName,0)
$a_gelockt_von = StringSplit(FileReadLine($s_LockFileName), ":", 0)
FileClose($h_lockfile)
; $a_gelockt_von[1] = Benutzername
; $a_gelockt_von[2] = Computername
; $a_gelockt_von[3] = Stunde
; $a_gelockt_von[4] = Minute
; $a_gelockt_von[5] = Tag
; $a_gelockt_von[6] = Monat
; $a_gelockt_von[7] = Jahr
If $a_gelockt_von[0] = 7 Then
MsgBox(262160, "Calibre blockiert", "Der Benutzer '" & $a_gelockt_von[1] & "' am Computer '" & $a_gelockt_von[2] & "'" & @CRLF & _
"hat bereits um " & $a_gelockt_von[3] & ":" & $a_gelockt_von[4] & " Uhr am " & $a_gelockt_von[5] & "." & $a_gelockt_von[6] & "." & $a_gelockt_von[7] & @CRLF & _
"Calibre gestartet und nimmt eventuell Änderungen vor." & @CRLF & @CRLF & _
"Programmaufruf ist blockiert!")
EndIf
$b_RunCalibe = False
Else
$h_lockfile = FileOpen($s_LockFileName,2)
FileWriteLine($h_lockfile, @UserName & ":" & @ComputerName & ":" & @HOUR & ":" & @MIN & ":" & @MDAY & ":" & @MON & ":" & @YEAR & @CRLF)
FileClose($h_lockfile)
$b_RunCalibe = True
; Dinge aus RDP-Session herausfinden
$h_DllErgebnis = DllCall("Wtsapi32.dll","BOOL","WTSQuerySessionInformationW","int",0, "int", -1, "int", 10, "ptr*", 0, "DWORD*",0)
If @error Or $h_DllErgebnis[0] = 0 Then
$s_clientname = "unknown"
Else
$s_clientname = BinaryToString( DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1) ,2)
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
EndIf
$h_DllErgebnis = DllCall("Wtsapi32.dll","int", "WTSQuerySessionInformationW", "Ptr", 0, "int", -1, "int", 14, "ptr*", 0, "DWORD*", 0)
If @error Or $h_DllErgebnis[0] = 0 Then
$s_ip = "unknown"
Else
$s_ip = DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1)
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
$s_ip = StringTrimLeft($s_ip,14)
$a_DezimalIP[1] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[2] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[3] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[4] = Dec(StringLeft($s_ip,2))
$s_ip = $a_DezimalIP[1] & "." & $a_DezimalIP[2] & "." & $a_DezimalIP[3] & "." & $a_DezimalIP[4]
EndIf
; Und Logfile-Schreiben
FileWriteLine("MultiuserLOG.txt", @YEAR & "-" & @MON "-" @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " - LOGIN => USERNAME: " & @UserName & _
" COMPUTERNAME: " & @ComputerName & " RDP-Client: " & $s_clientname & " - " & $s_ip)
EndIf
If $b_RunCalibe = False Then
Exit 1
EndIf
$h_Calibre = Run(@ScriptDir & "\" & $s_CalibreProgramName, @ScriptDir, @SW_MAXIMIZE)
If $h_Calibre = 0 Then
FileDelete($s_LockFileName)
MsgBox(16, "Fehler", "Konnte '" & @ScriptDir & "\" & $s_CalibreProgramName & "' nicht starten")
Exit 1
EndIf
Do
Sleep(3000)
ConsoleWrite($h_Calibre & @CRLF)
If (ProcessExists($h_Calibre) = 0) And (ProcessExists($s_CalibreMainProgramName) = 0) Then
$b_RunCalibe = False
EndIf
Until $b_RunCalibe = False
FileDelete($s_LockFileName)
FileWriteLine("MultiuserLOG.txt", @YEAR & "-" & @MON "-" @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " - LOGOUT => USERNAME: " & @UserName & _
" COMPUTERNAME: " & @ComputerName & " RDP-Client: " & $s_clientname & " - " & $s_ip)
Sleep (2000)
If FileExists($s_LockFileName) = 1 Then
MsgBox(16,"Warnung", "Konnte das Calibre-Lock-File nicht löschen:" & @CRLF & @ScriptDir & "\" & $s_CalibreProgramName)
Exit 1
Else
Exit 0
EndIf

View File

@ -0,0 +1,77 @@
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=CalibeIcon.ico
#AutoIt3Wrapper_Res_Description=2013 Bernhard Linz / Bernhard@znil.de / http://znil.net
#AutoIt3Wrapper_Res_Fileversion=1.0.0.3
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Res_LegalCopyright=znil.net
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Dim Const $s_LockFileName = "CalibreLockFile.txt"
Dim Const $s_CalibreProgramName = "calibre-portable.exe"
Dim Const $s_CalibreMainProgramName = "calibre.exe"
Dim $h_lockfile
Dim $h_Calibre
Dim $b_RunCalibe = False
Dim $a_gelockt_von
If FileExists($s_LockFileName) = 1 Then
$h_lockfile = FileOpen($s_LockFileName,0)
$a_gelockt_von = StringSplit(FileReadLine($s_LockFileName), ":", 0)
FileClose($h_lockfile)
; $a_gelockt_von[1] = Benutzername
; $a_gelockt_von[2] = Computername
; $a_gelockt_von[3] = Stunde
; $a_gelockt_von[4] = Minute
; $a_gelockt_von[5] = Tag
; $a_gelockt_von[6] = Monat
; $a_gelockt_von[7] = Jahr
If $a_gelockt_von[0] = 7 Then
MsgBox(262160, "Calibre blockiert", "Der Benutzer '" & $a_gelockt_von[1] & "' am Computer '" & $a_gelockt_von[2] & "'" & @CRLF & _
"hat bereits um " & $a_gelockt_von[3] & ":" & $a_gelockt_von[4] & " Uhr am " & $a_gelockt_von[5] & "." & $a_gelockt_von[6] & "." & $a_gelockt_von[7] & @CRLF & _
"Calibre gestartet und nimmt eventuell Änderungen vor." & @CRLF & @CRLF & _
"Programmaufruf ist blockiert!")
EndIf
$b_RunCalibe = False
Else
$h_lockfile = FileOpen($s_LockFileName,2)
FileWriteLine($h_lockfile, @UserName & ":" & @ComputerName & ":" & @HOUR & ":" & @MIN & ":" & @MDAY & ":" & @MON & ":" & @YEAR & @CRLF)
FileClose($h_lockfile)
$b_RunCalibe = True
EndIf
If $b_RunCalibe = False Then
Exit 1
EndIf
$h_Calibre = Run(@ScriptDir & "\" & $s_CalibreProgramName, @ScriptDir, @SW_MAXIMIZE)
If $h_Calibre = 0 Then
FileDelete($s_LockFileName)
MsgBox(16, "Fehler", "Konnte '" & @ScriptDir & "\" & $s_CalibreProgramName & "' nicht starten")
Exit 1
EndIf
Do
Sleep(3000)
ConsoleWrite($h_Calibre & @CRLF)
If (ProcessExists($h_Calibre) = 0) And (ProcessExists($s_CalibreMainProgramName) = 0) Then
$b_RunCalibe = False
EndIf
Until $b_RunCalibe = False
FileDelete($s_LockFileName)
Sleep (1000)
If FileExists($s_LockFileName) = 1 Then
MsgBox(16,"Warnung", "Konnte das Calibre-Lock-File nicht löschen:" & @CRLF & @ScriptDir & "\" & $s_CalibreProgramName)
Exit 1
Else
Exit 0
EndIf

Binary file not shown.

View File

@ -0,0 +1,127 @@
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=CalibeIcon.ico
#AutoIt3Wrapper_Res_Description=2013 Bernhard Linz / Bernhard@znil.de / http://znil.net
#AutoIt3Wrapper_Res_Fileversion=1.0.0.13
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Res_LegalCopyright=znil.net
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Dim Const $s_LockFileName = "CalibreLockFile.txt"
Dim Const $s_CalibreProgramName = "calibre-portable.exe"
Dim Const $s_CalibreMainProgramName = "calibre.exe"
Dim $h_lockfile
Dim $h_Calibre
Dim $b_RunCalibe = False
Dim $a_gelockt_von
Dim $h_DllErgebnis
Dim $s_clientname
Dim $s_ip
Dim $a_DezimalIP[5]
Dim $b_CalibreWindowsActive = False
If FileExists($s_LockFileName) = 1 Then
$h_lockfile = FileOpen($s_LockFileName,0)
$a_gelockt_von = StringSplit(FileReadLine($s_LockFileName), ":", 0)
FileClose($h_lockfile)
; $a_gelockt_von[1] = Benutzername
; $a_gelockt_von[2] = Computername
; $a_gelockt_von[3] = Stunde
; $a_gelockt_von[4] = Minute
; $a_gelockt_von[5] = Tag
; $a_gelockt_von[6] = Monat
; $a_gelockt_von[7] = Jahr
If $a_gelockt_von[0] = 7 Then
MsgBox(262160, "Calibre blockiert", "Der Benutzer '" & $a_gelockt_von[1] & "' am Computer '" & $a_gelockt_von[2] & "'" & @CRLF & _
"hat bereits um " & $a_gelockt_von[3] & ":" & $a_gelockt_von[4] & " Uhr am " & $a_gelockt_von[5] & "." & $a_gelockt_von[6] & "." & $a_gelockt_von[7] & @CRLF & _
"Calibre gestartet und nimmt eventuell Änderungen vor." & @CRLF & @CRLF & _
"Programmaufruf ist blockiert!")
EndIf
$b_RunCalibe = False
Else
$h_lockfile = FileOpen($s_LockFileName,2)
FileWriteLine($h_lockfile, @UserName & ":" & @ComputerName & ":" & @HOUR & ":" & @MIN & ":" & @MDAY & ":" & @MON & ":" & @YEAR & @CRLF)
FileClose($h_lockfile)
$b_RunCalibe = True
; Dinge aus RDP-Session herausfinden
$h_DllErgebnis = DllCall("Wtsapi32.dll","BOOL","WTSQuerySessionInformationW","int",0, "int", -1, "int", 10, "ptr*", 0, "DWORD*",0)
If @error Or $h_DllErgebnis[0] = 0 Then
$s_clientname = "unknown"
Else
$s_clientname = BinaryToString( DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1) ,2)
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
EndIf
$h_DllErgebnis = DllCall("Wtsapi32.dll","int", "WTSQuerySessionInformationW", "Ptr", 0, "int", -1, "int", 14, "ptr*", 0, "DWORD*", 0)
If @error Or $h_DllErgebnis[0] = 0 Then
$s_ip = "unknown"
Else
$s_ip = DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1)
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
$s_ip = StringTrimLeft($s_ip,14)
$a_DezimalIP[1] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[2] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[3] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[4] = Dec(StringLeft($s_ip,2))
$s_ip = $a_DezimalIP[1] & "." & $a_DezimalIP[2] & "." & $a_DezimalIP[3] & "." & $a_DezimalIP[4]
EndIf
; Und Logfile-Schreiben
If $s_clientname = "" Then
$s_clientname = "Keine RDP Sitzung!"
$s_ip = ""
EndIf
FileWriteLine(@ScriptDir & "\MultiuserLOG.txt", @YEAR & "-" & @MON & "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " - LOGIN => USERNAME: " & @UserName & _
" COMPUTERNAME: " & @ComputerName & " RDP-Client: " & $s_clientname & " - " & $s_ip)
EndIf
If $b_RunCalibe = False Then
Exit 1
EndIf
$h_Calibre = Run(@ScriptDir & "\" & $s_CalibreProgramName, @ScriptDir, @SW_MAXIMIZE)
If $h_Calibre = 0 Then
FileDelete($s_LockFileName)
MsgBox(16, "Fehler", "Konnte '" & @ScriptDir & "\" & $s_CalibreProgramName & "' nicht starten")
Exit 1
EndIf
;SpashImage features: Title=No, Width=602, Height=302, Always On Top
SplashImageOn("", "bittewarten.jpg","602","302","-1","-1",1)
Do
If $b_CalibreWindowsActive = False Then
If WinExists ("calibre") = 1 Then
Sleep(2000)
SplashOff()
;MsgBox(0, "Calibre-Fenster", "Ist da!")
$b_CalibreWindowsActive = True
EndIf
EndIf
Sleep(1000)
;ConsoleWrite($h_Calibre & @CRLF)
If (ProcessExists($h_Calibre) = 0) And (ProcessExists($s_CalibreMainProgramName) = 0) Then
$b_RunCalibe = False
EndIf
Until $b_RunCalibe = False
FileDelete($s_LockFileName)
FileWriteLine("MultiuserLOG.txt", @YEAR & "-" & @MON & "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " - LOGOUT => USERNAME: " & @UserName & _
" COMPUTERNAME: " & @ComputerName & " RDP-Client: " & $s_clientname & " - " & $s_ip)
Sleep (2000)
If FileExists($s_LockFileName) = 1 Then
MsgBox(16,"Warnung", "Konnte das Calibre-Lock-File nicht löschen:" & @CRLF & @ScriptDir & "\" & $s_CalibreProgramName)
Exit 1
Else
Exit 0
EndIf

View File

@ -0,0 +1,126 @@
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=CalibeIcon.ico
#AutoIt3Wrapper_Res_Description=2013 Bernhard Linz / Bernhard@znil.de / http://znil.net
#AutoIt3Wrapper_Res_Fileversion=1.0.0.12
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Res_LegalCopyright=znil.net
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Dim Const $s_LockFileName = "CalibreLockFile.txt"
Dim Const $s_CalibreProgramName = "calibre-portable.exe"
Dim Const $s_CalibreMainProgramName = "calibre.exe"
Dim $h_lockfile
Dim $h_Calibre
Dim $b_RunCalibe = False
Dim $a_gelockt_von
Dim $h_DllErgebnis
Dim $s_clientname
Dim $s_ip
Dim $a_DezimalIP[5]
Dim $b_CalibreWindowsActive = False
If FileExists($s_LockFileName) = 1 Then
$h_lockfile = FileOpen($s_LockFileName,0)
$a_gelockt_von = StringSplit(FileReadLine($s_LockFileName), ":", 0)
FileClose($h_lockfile)
; $a_gelockt_von[1] = Benutzername
; $a_gelockt_von[2] = Computername
; $a_gelockt_von[3] = Stunde
; $a_gelockt_von[4] = Minute
; $a_gelockt_von[5] = Tag
; $a_gelockt_von[6] = Monat
; $a_gelockt_von[7] = Jahr
If $a_gelockt_von[0] = 7 Then
MsgBox(262160, "Calibre blockiert", "Der Benutzer '" & $a_gelockt_von[1] & "' am Computer '" & $a_gelockt_von[2] & "'" & @CRLF & _
"hat bereits um " & $a_gelockt_von[3] & ":" & $a_gelockt_von[4] & " Uhr am " & $a_gelockt_von[5] & "." & $a_gelockt_von[6] & "." & $a_gelockt_von[7] & @CRLF & _
"Calibre gestartet und nimmt eventuell Änderungen vor." & @CRLF & @CRLF & _
"Programmaufruf ist blockiert!")
EndIf
$b_RunCalibe = False
Else
$h_lockfile = FileOpen($s_LockFileName,2)
FileWriteLine($h_lockfile, @UserName & ":" & @ComputerName & ":" & @HOUR & ":" & @MIN & ":" & @MDAY & ":" & @MON & ":" & @YEAR & @CRLF)
FileClose($h_lockfile)
$b_RunCalibe = True
; Dinge aus RDP-Session herausfinden
$h_DllErgebnis = DllCall("Wtsapi32.dll","BOOL","WTSQuerySessionInformationW","int",0, "int", -1, "int", 10, "ptr*", 0, "DWORD*",0)
If @error Or $h_DllErgebnis[0] = 0 Then
$s_clientname = "unknown"
Else
$s_clientname = BinaryToString( DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1) ,2)
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
EndIf
$h_DllErgebnis = DllCall("Wtsapi32.dll","int", "WTSQuerySessionInformationW", "Ptr", 0, "int", -1, "int", 14, "ptr*", 0, "DWORD*", 0)
If @error Or $h_DllErgebnis[0] = 0 Then
$s_ip = "unknown"
Else
$s_ip = DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1)
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
$s_ip = StringTrimLeft($s_ip,14)
$a_DezimalIP[1] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[2] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[3] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[4] = Dec(StringLeft($s_ip,2))
$s_ip = $a_DezimalIP[1] & "." & $a_DezimalIP[2] & "." & $a_DezimalIP[3] & "." & $a_DezimalIP[4]
EndIf
; Und Logfile-Schreiben
If $s_clientname = "" Then
$s_clientname = "Keine RDP Sitzung!"
$s_ip = ""
EndIf
FileWriteLine(@ScriptDir & "\MultiuserLOG.txt", @YEAR & "-" & @MON & "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " - LOGIN => USERNAME: " & @UserName & _
" COMPUTERNAME: " & @ComputerName & " RDP-Client: " & $s_clientname & " - " & $s_ip)
EndIf
If $b_RunCalibe = False Then
Exit 1
EndIf
$h_Calibre = Run(@ScriptDir & "\" & $s_CalibreProgramName, @ScriptDir, @SW_MAXIMIZE)
If $h_Calibre = 0 Then
FileDelete($s_LockFileName)
MsgBox(16, "Fehler", "Konnte '" & @ScriptDir & "\" & $s_CalibreProgramName & "' nicht starten")
Exit 1
EndIf
;SpashImage features: Title=No, Width=602, Height=302, Always On Top
SplashImageOn("", "bittewarten.jpg","602","302","-1","-1",1)
Do
If $b_CalibreWindowsActive = False Then
If WinExists ("calibre") = 1 Then
SplashOff()
;MsgBox(0, "Calibre-Fenster", "Ist da!")
$b_CalibreWindowsActive = True
EndIf
EndIf
Sleep(1000)
;ConsoleWrite($h_Calibre & @CRLF)
If (ProcessExists($h_Calibre) = 0) And (ProcessExists($s_CalibreMainProgramName) = 0) Then
$b_RunCalibe = False
EndIf
Until $b_RunCalibe = False
FileDelete($s_LockFileName)
FileWriteLine("MultiuserLOG.txt", @YEAR & "-" & @MON & "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " - LOGOUT => USERNAME: " & @UserName & _
" COMPUTERNAME: " & @ComputerName & " RDP-Client: " & $s_clientname & " - " & $s_ip)
Sleep (2000)
If FileExists($s_LockFileName) = 1 Then
MsgBox(16,"Warnung", "Konnte das Calibre-Lock-File nicht löschen:" & @CRLF & @ScriptDir & "\" & $s_CalibreProgramName)
Exit 1
Else
Exit 0
EndIf

View File

@ -0,0 +1,123 @@
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=CalibeIcon.ico
#AutoIt3Wrapper_Res_Description=2013 Bernhard Linz / Bernhard@znil.de / http://znil.net
#AutoIt3Wrapper_Res_Fileversion=1.0.0.11
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Res_LegalCopyright=znil.net
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Dim Const $s_LockFileName = "CalibreLockFile.txt"
Dim Const $s_CalibreProgramName = "calibre-portable.exe"
Dim Const $s_CalibreMainProgramName = "calibre.exe"
Dim $h_lockfile
Dim $h_Calibre
Dim $b_RunCalibe = False
Dim $a_gelockt_von
Dim $h_DllErgebnis
Dim $s_clientname
Dim $s_ip
Dim $a_DezimalIP[5]
Dim $b_CalibreWindowsActive = False
If FileExists($s_LockFileName) = 1 Then
$h_lockfile = FileOpen($s_LockFileName,0)
$a_gelockt_von = StringSplit(FileReadLine($s_LockFileName), ":", 0)
FileClose($h_lockfile)
; $a_gelockt_von[1] = Benutzername
; $a_gelockt_von[2] = Computername
; $a_gelockt_von[3] = Stunde
; $a_gelockt_von[4] = Minute
; $a_gelockt_von[5] = Tag
; $a_gelockt_von[6] = Monat
; $a_gelockt_von[7] = Jahr
If $a_gelockt_von[0] = 7 Then
MsgBox(262160, "Calibre blockiert", "Der Benutzer '" & $a_gelockt_von[1] & "' am Computer '" & $a_gelockt_von[2] & "'" & @CRLF & _
"hat bereits um " & $a_gelockt_von[3] & ":" & $a_gelockt_von[4] & " Uhr am " & $a_gelockt_von[5] & "." & $a_gelockt_von[6] & "." & $a_gelockt_von[7] & @CRLF & _
"Calibre gestartet und nimmt eventuell Änderungen vor." & @CRLF & @CRLF & _
"Programmaufruf ist blockiert!")
EndIf
$b_RunCalibe = False
Else
$h_lockfile = FileOpen($s_LockFileName,2)
FileWriteLine($h_lockfile, @UserName & ":" & @ComputerName & ":" & @HOUR & ":" & @MIN & ":" & @MDAY & ":" & @MON & ":" & @YEAR & @CRLF)
FileClose($h_lockfile)
$b_RunCalibe = True
; Dinge aus RDP-Session herausfinden
$h_DllErgebnis = DllCall("Wtsapi32.dll","BOOL","WTSQuerySessionInformationW","int",0, "int", -1, "int", 10, "ptr*", 0, "DWORD*",0)
If @error Or $h_DllErgebnis[0] = 0 Then
$s_clientname = "unknown"
Else
$s_clientname = BinaryToString( DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1) ,2)
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
EndIf
$h_DllErgebnis = DllCall("Wtsapi32.dll","int", "WTSQuerySessionInformationW", "Ptr", 0, "int", -1, "int", 14, "ptr*", 0, "DWORD*", 0)
If @error Or $h_DllErgebnis[0] = 0 Then
$s_ip = "unknown"
Else
$s_ip = DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1)
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
$s_ip = StringTrimLeft($s_ip,14)
$a_DezimalIP[1] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[2] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[3] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[4] = Dec(StringLeft($s_ip,2))
$s_ip = $a_DezimalIP[1] & "." & $a_DezimalIP[2] & "." & $a_DezimalIP[3] & "." & $a_DezimalIP[4]
EndIf
; Und Logfile-Schreiben
If $s_clientname = "" Then
$s_clientname = "Keine RDP Sitzung!"
$s_ip = ""
EndIf
FileWriteLine(@ScriptDir & "\MultiuserLOG.txt", @YEAR & "-" & @MON & "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " - LOGIN => USERNAME: " & @UserName & _
" COMPUTERNAME: " & @ComputerName & " RDP-Client: " & $s_clientname & " - " & $s_ip)
EndIf
If $b_RunCalibe = False Then
Exit 1
EndIf
$h_Calibre = Run(@ScriptDir & "\" & $s_CalibreProgramName, @ScriptDir, @SW_MAXIMIZE)
If $h_Calibre = 0 Then
FileDelete($s_LockFileName)
MsgBox(16, "Fehler", "Konnte '" & @ScriptDir & "\" & $s_CalibreProgramName & "' nicht starten")
Exit 1
EndIf
Do
If $b_CalibreWindowsActive = False Then
If WinExists ("calibre") = 1 Then
MsgBox(0, "Calibre-Fenster", "Ist da!")
$b_CalibreWindowsActive = True
EndIf
EndIf
Sleep(1000)
;ConsoleWrite($h_Calibre & @CRLF)
If (ProcessExists($h_Calibre) = 0) And (ProcessExists($s_CalibreMainProgramName) = 0) Then
$b_RunCalibe = False
EndIf
Until $b_RunCalibe = False
FileDelete($s_LockFileName)
FileWriteLine("MultiuserLOG.txt", @YEAR & "-" & @MON & "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " - LOGOUT => USERNAME: " & @UserName & _
" COMPUTERNAME: " & @ComputerName & " RDP-Client: " & $s_clientname & " - " & $s_ip)
Sleep (2000)
If FileExists($s_LockFileName) = 1 Then
MsgBox(16,"Warnung", "Konnte das Calibre-Lock-File nicht löschen:" & @CRLF & @ScriptDir & "\" & $s_CalibreProgramName)
Exit 1
Else
Exit 0
EndIf

View File

@ -0,0 +1,123 @@
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=CalibeIcon.ico
#AutoIt3Wrapper_Res_Description=2013 Bernhard Linz / Bernhard@znil.de / http://znil.net
#AutoIt3Wrapper_Res_Fileversion=1.0.0.10
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Res_LegalCopyright=znil.net
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Dim Const $s_LockFileName = "CalibreLockFile.txt"
Dim Const $s_CalibreProgramName = "calibre-portable.exe"
Dim Const $s_CalibreMainProgramName = "calibre.exe"
Dim $h_lockfile
Dim $h_Calibre
Dim $b_RunCalibe = False
Dim $a_gelockt_von
Dim $h_DllErgebnis
Dim $s_clientname
Dim $s_ip
Dim $a_DezimalIP[5]
Dim $b_CalibreWindowsActive = False
If FileExists($s_LockFileName) = 1 Then
$h_lockfile = FileOpen($s_LockFileName,0)
$a_gelockt_von = StringSplit(FileReadLine($s_LockFileName), ":", 0)
FileClose($h_lockfile)
; $a_gelockt_von[1] = Benutzername
; $a_gelockt_von[2] = Computername
; $a_gelockt_von[3] = Stunde
; $a_gelockt_von[4] = Minute
; $a_gelockt_von[5] = Tag
; $a_gelockt_von[6] = Monat
; $a_gelockt_von[7] = Jahr
If $a_gelockt_von[0] = 7 Then
MsgBox(262160, "Calibre blockiert", "Der Benutzer '" & $a_gelockt_von[1] & "' am Computer '" & $a_gelockt_von[2] & "'" & @CRLF & _
"hat bereits um " & $a_gelockt_von[3] & ":" & $a_gelockt_von[4] & " Uhr am " & $a_gelockt_von[5] & "." & $a_gelockt_von[6] & "." & $a_gelockt_von[7] & @CRLF & _
"Calibre gestartet und nimmt eventuell Änderungen vor." & @CRLF & @CRLF & _
"Programmaufruf ist blockiert!")
EndIf
$b_RunCalibe = False
Else
$h_lockfile = FileOpen($s_LockFileName,2)
FileWriteLine($h_lockfile, @UserName & ":" & @ComputerName & ":" & @HOUR & ":" & @MIN & ":" & @MDAY & ":" & @MON & ":" & @YEAR & @CRLF)
FileClose($h_lockfile)
$b_RunCalibe = True
; Dinge aus RDP-Session herausfinden
$h_DllErgebnis = DllCall("Wtsapi32.dll","BOOL","WTSQuerySessionInformationW","int",0, "int", -1, "int", 10, "ptr*", 0, "DWORD*",0)
If @error Or $h_DllErgebnis[0] = 0 Then
$s_clientname = "unknown"
Else
$s_clientname = BinaryToString( DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1) ,2)
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
EndIf
$h_DllErgebnis = DllCall("Wtsapi32.dll","int", "WTSQuerySessionInformationW", "Ptr", 0, "int", -1, "int", 14, "ptr*", 0, "DWORD*", 0)
If @error Or $h_DllErgebnis[0] = 0 Then
$s_ip = "unknown"
Else
$s_ip = DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1)
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
$s_ip = StringTrimLeft($s_ip,14)
$a_DezimalIP[1] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[2] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[3] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[4] = Dec(StringLeft($s_ip,2))
$s_ip = $a_DezimalIP[1] & "." & $a_DezimalIP[2] & "." & $a_DezimalIP[3] & "." & $a_DezimalIP[4]
EndIf
; Und Logfile-Schreiben
If $s_clientname = "" Then
$s_clientname = "Keine RDP Sitzung!"
$s_ip = ""
EndIf
FileWriteLine(@ScriptDir & "\MultiuserLOG.txt", @YEAR & "-" & @MON & "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " - LOGIN => USERNAME: " & @UserName & _
" COMPUTERNAME: " & @ComputerName & " RDP-Client: " & $s_clientname & " - " & $s_ip)
EndIf
If $b_RunCalibe = False Then
Exit 1
EndIf
$h_Calibre = Run(@ScriptDir & "\" & $s_CalibreProgramName, @ScriptDir, @SW_MAXIMIZE)
If $h_Calibre = 0 Then
FileDelete($s_LockFileName)
MsgBox(16, "Fehler", "Konnte '" & @ScriptDir & "\" & $s_CalibreProgramName & "' nicht starten")
Exit 1
EndIf
Do
If $b_CalibreWindowsActive = False Then
If WinExists ("calibre") = 1 Then
MsgBox(0, "Calibre-Fenster", "Ist da!")
$b_CalibreWindowsActive = True
EndIf
EndIf
Sleep(3000)
;ConsoleWrite($h_Calibre & @CRLF)
If (ProcessExists($h_Calibre) = 0) And (ProcessExists($s_CalibreMainProgramName) = 0) Then
$b_RunCalibe = False
EndIf
Until $b_RunCalibe = False
FileDelete($s_LockFileName)
FileWriteLine("MultiuserLOG.txt", @YEAR & "-" & @MON & "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " - LOGOUT => USERNAME: " & @UserName & _
" COMPUTERNAME: " & @ComputerName & " RDP-Client: " & $s_clientname & " - " & $s_ip)
Sleep (2000)
If FileExists($s_LockFileName) = 1 Then
MsgBox(16,"Warnung", "Konnte das Calibre-Lock-File nicht löschen:" & @CRLF & @ScriptDir & "\" & $s_CalibreProgramName)
Exit 1
Else
Exit 0
EndIf

View File

@ -0,0 +1,123 @@
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=CalibeIcon.ico
#AutoIt3Wrapper_Res_Description=2013 Bernhard Linz / Bernhard@znil.de / http://znil.net
#AutoIt3Wrapper_Res_Fileversion=1.0.0.9
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Res_LegalCopyright=znil.net
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Dim Const $s_LockFileName = "CalibreLockFile.txt"
Dim Const $s_CalibreProgramName = "calibre-portable.exe"
Dim Const $s_CalibreMainProgramName = "calibre.exe"
Dim $h_lockfile
Dim $h_Calibre
Dim $b_RunCalibe = False
Dim $a_gelockt_von
Dim $h_DllErgebnis
Dim $s_clientname
Dim $s_ip
Dim $a_DezimalIP[5]
Dim $b_CalibreWindowsActive = False
If FileExists($s_LockFileName) = 1 Then
$h_lockfile = FileOpen($s_LockFileName,0)
$a_gelockt_von = StringSplit(FileReadLine($s_LockFileName), ":", 0)
FileClose($h_lockfile)
; $a_gelockt_von[1] = Benutzername
; $a_gelockt_von[2] = Computername
; $a_gelockt_von[3] = Stunde
; $a_gelockt_von[4] = Minute
; $a_gelockt_von[5] = Tag
; $a_gelockt_von[6] = Monat
; $a_gelockt_von[7] = Jahr
If $a_gelockt_von[0] = 7 Then
MsgBox(262160, "Calibre blockiert", "Der Benutzer '" & $a_gelockt_von[1] & "' am Computer '" & $a_gelockt_von[2] & "'" & @CRLF & _
"hat bereits um " & $a_gelockt_von[3] & ":" & $a_gelockt_von[4] & " Uhr am " & $a_gelockt_von[5] & "." & $a_gelockt_von[6] & "." & $a_gelockt_von[7] & @CRLF & _
"Calibre gestartet und nimmt eventuell Änderungen vor." & @CRLF & @CRLF & _
"Programmaufruf ist blockiert!")
EndIf
$b_RunCalibe = False
Else
$h_lockfile = FileOpen($s_LockFileName,2)
FileWriteLine($h_lockfile, @UserName & ":" & @ComputerName & ":" & @HOUR & ":" & @MIN & ":" & @MDAY & ":" & @MON & ":" & @YEAR & @CRLF)
FileClose($h_lockfile)
$b_RunCalibe = True
; Dinge aus RDP-Session herausfinden
$h_DllErgebnis = DllCall("Wtsapi32.dll","BOOL","WTSQuerySessionInformationW","int",0, "int", -1, "int", 10, "ptr*", 0, "DWORD*",0)
If @error Or $h_DllErgebnis[0] = 0 Then
$s_clientname = "unknown"
Else
$s_clientname = BinaryToString( DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1) ,2)
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
EndIf
$h_DllErgebnis = DllCall("Wtsapi32.dll","int", "WTSQuerySessionInformationW", "Ptr", 0, "int", -1, "int", 14, "ptr*", 0, "DWORD*", 0)
If @error Or $h_DllErgebnis[0] = 0 Then
$s_ip = "unknown"
Else
$s_ip = DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1)
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
$s_ip = StringTrimLeft($s_ip,14)
$a_DezimalIP[1] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[2] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[3] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[4] = Dec(StringLeft($s_ip,2))
$s_ip = $a_DezimalIP[1] & "." & $a_DezimalIP[2] & "." & $a_DezimalIP[3] & "." & $a_DezimalIP[4]
EndIf
; Und Logfile-Schreiben
If $s_clientname = "" Then
$s_clientname = "Keine RDP Sitzung!"
$s_ip = ""
EndIf
FileWriteLine(@ScriptDir & "\MultiuserLOG.txt", @YEAR & "-" & @MON & "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " - LOGIN => USERNAME: " & @UserName & _
" COMPUTERNAME: " & @ComputerName & " RDP-Client: " & $s_clientname & " - " & $s_ip)
EndIf
If $b_RunCalibe = False Then
Exit 1
EndIf
$h_Calibre = Run(@ScriptDir & "\" & $s_CalibreProgramName, @ScriptDir, @SW_MAXIMIZE)
If $h_Calibre = 0 Then
FileDelete($s_LockFileName)
MsgBox(16, "Fehler", "Konnte '" & @ScriptDir & "\" & $s_CalibreProgramName & "' nicht starten")
Exit 1
EndIf
Do
If $b_CalibreWindowsActive = False Then
If WinExists ("Calibre") = 1 Then
MsgBox(0, "Calibre-Fenster", "Ist da!")
$b_CalibreWindowsActive = True
EndIf
EndIf
Sleep(3000)
;ConsoleWrite($h_Calibre & @CRLF)
If (ProcessExists($h_Calibre) = 0) And (ProcessExists($s_CalibreMainProgramName) = 0) Then
$b_RunCalibe = False
EndIf
Until $b_RunCalibe = False
FileDelete($s_LockFileName)
FileWriteLine("MultiuserLOG.txt", @YEAR & "-" & @MON & "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " - LOGOUT => USERNAME: " & @UserName & _
" COMPUTERNAME: " & @ComputerName & " RDP-Client: " & $s_clientname & " - " & $s_ip)
Sleep (2000)
If FileExists($s_LockFileName) = 1 Then
MsgBox(16,"Warnung", "Konnte das Calibre-Lock-File nicht löschen:" & @CRLF & @ScriptDir & "\" & $s_CalibreProgramName)
Exit 1
Else
Exit 0
EndIf

View File

@ -0,0 +1,123 @@
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=CalibeIcon.ico
#AutoIt3Wrapper_Res_Description=2013 Bernhard Linz / Bernhard@znil.de / http://znil.net
#AutoIt3Wrapper_Res_Fileversion=1.0.0.8
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Res_LegalCopyright=znil.net
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Dim Const $s_LockFileName = "CalibreLockFile.txt"
Dim Const $s_CalibreProgramName = "calibre-portable.exe"
Dim Const $s_CalibreMainProgramName = "calibre.exe"
Dim $h_lockfile
Dim $h_Calibre
Dim $b_RunCalibe = False
Dim $a_gelockt_von
Dim $h_DllErgebnis
Dim $s_clientname
Dim $s_ip
Dim $a_DezimalIP[5]
Dim $b_CalibreWindowsActive = False
If FileExists($s_LockFileName) = 1 Then
$h_lockfile = FileOpen($s_LockFileName,0)
$a_gelockt_von = StringSplit(FileReadLine($s_LockFileName), ":", 0)
FileClose($h_lockfile)
; $a_gelockt_von[1] = Benutzername
; $a_gelockt_von[2] = Computername
; $a_gelockt_von[3] = Stunde
; $a_gelockt_von[4] = Minute
; $a_gelockt_von[5] = Tag
; $a_gelockt_von[6] = Monat
; $a_gelockt_von[7] = Jahr
If $a_gelockt_von[0] = 7 Then
MsgBox(262160, "Calibre blockiert", "Der Benutzer '" & $a_gelockt_von[1] & "' am Computer '" & $a_gelockt_von[2] & "'" & @CRLF & _
"hat bereits um " & $a_gelockt_von[3] & ":" & $a_gelockt_von[4] & " Uhr am " & $a_gelockt_von[5] & "." & $a_gelockt_von[6] & "." & $a_gelockt_von[7] & @CRLF & _
"Calibre gestartet und nimmt eventuell Änderungen vor." & @CRLF & @CRLF & _
"Programmaufruf ist blockiert!")
EndIf
$b_RunCalibe = False
Else
$h_lockfile = FileOpen($s_LockFileName,2)
FileWriteLine($h_lockfile, @UserName & ":" & @ComputerName & ":" & @HOUR & ":" & @MIN & ":" & @MDAY & ":" & @MON & ":" & @YEAR & @CRLF)
FileClose($h_lockfile)
$b_RunCalibe = True
; Dinge aus RDP-Session herausfinden
$h_DllErgebnis = DllCall("Wtsapi32.dll","BOOL","WTSQuerySessionInformationW","int",0, "int", -1, "int", 10, "ptr*", 0, "DWORD*",0)
If @error Or $h_DllErgebnis[0] = 0 Then
$s_clientname = "unknown"
Else
$s_clientname = BinaryToString( DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1) ,2)
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
EndIf
$h_DllErgebnis = DllCall("Wtsapi32.dll","int", "WTSQuerySessionInformationW", "Ptr", 0, "int", -1, "int", 14, "ptr*", 0, "DWORD*", 0)
If @error Or $h_DllErgebnis[0] = 0 Then
$s_ip = "unknown"
Else
$s_ip = DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1)
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
$s_ip = StringTrimLeft($s_ip,14)
$a_DezimalIP[1] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[2] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[3] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[4] = Dec(StringLeft($s_ip,2))
$s_ip = $a_DezimalIP[1] & "." & $a_DezimalIP[2] & "." & $a_DezimalIP[3] & "." & $a_DezimalIP[4]
EndIf
; Und Logfile-Schreiben
If $s_clientname = "" Then
$s_clientname = "Keine RDP Sitzung!"
$s_ip = ""
EndIf
FileWriteLine(@ScriptDir & "\MultiuserLOG.txt", @YEAR & "-" & @MON & "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " - LOGIN => USERNAME: " & @UserName & _
" COMPUTERNAME: " & @ComputerName & " RDP-Client: " & $s_clientname & " - " & $s_ip)
EndIf
If $b_RunCalibe = False Then
Exit 1
EndIf
$h_Calibre = Run(@ScriptDir & "\" & $s_CalibreProgramName, @ScriptDir, @SW_MAXIMIZE)
If $h_Calibre = 0 Then
FileDelete($s_LockFileName)
MsgBox(16, "Fehler", "Konnte '" & @ScriptDir & "\" & $s_CalibreProgramName & "' nicht starten")
Exit 1
EndIf
Do
If $b_CalibreWindowsActive = False Then
If WinExists ("Calibre") = 1 Then
MsgBox("Calibre-Fenster", "Ist da!")
$b_CalibreWindowsActive = True
EndIf
EndIf
Sleep(3000)
;ConsoleWrite($h_Calibre & @CRLF)
If (ProcessExists($h_Calibre) = 0) And (ProcessExists($s_CalibreMainProgramName) = 0) Then
$b_RunCalibe = False
EndIf
Until $b_RunCalibe = False
FileDelete($s_LockFileName)
FileWriteLine("MultiuserLOG.txt", @YEAR & "-" & @MON & "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " - LOGOUT => USERNAME: " & @UserName & _
" COMPUTERNAME: " & @ComputerName & " RDP-Client: " & $s_clientname & " - " & $s_ip)
Sleep (2000)
If FileExists($s_LockFileName) = 1 Then
MsgBox(16,"Warnung", "Konnte das Calibre-Lock-File nicht löschen:" & @CRLF & @ScriptDir & "\" & $s_CalibreProgramName)
Exit 1
Else
Exit 0
EndIf

View File

@ -0,0 +1,117 @@
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=CalibeIcon.ico
#AutoIt3Wrapper_Res_Description=2013 Bernhard Linz / Bernhard@znil.de / http://znil.net
#AutoIt3Wrapper_Res_Fileversion=1.0.0.8
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Res_LegalCopyright=znil.net
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Dim Const $s_LockFileName = "CalibreLockFile.txt"
Dim Const $s_CalibreProgramName = "calibre-portable.exe"
Dim Const $s_CalibreMainProgramName = "calibre.exe"
Dim $h_lockfile
Dim $h_Calibre
Dim $b_RunCalibe = False
Dim $a_gelockt_von
Dim $h_DllErgebnis
Dim $s_clientname
Dim $s_ip
Dim $a_DezimalIP[5]
If FileExists($s_LockFileName) = 1 Then
$h_lockfile = FileOpen($s_LockFileName,0)
$a_gelockt_von = StringSplit(FileReadLine($s_LockFileName), ":", 0)
FileClose($h_lockfile)
; $a_gelockt_von[1] = Benutzername
; $a_gelockt_von[2] = Computername
; $a_gelockt_von[3] = Stunde
; $a_gelockt_von[4] = Minute
; $a_gelockt_von[5] = Tag
; $a_gelockt_von[6] = Monat
; $a_gelockt_von[7] = Jahr
If $a_gelockt_von[0] = 7 Then
MsgBox(262160, "Calibre blockiert", "Der Benutzer '" & $a_gelockt_von[1] & "' am Computer '" & $a_gelockt_von[2] & "'" & @CRLF & _
"hat bereits um " & $a_gelockt_von[3] & ":" & $a_gelockt_von[4] & " Uhr am " & $a_gelockt_von[5] & "." & $a_gelockt_von[6] & "." & $a_gelockt_von[7] & @CRLF & _
"Calibre gestartet und nimmt eventuell Änderungen vor." & @CRLF & @CRLF & _
"Programmaufruf ist blockiert!")
EndIf
$b_RunCalibe = False
Else
$h_lockfile = FileOpen($s_LockFileName,2)
FileWriteLine($h_lockfile, @UserName & ":" & @ComputerName & ":" & @HOUR & ":" & @MIN & ":" & @MDAY & ":" & @MON & ":" & @YEAR & @CRLF)
FileClose($h_lockfile)
$b_RunCalibe = True
; Dinge aus RDP-Session herausfinden
$h_DllErgebnis = DllCall("Wtsapi32.dll","BOOL","WTSQuerySessionInformationW","int",0, "int", -1, "int", 10, "ptr*", 0, "DWORD*",0)
If @error Or $h_DllErgebnis[0] = 0 Then
$s_clientname = "unknown"
Else
$s_clientname = BinaryToString( DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1) ,2)
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
EndIf
$h_DllErgebnis = DllCall("Wtsapi32.dll","int", "WTSQuerySessionInformationW", "Ptr", 0, "int", -1, "int", 14, "ptr*", 0, "DWORD*", 0)
If @error Or $h_DllErgebnis[0] = 0 Then
$s_ip = "unknown"
Else
$s_ip = DllStructGetData(DllStructCreate("byte[" & $h_DllErgebnis[5] & "]" , $h_DllErgebnis[4]),1)
DllCall("Wtsapi32.dll", "int", "WTSFreeMemory", "ptr", $h_DllErgebnis[4])
$s_ip = StringTrimLeft($s_ip,14)
$a_DezimalIP[1] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[2] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[3] = Dec(StringLeft($s_ip,2))
$s_ip = StringTrimLeft($s_ip,2)
$a_DezimalIP[4] = Dec(StringLeft($s_ip,2))
$s_ip = $a_DezimalIP[1] & "." & $a_DezimalIP[2] & "." & $a_DezimalIP[3] & "." & $a_DezimalIP[4]
EndIf
; Und Logfile-Schreiben
If $s_clientname = "" Then
$s_clientname = "Keine RDP Sitzung!"
$s_ip = ""
EndIf
FileWriteLine(@ScriptDir & "\MultiuserLOG.txt", @YEAR & "-" & @MON & "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " - LOGIN => USERNAME: " & @UserName & _
" COMPUTERNAME: " & @ComputerName & " RDP-Client: " & $s_clientname & " - " & $s_ip)
EndIf
If $b_RunCalibe = False Then
Exit 1
EndIf
$h_Calibre = Run(@ScriptDir & "\" & $s_CalibreProgramName, @ScriptDir, @SW_MAXIMIZE)
If $h_Calibre = 0 Then
FileDelete($s_LockFileName)
MsgBox(16, "Fehler", "Konnte '" & @ScriptDir & "\" & $s_CalibreProgramName & "' nicht starten")
Exit 1
EndIf
Do
Sleep(3000)
;ConsoleWrite($h_Calibre & @CRLF)
If (ProcessExists($h_Calibre) = 0) And (ProcessExists($s_CalibreMainProgramName) = 0) Then
$b_RunCalibe = False
EndIf
Until $b_RunCalibe = False
FileDelete($s_LockFileName)
FileWriteLine("MultiuserLOG.txt", @YEAR & "-" & @MON & "-" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC & " - LOGOUT => USERNAME: " & @UserName & _
" COMPUTERNAME: " & @ComputerName & " RDP-Client: " & $s_clientname & " - " & $s_ip)
Sleep (2000)
If FileExists($s_LockFileName) = 1 Then
MsgBox(16,"Warnung", "Konnte das Calibre-Lock-File nicht löschen:" & @CRLF & @ScriptDir & "\" & $s_CalibreProgramName)
Exit 1
Else
Exit 0
EndIf

Binary file not shown.

BIN
bittewarten.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB