hallo bobo, gute anregung. wie kann ich das angehen? wie du sicher bemerkt hat, sind meine fähigkeiten begrenzt
mit folgendem code, sende ich mir eine mail mit allen relevanten daten zu. hierzu gehört auch der inhalt des sticks.
wenn ich es nun noch schaffe diesen ausgelesenen stick vom system zu sperren wäre das sehr brauchbar.
habe nur leider keinen schimmer wie ich sowas angehen soll
vielleicht findet sich jemand der mich mehr oder weniger anschubst..
z.b. wie kann ich die eingebaute webcam dazu bewegen, ein oder mehrere fotos zu machen.
und gibt es eine möglichkeit, für x mnuten eine audioaufnahme über das eiggebaute micro auf die festplatte aufzuzeichnen
Code: Select all
; https://github.com/jNizM/AHK_Scripts/blob/master/src/messages/WM_DEVICECHANGE.ahk
; https://autohotkey.com/boards/viewtopic.php?f=9&t=44239&sid=871484feb184767d3afa6669a98f9158
; GLOBAL SETTINGS ===============================================================================================================
#NoEnv
#Persistent
#SingleInstance Force
SetBatchLines -1
OnMessage(0x0219, "WM_DEVICECHANGE")
; SCRIPT ======================================================================================================================
; ....
; FUNCTIONS =====================================================================================================================
WM_DEVICECHANGE(wParam, lParam)
{
static init := OnMessage(0x0219, "WM_DEVICECHANGE")
if (wParam = 0x8000) || (wParam = 0x8004) && ((NumGet(lParam+4, "uint")) = 0x2) {
i := 0, mask := NumGet(lParam+12, "uint")
while (mask > 1) && (++i < 0x1A)
mask >>= 1
DeviceChangeInfo(Chr(0x41 + i) ":\", wParam)
}
}
DeviceChangeInfo(device, state)
{
; MsgBox, 0x40, % "Device Change", % device " " ((state = 0x8000) ? "plugged in" : (state = 0x8004) ? "is removed" : ""), 1
UnixZeit := A_NowUTC
UnixZeit -= 1970, S
OrtsZeit := UnixTime2LocalTime(UnixZeit)
Jahr := SubStr(OrtsZeit, 1, 4)
Monat := SubStr(OrtsZeit, 5, 2)
Tag := SubStr(OrtsZeit, 7, 2)
Stunde := SubStr(OrtsZeit, 9, 2)
Minute := SubStr(OrtsZeit, 11, 2)
Sekunde := SubStr(OrtsZeit, 13, 2)
OrtsZeit := UnixTime2LocalTime(UnixZeit)
if state = 32768
state = USB Device plugged in
if state = 32772
state = USB Device is removed
xxx = % "Device: " . device . "`r`n" . "USB Action: " . state . "`r`n" . "DatumOrtszeit: " . OrtsZeit . "`r`n" . "Unixtime: " . UnixZeit . "`r`n" . "A_TickCount: " . A_TickCount . "`r`n" . "Datum: " . Tag . "-" . Monat . "-" . Jahr . "`r`n" . "Uhrzeit: " . Stunde . "-" . Minute . "-" . Sekunde . "`r`n" . "A_ComputerName: " . A_ComputerName . "`r`n" . "A_OSVersion: " . A_OSVersion . "`r`n" . "A_UserName: " . A_UserName . "`r`n" . "A_IsAdmin: " . A_IsAdmin . "`r`n"
if state contains plugged
{
Runwait, %comspec% /c dir %device%%A_Space%>%A_Scriptdir%\%OrtsZeit%.txt,, hide
Fileread, DirInfo, %A_Scriptdir%\%OrtsZeit%.txt
xxxDir = % "DirInfo: " . "`r`n" . DirInfo
}
xxlSend = % xxx . "`r`n" . xxxDir
FileAppend, %xxlSend%`n, %OrtsZeit%-USB_Alert_mail_content.txt
SendGmail(xxlSend,"[email protected]")
}
SendGmail(message,emailto){
Try
{
pmsg := ComObjCreate("CDO.Message")
pmsg.From := """Dein Name"" <[email protected]>"
pmsg.To := """Dein Name"" <[email protected]>"
pmsg.Subject := "USB Alert"
pmsg.TextBody := message
fields := Object()
fields.smtpserver := "smtp.gmail.com"
fields.smtpserverport := 465
fields.smtpusessl := True
fields.sendusing := 2
fields.smtpauthenticate := 1
fields.sendusername := "[email protected]"
fields.sendpassword := "DeinGmailPasswort"
fields.smtpconnectiontimeout := 60
schema := "http://schemas.microsoft.com/cdo/configuration/"
pfld := pmsg.Configuration.Fields
For field,value in fields
pfld.Item(schema . field) := value
pfld.Update()
pmsg.Send()
pmg.Close
Return
}
catch e
{
sleep, 5000
SendGmail(xxlSend,"[email protected]")
Return
}}
UnixTime2LocalTime(UnixTime) {
; http://msdn.microsoft.com/en-us/library/ms724949%28v=VS.85%29.aspx
T := 1970
T += UnixTime, S
Jahr := SubStr(T, 1, 4)
Monat := SubStr(T, 5, 2)
Tag := SubStr(T, 7, 2)
Stunde := SubStr(T, 9, 2)
Minute := SubStr(T, 11, 2)
Sekunde := SubStr(T, 13, 2)
FormatTime, Wochentag, %T%, WDay
; SYSTEMTIME (UTC)
VarSetCapacity(ST, 16, 0)
NumPut(Jahr, ST, 0, "Short")
NumPut(Monat, ST, 2, "Short")
NumPut(Wochentag - 1, ST, 4, "Short")
NumPut(Tag, ST, 6, "Short")
NumPut(Stunde, ST, 8, "Short")
NumPut(Minute, ST, 10, "Short")
NumPut(Sekunde, ST, 12, "Short")
; LOCALTIME
VarSetCapacity(LT, 16, 0)
DllCall("SystemTimeToTzSpecificLocalTime", Uint, 0, UInt, &ST, UInt, <)
Jahr := NumGet(LT, 0, "Short")
Monat := NumGet(LT, 2, "Short")
Tag := NumGet(LT, 6, "Short")
Stunde := NumGet(LT, 8, "Short")
Minute := NumGet(LT, 10, "Short")
Sekunde := NumGet(LT, 12, "Short")
Return Jahr . SubStr("0" . Monat, -1) . SubStr("0" . Tag, -1)
. SubStr("0" . Stunde, -1) . SubStr("0" . Minute, -1)
. SubStr("0" . Sekunde, -1)
}
Return
/*
https://msdn.microsoft.com/en-us/library/aa363480(v=vs.85).aspx WM_DEVICECHANGE message
https://msdn.microsoft.com/en-us/library/aa363205(v=vs.85).aspx DBT_DEVICEARRIVAL event
https://msdn.microsoft.com/en-us/library/aa363208(v=vs.85).aspx DBT_DEVICEREMOVECOMPLETE event
https://msdn.microsoft.com/en-us/library/aa363246(v=vs.85).aspx DEV_BROADCAST_HDR structure
https://msdn.microsoft.com/en-us/library/aa363249(v=vs.85).aspx DEV_BROADCAST_VOLUME structure
*/
das ist der inhalt der email:
Code: Select all
Device: L:\
USB Action: USB Device plugged in
DatumOrtszeit: 20180307225742
Unixtime: 1520459862
A_TickCount: 4233209828
Datum: 07-03-2018
Uhrzeit: 22-57-42
A_ComputerName: TOUCH
A_OSVersion: WIN_8.1
A_UserName: effel
A_IsAdmin: 0
DirInfo:
Datentr"ger in Laufwerk L: ist 500 gig SSD
Volumeseriennummer: 9EED-B232
Verzeichnis von L:\
17.02.2018 09:12 <DIR> _musik
23.01.2018 23:07 <DIR> _android APPS
07.02.2018 00:01 <DIR> _apple APPS
04.02.2018 00:10 <DIR> _Bilder ALL
24.01.2018 06:11 <DIR> _download ALL
23.01.2018 22:59 <DIR> _install ALL
23.01.2018 07:40 <DIR> _RINGTONES
23.01.2018 20:22 <DIR> _Tracks
0 Datei(en), 0 Bytes
8 Verzeichnis(se), 8.316.522.496 Bytes frei
hallo bobo, gute anregung. wie kann ich das angehen? wie du sicher bemerkt hat, sind meine fähigkeiten begrenzt :-)
mit folgendem code, sende ich mir eine mail mit allen relevanten daten zu. hierzu gehört auch der inhalt des sticks.
wenn ich es nun noch schaffe diesen ausgelesenen stick vom system zu sperren wäre das sehr brauchbar.
habe nur leider keinen schimmer wie ich sowas angehen soll
vielleicht findet sich jemand der mich mehr oder weniger anschubst..
z.b. wie kann ich die eingebaute webcam dazu bewegen, ein oder mehrere fotos zu machen.
und gibt es eine möglichkeit, für x mnuten eine audioaufnahme über das eiggebaute micro auf die festplatte aufzuzeichnen
[code]
; https://github.com/jNizM/AHK_Scripts/blob/master/src/messages/WM_DEVICECHANGE.ahk
; https://autohotkey.com/boards/viewtopic.php?f=9&t=44239&sid=871484feb184767d3afa6669a98f9158
; GLOBAL SETTINGS ===============================================================================================================
#NoEnv
#Persistent
#SingleInstance Force
SetBatchLines -1
OnMessage(0x0219, "WM_DEVICECHANGE")
; SCRIPT ======================================================================================================================
; ....
; FUNCTIONS =====================================================================================================================
WM_DEVICECHANGE(wParam, lParam)
{
static init := OnMessage(0x0219, "WM_DEVICECHANGE")
if (wParam = 0x8000) || (wParam = 0x8004) && ((NumGet(lParam+4, "uint")) = 0x2) {
i := 0, mask := NumGet(lParam+12, "uint")
while (mask > 1) && (++i < 0x1A)
mask >>= 1
DeviceChangeInfo(Chr(0x41 + i) ":\", wParam)
}
}
DeviceChangeInfo(device, state)
{
; MsgBox, 0x40, % "Device Change", % device " " ((state = 0x8000) ? "plugged in" : (state = 0x8004) ? "is removed" : ""), 1
UnixZeit := A_NowUTC
UnixZeit -= 1970, S
OrtsZeit := UnixTime2LocalTime(UnixZeit)
Jahr := SubStr(OrtsZeit, 1, 4)
Monat := SubStr(OrtsZeit, 5, 2)
Tag := SubStr(OrtsZeit, 7, 2)
Stunde := SubStr(OrtsZeit, 9, 2)
Minute := SubStr(OrtsZeit, 11, 2)
Sekunde := SubStr(OrtsZeit, 13, 2)
OrtsZeit := UnixTime2LocalTime(UnixZeit)
if state = 32768
state = USB Device plugged in
if state = 32772
state = USB Device is removed
xxx = % "Device: " . device . "`r`n" . "USB Action: " . state . "`r`n" . "DatumOrtszeit: " . OrtsZeit . "`r`n" . "Unixtime: " . UnixZeit . "`r`n" . "A_TickCount: " . A_TickCount . "`r`n" . "Datum: " . Tag . "-" . Monat . "-" . Jahr . "`r`n" . "Uhrzeit: " . Stunde . "-" . Minute . "-" . Sekunde . "`r`n" . "A_ComputerName: " . A_ComputerName . "`r`n" . "A_OSVersion: " . A_OSVersion . "`r`n" . "A_UserName: " . A_UserName . "`r`n" . "A_IsAdmin: " . A_IsAdmin . "`r`n"
if state contains plugged
{
Runwait, %comspec% /c dir %device%%A_Space%>%A_Scriptdir%\%OrtsZeit%.txt,, hide
Fileread, DirInfo, %A_Scriptdir%\%OrtsZeit%.txt
xxxDir = % "DirInfo: " . "`r`n" . DirInfo
}
xxlSend = % xxx . "`r`n" . xxxDir
FileAppend, %xxlSend%`n, %OrtsZeit%-USB_Alert_mail_content.txt
SendGmail(xxlSend,"
[email protected]")
}
SendGmail(message,emailto){
Try
{
pmsg := ComObjCreate("CDO.Message")
pmsg.From := """Dein Name"" <
[email protected]>"
pmsg.To := """Dein Name"" <
[email protected]>"
pmsg.Subject := "USB Alert"
pmsg.TextBody := message
fields := Object()
fields.smtpserver := "smtp.gmail.com"
fields.smtpserverport := 465
fields.smtpusessl := True
fields.sendusing := 2
fields.smtpauthenticate := 1
fields.sendusername := "
[email protected]"
fields.sendpassword := "DeinGmailPasswort"
fields.smtpconnectiontimeout := 60
schema := "http://schemas.microsoft.com/cdo/configuration/"
pfld := pmsg.Configuration.Fields
For field,value in fields
pfld.Item(schema . field) := value
pfld.Update()
pmsg.Send()
pmg.Close
Return
}
catch e
{
sleep, 5000
SendGmail(xxlSend,"
[email protected]")
Return
}}
UnixTime2LocalTime(UnixTime) {
; http://msdn.microsoft.com/en-us/library/ms724949%28v=VS.85%29.aspx
T := 1970
T += UnixTime, S
Jahr := SubStr(T, 1, 4)
Monat := SubStr(T, 5, 2)
Tag := SubStr(T, 7, 2)
Stunde := SubStr(T, 9, 2)
Minute := SubStr(T, 11, 2)
Sekunde := SubStr(T, 13, 2)
FormatTime, Wochentag, %T%, WDay
; SYSTEMTIME (UTC)
VarSetCapacity(ST, 16, 0)
NumPut(Jahr, ST, 0, "Short")
NumPut(Monat, ST, 2, "Short")
NumPut(Wochentag - 1, ST, 4, "Short")
NumPut(Tag, ST, 6, "Short")
NumPut(Stunde, ST, 8, "Short")
NumPut(Minute, ST, 10, "Short")
NumPut(Sekunde, ST, 12, "Short")
; LOCALTIME
VarSetCapacity(LT, 16, 0)
DllCall("SystemTimeToTzSpecificLocalTime", Uint, 0, UInt, &ST, UInt, <)
Jahr := NumGet(LT, 0, "Short")
Monat := NumGet(LT, 2, "Short")
Tag := NumGet(LT, 6, "Short")
Stunde := NumGet(LT, 8, "Short")
Minute := NumGet(LT, 10, "Short")
Sekunde := NumGet(LT, 12, "Short")
Return Jahr . SubStr("0" . Monat, -1) . SubStr("0" . Tag, -1)
. SubStr("0" . Stunde, -1) . SubStr("0" . Minute, -1)
. SubStr("0" . Sekunde, -1)
}
Return
/*
https://msdn.microsoft.com/en-us/library/aa363480(v=vs.85).aspx WM_DEVICECHANGE message
https://msdn.microsoft.com/en-us/library/aa363205(v=vs.85).aspx DBT_DEVICEARRIVAL event
https://msdn.microsoft.com/en-us/library/aa363208(v=vs.85).aspx DBT_DEVICEREMOVECOMPLETE event
https://msdn.microsoft.com/en-us/library/aa363246(v=vs.85).aspx DEV_BROADCAST_HDR structure
https://msdn.microsoft.com/en-us/library/aa363249(v=vs.85).aspx DEV_BROADCAST_VOLUME structure
*/
[/code]
das ist der inhalt der email:
[code]
Device: L:\
USB Action: USB Device plugged in
DatumOrtszeit: 20180307225742
Unixtime: 1520459862
A_TickCount: 4233209828
Datum: 07-03-2018
Uhrzeit: 22-57-42
A_ComputerName: TOUCH
A_OSVersion: WIN_8.1
A_UserName: effel
A_IsAdmin: 0
DirInfo:
Datentr"ger in Laufwerk L: ist 500 gig SSD
Volumeseriennummer: 9EED-B232
Verzeichnis von L:\
17.02.2018 09:12 <DIR> _musik
23.01.2018 23:07 <DIR> _android APPS
07.02.2018 00:01 <DIR> _apple APPS
04.02.2018 00:10 <DIR> _Bilder ALL
24.01.2018 06:11 <DIR> _download ALL
23.01.2018 22:59 <DIR> _install ALL
23.01.2018 07:40 <DIR> _RINGTONES
23.01.2018 20:22 <DIR> _Tracks
0 Datei(en), 0 Bytes
8 Verzeichnis(se), 8.316.522.496 Bytes frei
[/code]