Selfbondage Motion Detector 1.1

Selfbondage software and other kinky developments

Moderators: Riddle, Shannon SteelSlave

User avatar
medusa
*
Posts: 2
Joined: 24 Sep 2009, 14:51

Re: Selfbondage Motion Detector 1.1

Post by medusa »

Good afternoon, shipment a greeting to the forum and would want to give enhorabuena a qwerty212 by its excellent work with its software SB MOTION DETETION 1.1 , it seems very good to me and I practice I have proven, it and it is to me very stimulating and good. Also gustaria to add some suggestions to me like for example that the minimal time of count that year to the movement is in sections of 20 seconds instead of a minute since in real situation the paradox occurs which you begin with 10 minutes and nothing that you move you finish immobilized 1 hour or but. Also gustaria to add to me that podria to become a version in Spanish for I publish of Hispanic speech. That qwerty212 this very occupied and does not have time to dedicate to him to the program, encantaria me to be able to help the development of the program if qwerty212 it approves it I am to his disposition. I repeat I give my congratulations a qwerty212 by the excellent work carried out. A warm greeting :rofl:
User avatar
qwerty212
Moderator
Posts: 1064
Joined: 23 Mar 2010, 20:24

Re: Selfbondage Motion Detector 1.1

Post by qwerty212 »

medusa wrote:Good afternoon, shipment a greeting to the forum and would want to give enhorabuena a qwerty212 by its excellent work with its software SB MOTION DETETION 1.1 , it seems very good to me and I practice I have proven, it and it is to me very stimulating and good. Also gustaria to add some suggestions to me like for example that the minimal time of count that year to the movement is in sections of 20 seconds instead of a minute since in real situation the paradox occurs which you begin with 10 minutes and nothing that you move you finish immobilized 1 hour or but. Also gustaria to add to me that podria to become a version in Spanish for I publish of Hispanic speech. That qwerty212 this very occupied and does not have time to dedicate to him to the program, encantaria me to be able to help the development of the program if qwerty212 it approves it I am to his disposition. I repeat I give my congratulations a qwerty212 by the excellent work carried out. A warm greeting :rofl:
It seems that English is not the native language of medusa, so, considering that we are talking about selfbondage and it can involve a lot of dangers I'm going to answer him/her in Spanish.

Hola medusa.
Gracias por probar el programa, me alegro de que lo hayas encontrado útil.


Sobre las ideas que has dado te comento un par de cosillas:

La primera es que el programa ya ha sido traducido al castellano. :wink:
De hecho te recomendaria encarecidamente que usaras la versión en castellano, ya que incluye el manual de instrucciones completamente traducido.

Piensa que estos programas si no se usan adecuadamente pueden acarrear consecuencias muy serias, por lo que te agradecería que bajaras la versión en castellano y le echaras un ojo a las instrucciones.

Si hay algo que no entiendas no dudes en consultarme. Puedes preguntar lo que quieras aquí en el foro o bien enviarme un mensaje privado directamente en castellano (o enviarme un email a qwertybcn121@gmail.com). Si te vas a expresar mejor en catalán también te entenderé perfectamente.

Puedes bajar la versión en castellano de aquí.
Si quieres estar un poco al día de las traducciones de los programas ya publicados puedes hacerlo en este blog.


Sobre la segunda idea que dabas, la de usar tramos de 20 segundos como castigo por movimiento en vez de un minuto entero, si quieres te puedo mandar por mensaje privado una versión en la que le puedas decir cuantos segundo quieres añadir a la cuenta atrás cuando te muevas en vez minutos.

Sobre el hecho de que yo apruebe el desarrollo ó no de nuevas versiones, piensa que los programas no son míos, son de la comunidad. Yo no tengo que aprobar nada ni dar permiso a nadie para modificar los programas (de hecho cuando publiqué el código fuente fué con la idea de que quien quisiera pudiese añadir nuevas funciones al programa, como sí que ha pasado con el Selfbondage Blowjob Trainer, que Mich9 ha actualizado a partir del código fuente original).

Saludos desde Barcelona.
English translation wrote: Hello medusa.
Thanks for giving a try to the program, I'm glad that you've find it useful

Some thought about your ideas:

The first thing is that the program has been already translated to Spanish :wink:
In fact let me strongly recommend you to use the Spanish version instead the English one, because it also has the instruction manual translated to Spanish too

Think that those kind of programs can be very dangerous if they are not used correctly, so I would apreciatte it so much if you could please download the Spanish version and if you could take a look on the instruction manual

You can ask if there's anything that you do not understand. You can ask whatever you want here in the forum or send to me a PM in Spanish (or you can also contatc me via email at qwertybcn121@gmail.com) If you feel more confortable writting in Catalonian I will understand you perfectly too.

You can download the Spanish version from here.

If you want to know when I release new translated versions of the English versions you can visit this blog.

About your other idea, the one of adding 20 seconds as punishment for moving instead of 1 whole minute, if you want I can PM to you a version where you can input how many seconds will be added to the countdown instead of minutes.

About the fact of me giving permission or not to the developement of new versions, please consider that the programs are not mine: they belong to the comunity. I don't have to be agree or to give permissions to no one to modify the programs (in fact, when I published the source code was for that goal, that anybody can add new features to the program, as Mich have done with the Selfbondage Blowjob Trainer using the original source code)

Greets from Barcelona
User avatar
medusa
*
Posts: 2
Joined: 24 Sep 2009, 14:51

Re: Selfbondage Motion Detector 1.1

Post by medusa »

Good afternoon, I want to thank you for your excellent program qwerty212 , it is very good, so I tested and it is very exciting, I put a start time and end 15 minutes motionless for 45 minutes, excellent.
If I could find an butt plug vibrator that is activated by usb through serious punishment supreme lol.
Congratulations on the program.
Regards :whip:
Hannahcutie
*
Posts: 13
Joined: 11 Aug 2011, 07:03

Re: Selfbondage Motion Detector 1.1

Post by Hannahcutie »

Can someone tell me how sensitive the motion detector is (or are there different settings for it like the audio part)
User avatar
qwerty212
Moderator
Posts: 1064
Joined: 23 Mar 2010, 20:24

Re: Selfbondage Motion Detector 1.1

Post by qwerty212 »

Hannahcutie wrote:Can someone tell me how sensitive the motion detector is (or are there different settings for it like the audio part)
Hello Hannahcuttie :hi: There is a slider that lets you choose how sensitive the detection will be:
Image

Greets from Barcelona
pettimaid
*
Posts: 1
Joined: 09 Jan 2012, 20:15

Re: Selfbondage Motion Detector 1.1

Post by pettimaid »

Hi.
This is my first post and first of all i want to thank you for a great piece of software.
I have used this many times and think it is fantastic fun.

I have one feature request that i wanted to post and that is can we have a safe time that will relese you no mater what happens. I think it could be set that is at least 2 times the max set time and selectable upto more multiples. This would be helpfull if you find that the settings selected are a bit sensitive and the timer is ever increasing.

Also could I request a Reverse version that punishes you if you dont move so that you have to keep moveing (Hard to do in some situations and could be fun)

Anyway thanks for all the hard work that has gone into this.

PM.
User avatar
qwerty212
Moderator
Posts: 1064
Joined: 23 Mar 2010, 20:24

Re: Selfbondage Motion Detector 1.1

Post by qwerty212 »

pettimaid wrote:Hi.
This is my first post and first of all i want to thank you for a great piece of software.
I have used this many times and think it is fantastic fun.
Cheers!
pettimaid wrote: I have one feature request that i wanted to post and that is can we have a safe time that will relese you no mater what happens. I think it could be set that is at least 2 times the max set time and selectable upto more multiples. This would be helpfull if you find that the settings selected are a bit sensitive and the timer is ever increasing.
Use this Exit.exe before starting your session:
Image
http://www.mediafire.com/download.php?59bae17bwc13w5r

Just edit the ini file included in the zip to set the max number of minutes that you want to wait until the CD Tray will be opened.

Then run the exe and it will open the CD Tray of your laptop to let you know that the program has recognized your drive.

Close it and after 5 seconds it will open the tray again. Close it and the program will open the tray when the desired amount of time has passed (no matter how the motion detection session is going on).

If you don't have the ini file it will open the tray after 5 minutes.

DO NOT USE IT AS EXIT.EXE in the Selfbondage Motion Detector as desired release script!!! You'll have to choose your standard release exit.exe!!!

The source code if someone is interested:

Code: Select all

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=Project6.ico
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_Language=1027
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <Misc.au3>

Global $Time = IniRead(".\Settings.ini", "Settings", "ReleaseDelay", "5")
Global $Time3 = $Time * 60000
Global $var = DriveGetDrive("CDROM")

Sleep(2000)
Beep(1000, 1000)
Sleep(20)
CDTray($var[1], "open")
Sleep(5000)
Beep(1000, 1000)
CDTray($var[1], "open")
Sleep($Time3)
CDTray($var[1], "open")
Sleep(2000)
CDTray($var[1], "open")
Exit
pettimaid wrote: Also could I request a Reverse version that punishes you if you dont move so that you have to keep moveing (Hard to do in some situations and could be fun)

Anyway thanks for all the hard work that has gone into this.

PM.
Sounds interesting. Once I though in a program that forces you to make noize to do not be teased or to get free (imagine that you set a very high level of required sound... you'll have to scream to do not freeze the counter while you are gagged or you'll have to hit something with your tied legs...), but unfortunately I'm retired :)
missasslut
*
Posts: 3
Joined: 28 Dec 2011, 18:44

Re: Selfbondage Motion Detector 1.1

Post by missasslut »

That would be a very interesting twist. Having to scream and struggle (mic and cam) for an hour before it unlocks. Maybe even have a setting that that timer will go back up if you are too still/quiet for too long. Also I could be wrong but i dont think it would be that hard to change it from increasing time with movement on cam to decreasing it.
User avatar
qwerty212
Moderator
Posts: 1064
Joined: 23 Mar 2010, 20:24

Re: Selfbondage Motion Detector 1.1

Post by qwerty212 »

missasslut wrote:That would be a very interesting twist. Having to scream and struggle (mic and cam) for an hour before it unlocks. Maybe even have a setting that that timer will go back up if you are too still/quiet for too long. Also I could be wrong but i dont think it would be that hard to change it from increasing time with movement on cam to decreasing it.
That's what I thought
andreaneal
*
Posts: 1
Joined: 19 Jan 2012, 23:36

Re: Software Development Usergroup

Post by andreaneal »

hi maybe do you have the code for motion detecor in visual basic?
i had some new ideas? for example, the programme gives instructions what you have to do, move for 2 minutes or don't move, be quiet for 5 minutes or be loud.......
what do you think about? :D
User avatar
qwerty212
Moderator
Posts: 1064
Joined: 23 Mar 2010, 20:24

Re: Selfbondage Motion Detector 1.1

Post by qwerty212 »

Sorry, I never have touched Visual Basic. I work with a language program that comes form Visual Basic: Autoit.

Here it is the source code for the Selfbondage Motion detector 1.1 (needs to be tidy):

Code: Select all

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=ico.ico
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_Comment=Feel free to send feedback to qwertybcn121@gmail.com
#AutoIt3Wrapper_Res_Description=Program to play on selfbondage sessions. To get more info visit http://forum.boundanna.net/board/viewforum.php?f=28
#AutoIt3Wrapper_Res_File_Add=start.bmp, rt_bitmap, start
#AutoIt3Wrapper_Res_File_Add=1minute.bmp, rt_bitmap, 1minute
#AutoIt3Wrapper_Res_File_Add=moretime.bmp, rt_bitmap, moretime
#AutoIt3Wrapper_Res_File_Add=dices.gif, rt_rcdata, TEST_GIF_17
#AutoIt3Wrapper_Res_File_Add=micro.gif, rt_rcdata, TEST_GIF_5
#AutoIt3Wrapper_Res_File_Add=stop.gif, rt_rcdata, TEST_GIF_50
#AutoIt3Wrapper_Res_File_Add=donate.gif, rt_rcdata, TEST_GIF_0
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****


#include <GUIConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StructureConstants.au3>
#include <GUIScrollBars.au3>
#include <ScrollBarConstants.au3>
#include <IE.au3>
#include <ScreenCapture.au3>
#include <GDIPlus.au3>
#include <Misc.au3>
#include <date.au3>
#include <resources.au3>
#include <audio.au3>
#include <string.au3>
#include <EditConstants.au3>
#include <Array.au3>
#include <GuiComboBox.au3>
#include <ComboConstants.au3>
#include <StaticConstants.au3>
#include <SendMessage.au3>
#include <ProgressConstants.au3>
#include <ButtonConstants.au3>
#include <WinAPI.au3>
#include <ClipBoard.au3>
#include <UpdownConstants.au3>
#include <Process.au3>
#include <timers.au3>
#include <IE.au3>
;resolucion minima 1024x720


Global Const $WS_EX_COMPOSITION = 0x02000000
Global $guijack
Global $guisound
Global $XX = 0
Global $XXX = 0
Global $YY = 0
$count = 0
$count4 = 0
$count3 = 0
$count30 = 0
$count300 = 0
Global $count5 = 0
Global $MaxTime
Global $message5
Global $YYY = 0
Global $MaxTime200
Global $no
Global $coord
Global $hColourBorder
Global $n
Global $sumas
Global $hColorFill
Global $sumarporsonido
Global $sonidoporcentage
Global $CHECKBOX2000
Global $CHECKBOX2
Global $yresultado4
Global $yresultado3
Global $yresultado2
Global $yresultado1
Global $yresultado
Global $count30 = 0
Global $count3 = 0
Global $pepe
Global $count300 = 0
Global $coord1
Global $coord2
Global $coord3
Global $coord4
Global $medida
Global $valorinput1
Global $ProgressBar100
Global $valorinput2
Global $input7
Global $minVal = 0, $maxVal = 6000
Global $microfono
Global $percent
Global $VolumeLabel
Global $VolumeLabel2
Global $ProgressBar
Global $ProgressBar2
Global $ExitButton
Global $Result
Global $msg
Global $TBS_NOTICKS = 0x0010
Global $lpszCommand
Global $sonidoporcentage
Global $TBS_REVERSED = 0x0020
Global $pedro
Global $A
Global $input3
Global $XS_n
Global $T
Global $Volume
Global $TT
Global $count = 1
Global $count4 = 0
Global $default
Global $default0
Global $default1
Global $default2
Global $cuenta = 0
Global $cuenta2 = 0
Global $WW
Global $WW1
Global $WW2
Global $WW0
Global $FileName
Global $FileName2
Global $FileName0
Global $aRetArray
Global $oIE = ObjCreate("Shell.Explorer.2")
Global $z = 10
Global $y = 10
$WW = $default
$WW2 = $default2
$WW1 = $default1
$WW0 = $default0
$FileName = StringRegExpReplace($WW, "^.*\\", "")
$FileName1 = StringRegExpReplace($WW1, "^.*\\", "")
$FileName2 = StringRegExpReplace($WW2, "^.*\\", "")
$FileName0 = StringRegExpReplace($WW0, "^.*\\", "")
Global $hBitmap, $hImage, $hGraphic, $hFamily, $hFont, $tLayout, $hFormat, $aInfo, $hBrush1, $hBrush2, $iWidth, $iHeight, $hPen



If @DesktopHeight < 720 Or @DesktopWidth < 1024 Then
	MsgBox(48, "WARNING!", "To use this program you must" & @CRLF & "have a screen resolution" & @CRLF & "equal or better than 1024x720", 10)
	Exit
EndIf

If Not FileExists(@ScriptDir & "\Webcam\Webcam.html") Then
	MsgBox(48, "WARNING!", "To use this program you must" & @CRLF & "have a folder named 'Webcam'" & @CRLF & "with the files needed to show the webcam stream" & @CRLF & "in the same folder from where you're running" & @CRLF & "the Selfbondage Motion Detector" & @CRLF & "" & @CRLF & "If you have not this folder" & @CRLF & "please download the program again", 20)
	Exit
EndIf

Global $hForm, $msg, $Label, $Button, $Data, $Color = 0x50CA1B

Func _BatteryQueryEx()
	Local $SystemPower, $ret, $array[5]

	; Setup $array and $SystemPower
	$SystemPower = DllStructCreate("ubyte;ubyte;ubyte;ubyte;ulong;ulong")
	If @error Then
		SetError(-1)
		Return $array
	EndIf

	; make the DllCall
	$ret = DllCall("kernel32.dll", "int", "GetSystemPowerStatus", "ptr", DllStructGetPtr($SystemPower))
	If @error Then;DllCall Failed
		SetError(-2)
		$SystemPower = 0
		Return $array
	EndIf

	If Not $ret[0] Then; GetSystemPowerStatus Failed
		SetError(-3)
		$SystemPower = 0
		Return $array
	EndIf

	; Fill the array
	$array[0] = DllStructGetData($SystemPower, 1);    AC
	$array[1] = DllStructGetData($SystemPower, 2);    Battery Charge
	$array[2] = DllStructGetData($SystemPower, 3);    Battery Charge %
	$array[3] = DllStructGetData($SystemPower, 5);    Sec Battery Left
	$array[4] = DllStructGetData($SystemPower, 6);    Sec Battery Capacity @ Full Charge

	If $array[2] < 20 Then
		MsgBox(48, "WARNING!", "Finishing session due to low battery level", 10)
		Sleep(10)
		On_Exit()
		Exit
	EndIf

	; free the struct
	$SystemPower = 0

	Return $array
EndFunc   ;==>_BatteryQueryEx

$WM_QUERYENDSESSION = 0x11
GUIRegisterMsg($WM_QUERYENDSESSION, "Cancel_Shutdown")

Func _ShutdownBlockReasonCreate($hwnd, $wStr)
	; http://msdn.microsoft.com/en-us/library/ms...28VS.85%29.aspx
	; Prog@ndy
	Local $aResult = DllCall("User32.dll", "int", "ShutdownBlockReasonCreate", "hwnd", $hwnd, "wstr", $wStr)
	If @error Then Return SetError(1, 0, 0)
	Return $aResult[0]
EndFunc   ;==>_ShutdownBlockReasonCreate

Func _ShutdownBlockReasonDestroy($hwnd)
	Local $aResult = DllCall("User32.dll", "int", "ShutdownBlockReasonDestroy", "hwnd", $hwnd)
	If @error Then Return SetError(1, 0, 0)
	Return $aResult[0]
EndFunc   ;==>_ShutdownBlockReasonDestroy

Func Cancel_Shutdown($hWndGUI, $MsgID, $WParam, $LParam)
	; This HAS to be here to capture the endsession...
	AdlibRegister("Cancel_ShutdownResolver", 50)
	Return False
EndFunc   ;==>Cancel_Shutdown

Func Cancel_ShutdownResolver()
	Local $iOpt = Opt("WinTitleMatchMode", 4), $hwnd = WinGetHandle("[CLASS:BlockedShutdownResolver]")
	Opt("WinTitleMatchMode", $iOpt)
	If $hwnd Then
		If @OSVersion = "WIN_7" Then ControlClick($hwnd, "", "[CLASS:Button; INSTANCE:1]")
		If @OSVersion <> "WIN_7" Then ControlClick($hwnd, "", "[CLASS:Button; INSTANCE:2]")
		AdlibUnRegister("Cancel_ShutdownResolver")
	EndIf
EndFunc   ;==>Cancel_ShutdownResolver

$n = 0
$count30 = 0
$count3 = 0
$count300 = 0

Local $iPrevMode = AutoItSetOption("WinTitleMatchMode", 4)
Local $aTaskBar_Pos = WinGetPos("classname=Shell_TrayWnd")
AutoItSetOption("WinTitleMatchMode", $iPrevMode)
$altogui4 = @DesktopHeight - $aTaskBar_Pos[3] - 15
$anchogui4 = @DesktopWidth

$algoritmo = 10
$Main = GUICreate("Selfbondage Motion Detector 1.1", @DesktopWidth, $altogui4, -1, -1)


GUICtrlCreateGroup("SESSION SETUP", @DesktopWidth - 358, 2, 365, 133)
GUICtrlCreateLabel("Time in MINUTES until the release method will be activated: ", @DesktopWidth - 350, 18)
GUICtrlSetFont(9, 400, 4, "MS Sans Serif")
GUICtrlSetColor(-1, 0x0000AE)
;~ time input box
$input = GUICtrlCreateInput("240", @DesktopWidth - 60, 19 - 4, 55, 20, $ES_NUMBER)
GUICtrlSetBkColor(-1, 0xaeee00)
$updown = GUICtrlCreateUpdown($input)
GUICtrlSetLimit($updown, 6000, 0)
;~ the program asks if use the random time function
$CHECKBOX2 = GUICtrlCreateCheckbox("Random time play? (If so, type the max. and the min. time)", @DesktopWidth - 350, 60, 290, 20)
GUICtrlSetState(0, $GUI_CHECKED)

$inputrandom = GUICtrlCreateInput("120", @DesktopWidth - 60, 60, 55, 20, $ES_NUMBER)
GUICtrlSetBkColor(-1, 0xffcc33)
$updownrandom = GUICtrlCreateUpdown($inputrandom)
GUICtrlSetLimit($updownrandom, 6000, 0)
;~ the program asks if play a beep  during the countdown
$CHECKBOX = GUICtrlCreateCheckbox("Beep during the countdown?", @DesktopWidth - 350, 32, 200, 28)
GUICtrlSetState(0, $GUI_CHECKED)

GUICtrlCreateLabel("Time that you need to tie yourself before the real session starts: ", @DesktopWidth - 350, 95 + 15)
GUICtrlSetFont(9, 400, 4, "MS Sans Serif")
GUICtrlSetColor(-1, 0x0000AE)
;~ time input box
$input23 = GUICtrlCreateInput("10", @DesktopWidth - 50, 92 + 15, 45, 20, $ES_NUMBER)
GUICtrlSetBkColor(-1, 0xaeee00)
$updown23 = GUICtrlCreateUpdown($input23)
GUICtrlSetLimit($updown23, 99, 0)

$CHECKBOX2000 = GUICtrlCreateCheckbox("Show remaining time during the session?", @DesktopWidth - 350, 84, 290, 20)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlCreateGroup("", -99, -99, 1, 1)

GUICtrlCreateLabel("MINUTES that will be added to the countdown when you move: ", @DesktopWidth - 355, 138 + 13)
GUICtrlSetColor(-1, 0xff3300)
$input1 = GUICtrlCreateInput("1", @DesktopWidth - 40, 148, 35, 20, $ES_NUMBER)
GUICtrlSetBkColor(-1, 0xff3300)
$updown1 = GUICtrlCreateUpdown($input1)
GUICtrlSetLimit($updown1, 9, 0)

GUICtrlCreateLabel("Movements allowed before teasing and adding time to countdown: ", @DesktopWidth - 355, 167 + 10)
GUICtrlSetColor(-1, 0xff3300)
$input104 = GUICtrlCreateInput("1", @DesktopWidth - 40, 159 + 16, 35, 20, $ES_NUMBER)
GUICtrlSetBkColor(-1, 0xffcc33)
$updown104 = GUICtrlCreateUpdown($input104)
GUICtrlSetLimit($updown104, 9, 0)

$savelabel2 = GUICtrlCreateLabel("Execute as teasing method when motion is detected", @DesktopWidth - 354, 205 - 5)
$default2 = ""
$WW2 = $default2
$INPUT132 = GUICtrlCreateInput($default2, @DesktopWidth - 355, 313 - 93, 244, 20)
GUICtrlSetBkColor(-1, 0xff3300)
$savebtn2 = GUICtrlCreateButton("Change", @DesktopWidth - 108, 310 - 93, 50, 25)
$testbtnteasing = GUICtrlCreateButton("Test", @DesktopWidth - 55, 310 - 93, 50, 25)

$CHECKBOX4 = GUICtrlCreateCheckbox("Play with Random Teasing? If so, input the % of probabilities", @DesktopWidth - 355, 188 + 64, 299, 20)
GUICtrlSetState(0, $GUI_CHECKED)
$inputrandompunishment = GUICtrlCreateInput("3", @DesktopWidth - 50, 188 + 64, 42, 20, $ES_NUMBER)
GUICtrlSetBkColor(-1, 0xffee00)
$updown120200 = GUICtrlCreateUpdown($inputrandompunishment)
GUICtrlSetLimit($updown120200, 25, 0)


GUICtrlCreateLabel("Execute as random teasing method", @DesktopWidth - 354, 357 - 80)
$default0 = ""
$WW0 = $default0
$INPUT1300 = GUICtrlCreateInput($default0, @DesktopWidth - 355, 380 - 85, 244, 20)
GUICtrlSetBkColor(-1, 0xffee00)
$savebtn0 = GUICtrlCreateButton("Change", @DesktopWidth - 108, 377 - 85, 50, 25)
$testbtn0 = GUICtrlCreateButton("Test", @DesktopWidth - 55, 377 - 85, 50, 25)

GUICtrlCreateLabel("%", @DesktopWidth - 15, 403 - 15)
$VolumeLabel2 = GUICtrlCreateInput("", @DesktopWidth - 50, 400 - 15, 30, 20, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
$ProgressBar = GUICtrlCreateProgress(@DesktopWidth - 350, 400 - 15, 285, 20, $PBS_SMOOTH)
$CHECKBOX3 = GUICtrlCreateCheckbox("Play with Sound Teasing? (Microphone required)", @DesktopWidth - 355, 330, 375, 20)
GUICtrlSetState(0, $GUI_CHECKED)
$slide1 = GUICtrlCreateSlider(@DesktopWidth - 360, 355, 305, 30, $TBS_NOTICKS)
GUICtrlSetLimit($slide1, 100, 1)
GUICtrlSetData($slide1, 100)
$input3 = GUICtrlCreateInput("", @DesktopWidth - 50, 361 - 5, 32, 20, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
GUICtrlCreateLabel("%", @DesktopWidth - 14, 360)

GUICtrlCreateLabel("Execute as teasing method when sound is detected", @DesktopWidth - 354, 352 + 60)
$default1 = ""
$WW1 = $default1
$INPUT130 = GUICtrlCreateInput($default1, @DesktopWidth - 355, 380 + 50, 244, 20)
GUICtrlSetBkColor(-1, 0xffcc33)
$savebtn1 = GUICtrlCreateButton("Change", @DesktopWidth - 108, 377 + 50, 50, 25)
$testbtn1 = GUICtrlCreateButton("Test", @DesktopWidth - 55, 377 + 50, 50, 25)

GUICtrlCreateLabel("MINUTES that will be added to countdown when you make noise: ", @DesktopWidth - 355, 367 + 95)
GUICtrlSetColor(-1, 0xff3300)
$input10 = GUICtrlCreateInput("1", @DesktopWidth - 40, 364 + 95, 35, 20, $ES_NUMBER)
GUICtrlSetBkColor(-1, 0xffcc33)
$updown10 = GUICtrlCreateUpdown($input10)
GUICtrlSetLimit($updown10, 9, 0)

;~ link with the email
$c_Hyperlink_FunkEu = GUICtrlCreateLabel("Contact", @DesktopWidth - 42, $altogui4 - 30)
GUICtrlSetFont(-1, 9, 400, 4, "MS Sans Serif")
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetCursor(-1, 0)
GUIRegisterMsg($WM_COMMAND, "MY_WM_COMMAND")

$asegurarse = 0

GUICtrlCreateGroup("RELEASE METHODS SETUP", @DesktopWidth - 358, 490, 365, 100)
$radio1 = GUICtrlCreateRadio("Execute a program as release method", @DesktopWidth - 350, 407 + 100)
$default = ""
$WW = $default
$INPUT13 = GUICtrlCreateInput($default, @DesktopWidth - 350, 430 + 100, 294, 20)
GUICtrlSetBkColor(-1, 0xaeee00)
$savebtn = GUICtrlCreateButton("Change", @DesktopWidth - 55, 407 + 120, 50, 25)

Local $a_DriveList = DriveGetDrive('CDROM'), $s_DriveList
For $i_aDriveList = 1 To UBound($a_DriveList) - 1
	$s_DriveList &= StringUpper($a_DriveList[$i_aDriveList]) & '|'
Next
Local $cboDrive = GUICtrlCreateCombo("", @DesktopWidth - 150, 440 + 120, 40, 30, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL))
GUICtrlSetData(-1, $s_DriveList)
_GUICtrlComboBox_SetCurSel($cboDrive, 0)

$radio2 = GUICtrlCreateRadio("Open CD Tray as release method:", @DesktopWidth - 350, 535 + 25)
GUICtrlSetFont(9, 400, 4, "MS Sans Serif")
GUICtrlSetColor(-1, 0x0000AE)
GUICtrlSetState($radio2, $GUI_CHECKED)
$testbtn = GUICtrlCreateButton("Test Release", @DesktopWidth - 95, 505 + 55, 90, 25)
$U = GUICtrlRead($cboDrive)
GUICtrlCreateGroup("", -99, -99, 1, 1)


$btnPayMe = GUICtrlCreateButton("", @DesktopWidth - 154, $altogui4 - 70, 106, 65)
_ResourceSetImageToCtrl($btnPayMe, "TEST_GIF_0")


$start = GUICtrlCreateButton("", @DesktopWidth - 355, $altogui4 - 70, 180, 65, $BS_BITMAP)
_ResourceSetImageToCtrl($start, "start", $RT_BITMAP)

Func MY_WM_COMMAND($hwnd, $msg, $WParam, $LParam)
	Local $iIDFrom = BitAND($WParam, 0xFFFF);LoWord
	Switch $iIDFrom
		Case $c_Hyperlink_FunkEu
			ShellExecute("mailto:qwertybcn121@gmail.com")
	EndSwitch
EndFunc   ;==>MY_WM_COMMAND

$GUIActiveX = GUICtrlCreateObj($oIE, 0, 0, @DesktopWidth - 360, $altogui4)
Sleep(20)
$oIE.navigate(@ScriptDir & "\Webcam\Webcam.html")
Sleep(20)


Func XPStyleToggle($OnOff = 1)
	If Not StringInStr(@OSType, "WIN32_NT") Then Return 0
	If $OnOff Then
		$XS_n = DllCall("uxtheme.dll", "int", "GetThemeAppProperties")
		DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 0)
		Return 1
	ElseIf IsArray($XS_n) Then
		DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", $XS_n[0])
		$XS_n = ""
		Return 1
	EndIf
	Return 0
EndFunc   ;==>XPStyleToggle

HotKeySet("{ESC}", "On_Exit2")

Dim $lpszDevice ; Identifier of an MCI device or device driver.
Dim $lpszDeviceID ; Identifier of an MCI device.
; This identifier or alias is assigned when the device is opened.
Dim $lpszOpenFlags ; Flag that identifies what to initialize.
Dim $lpszRequest ; Flag for requesting status information. See table on the web page mentioned above.

; Source: http://msdn.microsoft.com/library/en-us/multimed/htm/_win32_the_wait_notify_and_test_flags.asp

Dim $lpszFlags ; Can be "wait", "notify", or both.
; For digital-video and VCR devices, "test" can also be specified.
Dim $lpszCommand ; mciCommand string to send.
Dim $lpszReturnString ; information will be returned into this string. Reserve enough space!
Dim $cchReturn ; Length of returnstring
Dim $mciError ; mci error code

; STEP 1: Open the device we want to monitor

; Source: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_open.asp

;$lpszDevice = "waveaudio"

$lpszDevice = "new type waveaudio"

$lpszOpenFlags = "alias mywave" ; For all possible flags, see table on web page mentioned above.

$lpszFlags = ""

$lpszCommand = StringFormat("open %s %s %s", $lpszDevice, $lpszOpenFlags, $lpszFlags);

$lpszReturnString = _StringRepeat(" ", 100) ; Information will return in this string

$cchReturn = StringLen($lpszReturnString)
; Size, in characters, of the return buffer specified
; by the lpszReturnString parameter.


$mciError = _mciSendString($lpszCommand, $lpszReturnString, $cchReturn, 0);


If $mciError[0] <> 0 Then _mciShowError($mciError[0])

; STEP 2: Obtain the audio levels

; Source: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_status_mm.asp

$lpszDeviceID = "mywave"

$lpszRequest = "level" ; Returns the current PCM audio sample value.
; See table on web page mentioned above.

$lpszFlags = ""

$lpszCommand = StringFormat("status %s %s %s", $lpszDeviceID, $lpszRequest, $lpszFlags);

;mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

Func _probamossonido()
	$mciError = _mciSendString($lpszCommand, $lpszReturnString, $cchReturn, 0)
	If $mciError[0] <> 0 Then _mciShowError($mciError[0])
	$pedro = ($mciError[2]) * 0.78125

	If $pedro > $T Then
		Beep(600, 1200)
	EndIf
EndFunc   ;==>_probamossonido

Func _Manual()
	GUICtrlSetData($input3, GUICtrlRead($slide1))
EndFunc   ;==>_Manual

; USER DEFINED FUNCTIONS

Func _mciSendString($lpszCommand, $lpszReturnString, $cchReturn, $hwndCallback)

	;VB-style declaration:
	;
	;Declare Function mciSendString
	;	Lib "winmm.dll"
	;	Alias "mciSendStringA"
	;	(ByVal lpstrCommand As String,
	;	ByVal lpstrReturnString As String,
	;	ByVal uReturnLength As Long,
	;	ByVal hwndCallback As Long)
	;	As Long


	; mciSendString returns information in the lpszReturnString parameter of mciSendString.
	; The information is dependent on the request type.


	Return DllCall("winmm.dll", "long", "mciSendStringA", "str", $lpszCommand, "str", $lpszReturnString, "long", $cchReturn, "long", 0)

EndFunc   ;==>_mciSendString


Func _mciShowError($mciError)

	; To show a "readable" mci error.
	;
	;VB-style declaration:
	;
	;Declare Function mciGetErrorString
	;	Lib "winmm.dll"
	;	Alias "mciGetErrorStringA"
	;	(ByVal dwError As Long,
	;	ByVal lpstrBuffer As String,
	;	ByVal uLength As Long)
	;	As Long

	Dim $errStr ; Error message


	$errStr = _StringRepeat(" ", 100) ; Reserve some space for the error message


	$Result = DllCall("winmm.dll", "long", "mciGetErrorStringA", "long", $mciError, "string", $errStr, "long", StringLen($errStr))

EndFunc   ;==>_mciShowError





$gui18900 = GUICreate("mover", @DesktopWidth - 370, 64, 2, $altogui4 - 50, $WS_POPUPWINDOW & $WS_EX_COMPOSITION, Default, WinGetHandle(AutoItWinGetTitle()))
GUISetState(@SW_HIDE, $gui18900)
GUISetBkColor(0x000000, $gui18900)
WinSetOnTop($gui18900, "mover", 1)
XPStyleToggle(1)
$ProgressBar20 = GUICtrlCreateProgress(78, 3, @DesktopWidth - 450, 57, $PBS_SMOOTH)
GUICtrlSetColor($ProgressBar20, 0xffee00)
$Pic40 = GUICtrlCreatePic("", 2, 2, 75, 65)
_ResourceSetImageToCtrl($Pic40, "TEST_GIF_50")
XPStyleToggle(0)


$guijack = GUICreate("JACKPOT!!!", 360, 230, 0, 0)
GUISetState(@SW_HIDE, $guijack)
GUISetBkColor(0x000000, $guijack)
WinSetOnTop($guijack, "JACKPOT!!!", 1)
$Pic1900 = GUICtrlCreatePic("", 0, 0, 350, 207)
_ResourceSetImageToCtrl($Pic1900, "TEST_GIF_17")



GUISetState(@SW_SHOW, $Main)

GUISwitch($Main)
;mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

While 1
	$msg = GUIGetMsg()
	_BatteryQueryEx()

	_Manual()
	$T = GUICtrlRead($input3)

	$mciError = _mciSendString($lpszCommand, $lpszReturnString, $cchReturn, 0);

	If GUICtrlRead($CHECKBOX3) = 1 Then
		$STATE3 = "CHECK"
	Else
		$STATE3 = "UNCHECK"
	EndIf

	If GUICtrlRead($CHECKBOX2000) = 1 Then
		$STATE2000 = "CHECK"
	Else
		$STATE2000 = "UNCHECK"
	EndIf


	If GUICtrlRead($CHECKBOX2) = 1 Then
		$STATE2 = "CHECK"
	Else
		$STATE2 = "UNCHECK"
	EndIf


	If GUICtrlRead($CHECKBOX) = 1 Then
		$STATE = "CHECK"
	Else
		$STATE = "UNCHECK"
	EndIf

	If GUICtrlRead($CHECKBOX4) = 1 Then
		$STATE4 = "CHECK"
	Else
		$STATE4 = "UNCHECK"
	EndIf


	If $STATE3 = "UNCHECK" Then
		GUICtrlSetData($ProgressBar, 0)
	EndIf

	If $STATE3 = "UNCHECK" Then
		GUICtrlSetData($VolumeLabel2, "" & 0)
	EndIf

	If $STATE3 = "CHECK" Then
		GUICtrlSetData($ProgressBar, $mciError[2])
		_probamossonido()
	EndIf

	If $STATE3 = "CHECK" Then
		GUICtrlSetData($VolumeLabel2, "" & $A)
	EndIf
	$T = GUICtrlRead($input3)
	If $mciError[0] <> 0 Then _mciShowError($mciError[0])



;~ le decimos de deonde tiene que coger los valores el nivel del micro
	GUICtrlSetData($VolumeLabel, "" & $mciError[2])
	$pedro = ($mciError[2]) * 0.78125
	$A = Round($pedro, 0)

	If GUICtrlRead($CHECKBOX2) = 1 Then
		$MaxTime = GUICtrlRead($input) * 60 ;reads the time in the input
	Else
		$MaxTime = Random(GUICtrlRead($inputrandom) * 60, GUICtrlRead($input) * 60, 1)
	EndIf

	Select
		Case $msg = $GUI_EVENT_CLOSE
			$ok = MsgBox(20, "CLOSE", "DO YOU WANT TO EXIT?")
			If $ok = 6 Then Exit



		Case $msg = $savebtn
			Global $asegurarse = 0
			$destino = FileOpenDialog("Choose what script do you want to run as release method.", @ScriptDir, "Script Files (*.exe)")
			If @error Then
				GUICtrlSetData($INPUT13, $default)
				$WW = $default
			Else
				GUICtrlSetData($INPUT13, $destino)
				$WW = $destino
			EndIf

		Case $msg = $savebtn0
			$destino0 = FileOpenDialog("Choose what script do you want to run as teasing method for random.", @ScriptDir, "Script Files (*.exe)")
			If @error Then
				GUICtrlSetData($INPUT1300, $default0)
				$WW0 = $default0
			Else
				GUICtrlSetData($INPUT1300, $destino0)
				$WW0 = $destino0
			EndIf

		Case $msg = $savebtn1
			$destino1 = FileOpenDialog("Choose what script do you want to run as teasing method for sound.", @ScriptDir, "Script Files (*.exe)")
			If @error Then
				GUICtrlSetData($INPUT130, $default1)
				$WW1 = $default1
			Else
				GUICtrlSetData($INPUT130, $destino1)
				$WW1 = $destino1
			EndIf

		Case $msg = $savebtn2
			$destino2 = FileOpenDialog("Choose what script do you want to run as teasing method for motion.", @ScriptDir, "Script Files (*.exe)")
			If @error Then
				GUICtrlSetData($INPUT132, $default2)
				$WW2 = $default2
			Else
				GUICtrlSetData($INPUT132, $destino2)
				$WW2 = $destino2
			EndIf

		Case $msg = $testbtn
			On_Exit()
			Global $asegurarse = 1

		Case $msg = $testbtnteasing
			castigomotiontest()

		Case $msg = $testbtn1
			castigosoundtest()

		Case $msg = $testbtn0
			castigorandomtest()

		Case $msg = $btnPayMe
			ShellExecute("https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&currency_code=USD&hosted_button_id=QKEQWHDTDSBZ4");


		Case $msg = $start




			If GUICtrlRead($inputrandompunishment) > 25 And $STATE4 = "CHECK" Then
				GUICtrlSetData($inputrandompunishment, 25)
				MsgBox(48, "WARNING!", "You have choose that you want random teasing" & @CRLF & "with a very high % of probabilities" & @CRLF & "of being teased randomly" & @CRLF & " " & @CRLF & "The maximun % alowed is 25%", 10)
			EndIf

			If GUICtrlRead($input1) > 9 Then
				MsgBox(48, "WARNING!", "Due to safety limitations" & @CRLF & "you can only setup up to 9 minutes" & @CRLF & "of time addition to the countdown" & @CRLF & "when motion is detected" & @CRLF & " " & @CRLF & " " & @CRLF & "For this session time added" & @CRLF & "will be set at 9 minutes", 10)
				GUICtrlSetData($input1, 9)
			EndIf

			If GUICtrlRead($input10) > 9 Then
				MsgBox(48, "WARNING!", "Due to safety limitations" & @CRLF & "you can only setup up to 9 minutes" & @CRLF & "of time addition to the countdown" & @CRLF & "when sound is detected" & @CRLF & " " & @CRLF & " " & @CRLF & "For this session time added" & @CRLF & "will be set at 9 minutes", 10)
				GUICtrlSetData($input10, 9)
			EndIf

			If GUICtrlRead($input104) > 9 Then
				MsgBox(48, "WARNING!", "You can only setup up to 9 movements" & @CRLF & "before the program teases you" & @CRLF & "and adds desired time to the countdown" & @CRLF & " " & @CRLF & " " & @CRLF & "For this session movement allowed" & @CRLF & "will be set at 9 movements", 10)
				GUICtrlSetData($input104, 9)
			EndIf

			If GUICtrlRead($inputrandompunishment) < 1 Then
				GUICtrlSetData($inputrandompunishment, 1)
			EndIf

			If GUICtrlRead($input104) = 0 Then
				$guisound = GUICreate("audio", @DesktopWidth - 370, 64, 2, $altogui4 - 50, $WS_POPUPWINDOW & $WS_EX_COMPOSITION, Default, WinGetHandle(AutoItWinGetTitle()))
				GUISetState(@SW_HIDE, $guisound)
				WinSetOnTop($guisound, "audio", 1)
				GUISetBkColor(0x000000, $guisound)
				$ProgressBar2 = GUICtrlCreateProgress(78, 3, @DesktopWidth - 450, 57, $PBS_SMOOTH)
				$Pic4 = GUICtrlCreatePic("", 2, 2, 75, 65)
				_ResourceSetImageToCtrl($Pic4, "TEST_GIF_5")

			Else
				$guisound = GUICreate("audio", @DesktopWidth - 370, 64, 2, $altogui4 - 115, $WS_POPUPWINDOW & $WS_EX_COMPOSITION, Default, WinGetHandle(AutoItWinGetTitle()))
				GUISetState(@SW_HIDE, $guisound)
				GUISetBkColor(0x000000, $guisound)
				WinSetOnTop($guisound, "audio", 1)
				$ProgressBar2 = GUICtrlCreateProgress(78, 3, @DesktopWidth - 450, 57, $PBS_SMOOTH)
				$Pic4 = GUICtrlCreatePic("", 2, 2, 75, 65)
				_ResourceSetImageToCtrl($Pic4, "TEST_GIF_5")


			EndIf

			If $STATE2 = "UNCHECK" Then
				$MaxTime = GUICtrlRead($input) * 60 ;reads the time in the input
			Else
				$MaxTime = Random(GUICtrlRead($inputrandom) * 60, GUICtrlRead($input) * 60, 1)
				$pepe = $MaxTime
			EndIf


			If $asegurarse = 0 Then
				MsgBox(48, "RELEASE METHOD HAS NOT BEEN TESTED", "YOU MUST TEST THAT THE DESIRED" & @CRLF & "RELEASE METHOD WORKS AS EXPECTED" & @CRLF & "" & @CRLF & "SESSION WILL NOT START UNTIL YOU CHECK IT" & @CRLF & "" & @CRLF & "If you want more infomation" & @CRLF & "please visit www.boundanna.com")
;~ 			If the input of time is lower than 200 it will read some of the inputs and will close the gui to let the coundown work
			Else


				Sleep(20)
				$no = GUICtrlRead($inputrandompunishment)
				Sleep(20)
				$y = GUICtrlRead($input) * 60
				$yprogre = GUICtrlRead($input)
				GUICtrlRead($CHECKBOX2)
				$MaxTime0 = GUICtrlRead($input23) * 60
				$sumarporsonido = GUICtrlRead($input10) * 60
				cuentaatras0()

			EndIf


	EndSelect

WEnd






Global $message500 = ""

Func cuentaatras0()
	Global $MaxTime0 = GUICtrlRead($input23) * 60
	Sleep(100)
	; the countdown starts. Y value will be the waiting time in seconds
	$gui600 = GUICreate("Press Escape to close the program ", 360, 300, @DesktopWidth - 360, 0)
	WinSetOnTop($gui600, "Press Escape to close the program ", 1)

	$espabilar = GUICtrlCreateButton("", 15, 170, 160, 80)
	_ResourceSetImageToCtrl($espabilar, "1minute", $RT_BITMAP)
	$lento = GUICtrlCreateButton("", 185, 170, 160, 80)
	_ResourceSetImageToCtrl($lento, "moretime", $RT_BITMAP)

	Global $message500 = ""
	GUICtrlCreateLabel($message500, 0, 0, 360, 120, $SS_CENTER)
	GUICtrlSetFont(-1, 90, 700, 0, "MS Sans Serif")
	GUISetState(@SW_SHOW, $gui600)
	GUISetBkColor(0xFFCC66, $gui600)
	_Timer_SetTimer($gui600, 1000, "Count0")


	While $MaxTime0 <> 0
		$msg = GUIGetMsg()
		$message500 = StringFormat("%02d:%02d\n", Mod(Floor($MaxTime0 / 60), 60), Mod($MaxTime0, 60))


		_BatteryQueryEx()

		Select
			Case $msg = $espabilar
				espabilarse()

			Case $msg = $lento
				voylento()

			Case $msg = $GUI_EVENT_CLOSE
				Exit

			Case $MaxTime0 = 0
				GUIDelete($gui600)
				Sleep(150)
				cuentaatras()
		EndSelect
	WEnd
EndFunc   ;==>cuentaatras0

Func Count0($A, $b, $c, $d)
	$MaxTime0 -= 1
	If GUICtrlRead($message500, 1) <> $MaxTime0 Then
		ControlSetText("Press Escape to close the program ", "", "Static1", $message500)
		pitar()
	EndIf
EndFunc   ;==>Count0

Func espabilarse()
	$MaxTime0 = 60
	GUICtrlSetData($message500, $MaxTime0)
EndFunc   ;==>espabilarse


Func voylento()
	$MaxTime0 = $MaxTime0 + 60
	GUICtrlSetData($message500, $MaxTime0)
EndFunc   ;==>voylento




Func cuentaatras()
	$yprogre2 = $yprogre * 60
	$yprogre3 = ($yprogre2 / $yprogre2) * 100
	$count = $input * 60

	WinSetState($Main, "Selfbondage Motion Detector 1.1", @SW_DISABLE)
	If $STATE2000 = "CHECK" And $STATE2 = "UNCHECK" Then
		Sleep(100)
		$cuenta = $altogui4
		$y = $MaxTime
		; the countdown starts. Y value will be the waiting time in seconds
		$X = 0
		$gui6 = GUICreate("Press Escape to close the program", 360, $cuenta, @DesktopWidth - 360, 0)
		WinSetOnTop($gui6, "Press Escape to close the program", 1)
		$ProgressBar100 = GUICtrlCreateProgress(5, 130, 345, $cuenta - 150, $PBS_VERTICAL, $PBS_SMOOTH)
		GUICtrlSetData($ProgressBar100, $yprogre3)

		GUISwitch($gui6)
		GUICtrlCreateLabel($message5, 5, 20, 350, 110, $SS_CENTER)
		GUICtrlSetFont(-1, 60, 10, 0)
		GUISetBkColor(0xFF0033, $gui6)
		GUISetState(@SW_SHOW, $gui6)
		Opt("GUIOnEventMode", 1)
		GUISetOnEvent($GUI_EVENT_CLOSE, "On_Exit2")
		Opt("GUICloseOnESC", 1)

		_Timer_SetTimer($gui6, 1000, "Count")

		If GUICtrlRead($input104) > 0 Then
			GUISetState(@SW_SHOW, $gui18900)
		EndIf
		If $STATE3 = "CHECK" Then
			GUISetState(@SW_SHOW, $guisound)
		EndIf

		WinSetOnTop($gui18900, "mover", 1)
		WinSetOnTop($guisound, "audio", 1)

		While $MaxTime <> 0

			$msg = GUIGetMsg()
			$message5 = StringFormat("%02d:%02d:%02d\n", Floor($MaxTime / 3600), Mod(Floor($MaxTime / 60), 60), Mod($MaxTime, 60))
			buscarmovimiento2()
			_BatteryQueryEx()

			If $STATE3 = "CHECK" Then
				mirarmicro()
			EndIf


			Select
				Case $msg = $GUI_EVENT_CLOSE
					Exit
			EndSelect
		WEnd

		On_Exit()
		Exit
	ElseIf $STATE2000 = "UNCHECK" And $STATE2 = "UNCHECK" Then
		Sleep(100)
		$cuenta = $altogui4
		$y = $MaxTime
		; the countdown starts. Y value will be the waiting time in seconds
		$X = 0
		$gui6 = GUICreate("Press Escape to close the program", 360, $cuenta, @DesktopWidth - 360, 0)
		WinSetOnTop($gui6, "Press Escape to close the program", 1)
		$ProgressBar100 = GUICtrlCreateProgress(5, 130, 345, $cuenta - 150, $PBS_VERTICAL, $PBS_SMOOTH)
		GUICtrlSetData($ProgressBar100, $yprogre3)

		GUISwitch($gui6)
		GUICtrlCreateLabel($message5, 5, 20, 350, 110, $SS_CENTER)
		GUICtrlSetFont(-1, 60, 10, 0)
		GUISetBkColor(0xFF0033, $gui6)
		GUISetState(@SW_SHOW, $gui6)
		Opt("GUIOnEventMode", 1)
		GUISetOnEvent($GUI_EVENT_CLOSE, "On_Exit2")
		Opt("GUICloseOnESC", 1)

		_Timer_SetTimer($gui6, 1000, "Count")

		If GUICtrlRead($input104) > 0 Then
			GUISetState(@SW_SHOW, $gui18900)
		EndIf
		If $STATE3 = "CHECK" Then
			GUISetState(@SW_SHOW, $guisound)
		EndIf

		WinSetOnTop($gui18900, "mover", 1)
		WinSetOnTop($guisound, "audio", 1)

		While $MaxTime <> 0

			$msg = GUIGetMsg()
			$message5 = StringFormat("%02d:%02d:%02d\n", Floor($MaxTime / 3600), Mod(Floor($MaxTime / 60), 60), Mod($MaxTime, 60))
			buscarmovimiento2()
			_BatteryQueryEx()

			If $STATE3 = "CHECK" Then
				mirarmicro()
			EndIf

			WinSetOnTop($gui18900, "mover", 1)
			WinSetOnTop($guisound, "audio", 1)



			Select
				Case $msg = $GUI_EVENT_CLOSE
					Exit
			EndSelect
		WEnd

		On_Exit()
		Exit
	ElseIf $STATE2000 = "UNCHECK" And $STATE2 = "CHECK" Then
		$gui66 = GUICreate("Press Escape to close the program", 360, 110, @DesktopWidth - 360, 0)
		WinSetOnTop($gui66, "Press Escape to close the program", 1)
		GUISwitch($gui66)
		$Alien1 = Random(33, 64, 1)
		$Alien2 = Random(33, 64, 1)
		$Alien3 = Random(33, 64, 1)
		$Alien4 = Random(33, 64, 1)

		$Alien4 = Chr($Alien1)
		$Alien5 = Chr($Alien2)
		$Alien6 = Chr($Alien3)
		$Alien7 = Chr($Alien4)

		$message55 = $Alien4 & $Alien5 & $Alien6 & $Alien7
		GUICtrlCreateLabel($message55, 5, 20, 350, 110, $SS_CENTER)
		GUICtrlSetFont(-1, 60, 10, 0)
		GUISetBkColor(0xFF0033, $gui66)
		GUISetState(@SW_SHOW, $gui66)
		Opt("GUIOnEventMode", 1)
		GUISetOnEvent($GUI_EVENT_CLOSE, "On_Exit2")
		Opt("GUICloseOnESC", 1)
		$X = 0
		$y = $MaxTime
		_Timer_SetTimer($gui66, 1000, "Count")
		Sleep(100)
		; Starts the countdown. Z value will be a number between Y (input)*60 and 30


		$message5 = StringFormat("%02d:%02d:%02d\n", Floor($MaxTime / 3600), Mod(Floor($MaxTime / 60), 60), Mod($MaxTime, 60))


		If GUICtrlRead($input104) > 0 Then
			GUISetState(@SW_SHOW, $gui18900)
		EndIf
		If $STATE3 = "CHECK" Then
			GUISetState(@SW_SHOW, $guisound)
		EndIf

		WinSetOnTop($gui18900, "mover", 1)
		WinSetOnTop($guisound, "audio", 1)

		While $MaxTime <> 0

			$msg = GUIGetMsg()
			$Alien1 = Random(33, 64, 1)
			$Alien2 = Random(33, 64, 1)
			$Alien3 = Random(33, 64, 1)
			$Alien4 = Random(33, 64, 1)

			$Alien4 = Chr($Alien1)
			$Alien5 = Chr($Alien2)
			$Alien6 = Chr($Alien3)
			$Alien7 = Chr($Alien4)

			$message55 = $Alien4 & $Alien5 & $Alien6 & $Alien7
			buscarmovimiento2()
			_BatteryQueryEx()

			If $STATE3 = "CHECK" Then
				mirarmicro()
			EndIf

			WinSetOnTop($gui18900, "mover", 1)
			WinSetOnTop($guisound, "audio", 1)

			Select
				Case $msg = $GUI_EVENT_CLOSE
					Exit
			EndSelect
		WEnd

		On_Exit()
		Exit
	ElseIf $STATE2000 = "CHECK" And $STATE2 = "CHECK" Then
		Sleep(100)
		$cuenta = $altogui4
		$y = $MaxTime
		; the countdown starts. Y value will be the waiting time in seconds
		$X = 0
		$gui6 = GUICreate("Press Escape to close the program", 360, $cuenta, @DesktopWidth - 360, 0)
		WinSetOnTop($gui6, "Press Escape to close the program", 1)
		$ProgressBar100 = GUICtrlCreateProgress(5, 130, 345, $cuenta - 150, $PBS_VERTICAL, $PBS_SMOOTH)
		GUICtrlSetData($ProgressBar100, 100)

		GUISwitch($gui6)
		GUICtrlCreateLabel($message5, 5, 20, 350, 110, $SS_CENTER)
		GUICtrlSetFont(-1, 60, 10, 0)
		GUISetBkColor(0xFF0033, $gui6)
		GUISetState(@SW_SHOW, $gui6)
		Opt("GUIOnEventMode", 1)
		GUISetOnEvent($GUI_EVENT_CLOSE, "On_Exit2")
		Opt("GUICloseOnESC", 1)

		_Timer_SetTimer($gui6, 1000, "Count")


		If GUICtrlRead($input104) > 0 Then
			GUISetState(@SW_SHOW, $gui18900)
		EndIf
		If $STATE3 = "CHECK" Then
			GUISetState(@SW_SHOW, $guisound)
		EndIf

		WinSetOnTop($gui18900, "mover", 1)
		WinSetOnTop($guisound, "audio", 1)

		While $MaxTime <> 0

			$msg = GUIGetMsg()
			$message5 = StringFormat("%02d:%02d:%02d\n", Floor($MaxTime / 3600), Mod(Floor($MaxTime / 60), 60), Mod($MaxTime, 60))
			buscarmovimiento2()
			_BatteryQueryEx()

			If $STATE3 = "CHECK" Then
				mirarmicro()
			EndIf

			Select
				Case $msg = $GUI_EVENT_CLOSE
					Exit
			EndSelect
		WEnd

		On_Exit()
		Exit
	EndIf
EndFunc   ;==>cuentaatras





Func On_Exit()
	If GUICtrlRead($radio1) = $GUI_CHECKED Then
		Run($WW)
	EndIf
	If GUICtrlRead($radio2) = $GUI_CHECKED Then
		CDTray($U, "open")
	EndIf
EndFunc   ;==>On_Exit



Func CLOSEClicked()
	Exit
EndFunc   ;==>CLOSEClicked

Func On_Exit2()
	Exit
EndFunc   ;==>On_Exit2

Func _aleatorio()
	$M = Random(1, 100)
	$no2 = 100 - $no
	If $M > $no2 Then
		GUISetState(@SW_SHOW, $guijack)
		WinSetOnTop($guijack, "JACKPOT!!!", 1)
		$count4 = 0
		GUICtrlSetData($count4, 0)
		$sFilName0 = StringRegExpReplace($WW0, "^.*\\", "")
		If IsArray($sFilName0) = 0 Then
			If Not ProcessExists($sFilName0) Then
				Run($WW0)
				Sleep(1000)
				pScreenshot()
			EndIf
		EndIf
	EndIf
EndFunc   ;==>_aleatorio

Func cambiarcontador()
	If $STATE2000 = "UNCHECK" And $STATE2 = "CHECK" Then
		$Alien1 = Random(33, 64, 1)
		$Alien2 = Random(33, 64, 1)
		$Alien3 = Random(33, 64, 1)
		$Alien4 = Random(33, 64, 1)

		$Alien4 = Chr($Alien1)
		$Alien5 = Chr($Alien2)
		$Alien6 = Chr($Alien3)
		$Alien7 = Chr($Alien4)

		$message55 = $Alien4 & $Alien5 & $Alien6 & $Alien7
		ControlSetText("Press Escape to close the program", "", $message5, $message55)
	ElseIf $STATE2000 = "CHECK" And $STATE2 = "CHECK" Then
		ControlSetText("Press Escape to close the program", "", "Static1", $message5)
	ElseIf $STATE2000 = "CHECK" And $STATE2 = "UNCHECK" Then
		ControlSetText("Press Escape to close the program", "", "Static1", $message5)
	ElseIf $STATE2000 = "UNCHECK" And $STATE2 = "UNCHECK" Then
		ControlSetText("Press Escape to close the program", "", "Static1", $message5)
	EndIf

EndFunc   ;==>cambiarcontador



Func pitar()
	If $STATE = "CHECK" Then
		Beep(600, 100)
	EndIf
EndFunc   ;==>pitar

Func aleatorio2()
	If $STATE4 = "CHECK" Then
		_aleatorio()
	EndIf
EndFunc   ;==>aleatorio2

Func esconder()
	If $count4 > 4 Then
		GUISetState(@SW_HIDE, $guijack)
	EndIf
EndFunc   ;==>esconder


Global $MaxTime

Func Count($A, $b, $c, $d)
	$MaxTime -= 1
	If GUICtrlRead($message5, 1) <> $MaxTime Then
		ControlSetText("Press Escape to close the program", "", "Static1", $message5)
		cambiarcontador()
		$count4 = $count4 + 1
		$count3 = $count3 + 1
		$count30 = $count30 + 1
		$count300 = $count300 + 1
		$pos = MouseGetPos()
		MouseMove($pos[0], $pos[1] + 1, 0)
		$pos = MouseGetPos()
		MouseMove($pos[0], $pos[1] - 1, 0)

		pitar()
		aleatorio2()
		esconder()
		actu()

	EndIf
EndFunc   ;==>Count



Func actu()
	If $STATE2000 = "CHECK" And $STATE2 = "CHECK" Then
		$y = $y - 1
		$yprogre2 = $pepe
		$yprogre3 = ($yprogre2 / $yprogre2) * 100

		$yresultado = $yprogre2 - $y
		$yresultado3 = ($yresultado / $yprogre2) * 100
		$yresultado4 = $yprogre3 - $yresultado3
		GUICtrlSetData($ProgressBar100, $yresultado4)
	Else
		$y = $y - 1
		$yprogre2 = $yprogre * 60
		$yprogre3 = ($yprogre2 / $yprogre2) * 100

		$yresultado = $yprogre2 - $y
		$yresultado3 = ($yresultado / $yprogre2) * 100
		$yresultado4 = $yprogre3 - $yresultado3
		GUICtrlSetData($ProgressBar100, $yresultado4)
	EndIf
EndFunc   ;==>actu

Func aumentarbarra()
	If GUICtrlRead($input104) = 0 Then
		castigomotion()
	EndIf

	If GUICtrlRead($input104) > 0 Then
		aumentarbarra0()
	EndIf

EndFunc   ;==>aumentarbarra

Func aumentarbarra0()
	$permitido = GUICtrlRead($input104) + 1
	$permitido2 = 100 / $permitido
	$permitido3 = $permitido2 * $count5

	If $count300 > 1 Then
		$count5 = $count5 + 1
		$permitido = GUICtrlRead($input104) + 1
		$permitido2 = 100 / $permitido
		$permitido3 = $permitido2 * $count5
		GUICtrlSetData($ProgressBar20, $permitido3)
		$count300 = 0
	EndIf

	If $permitido3 + $permitido2 > 91 Then
		GUICtrlSetColor($ProgressBar20, 0xff0000)
	EndIf

	If $permitido3 > 91 Then
		castigomotion()
		$count5 = 0
		$permitido = GUICtrlRead($input104) + 1
		$permitido2 = 100 / $permitido
		$permitido3 = $permitido2 * $count5
		GUICtrlSetData($ProgressBar20, $permitido3)
		GUICtrlSetColor($ProgressBar20, 0xffee00)
	EndIf
EndFunc   ;==>aumentarbarra0



Func castigomotion()
	$sFilName2 = StringRegExpReplace($WW2, "^.*\\", "")
	If IsArray($sFilName2) = 0 Then
		If Not ProcessExists($sFilName2) Then
			Run($WW2)
		EndIf
	EndIf
	If $count30 > 2 Then
		$sumarpormover = GUICtrlRead($input1) * 60
		$MaxTime = $MaxTime + $sumarpormover
		$count30 = 0


		$y = $y + $sumarpormover
		$yprogre2 = $yprogre * 60
		$yprogre3 = ($yprogre2 / $yprogre2) * 100

		$yresultado = $yprogre2 + $y
		$yresultado3 = ($yresultado / $yprogre2) * 100
		$yresultado4 = $yprogre3 - $yresultado3
		GUICtrlSetData($ProgressBar100, $yresultado4)
	EndIf
	Sleep(1000)
	pScreenshot()
EndFunc   ;==>castigomotion

Func castigomotiontest()
	$sFilName2 = StringRegExpReplace($WW2, "^.*\\", "")
	If IsArray($sFilName2) = 0 Then
		If Not ProcessExists($sFilName2) Then
			Run($WW2)
		EndIf
	EndIf
EndFunc   ;==>castigomotiontest

Func castigosound()
	$sFilName1 = StringRegExpReplace($WW1, "^.*\\", "")
	If IsArray($sFilName1) = 0 Then
		If Not ProcessExists($sFilName1) Then
			Run($WW1)
		EndIf
	EndIf
	If $count3 > 1 Then
		$sumarporsonido = GUICtrlRead($input10) * 60
		$MaxTime = $MaxTime + $sumarporsonido
		$count3 = 0
		$sumarporsonido = GUICtrlRead($input10) * 60
		$y = $y + $sumarporsonido
		$yprogre2 = $yprogre * 60
		$yprogre3 = ($yprogre2 / $yprogre2) * 100

		$yresultado = $yprogre2 + $y
		$yresultado3 = ($yresultado / $yprogre2) * 100
		$yresultado4 = $yprogre3 - $yresultado3
		GUICtrlSetData($ProgressBar100, $yresultado4)
	EndIf
	Sleep(1000)
	pScreenshot()
EndFunc   ;==>castigosound

Func castigosoundtest()
	$sFilName1 = StringRegExpReplace($WW1, "^.*\\", "")
	If IsArray($sFilName1) = 0 Then
		If Not ProcessExists($sFilName1) Then
			Run($WW1)
		EndIf
	EndIf
EndFunc   ;==>castigosoundtest

Func castigorandom()
	$sFilName0 = StringRegExpReplace($WW0, "^.*\\", "")
	If IsArray($sFilName0) = 0 Then
		If Not ProcessExists($sFilName0) Then
			Run($WW0)
		EndIf
	EndIf
	Sleep(1000)
	pScreenshot()
EndFunc   ;==>castigorandom

Func castigorandomtest()
	$sFilName0 = StringRegExpReplace($WW0, "^.*\\", "")
	If IsArray($sFilName0) = 0 Then
		If Not ProcessExists($sFilName0) Then
			Run($WW0)
		EndIf
	EndIf
EndFunc   ;==>castigorandomtest

Func mirarmicro()
	$mciError = _mciSendString($lpszCommand, $lpszReturnString, $cchReturn, 0)
	If $mciError[0] <> 0 Then _mciShowError($mciError[0])
	$pedro = ($mciError[2]) * 0.78125

	$maximobarra = 100 / $T
	$pedro2 = $pedro * $maximobarra
	GUICtrlSetData($ProgressBar2, $pedro2)

	If $pedro > $T Then
		castigosound()
	EndIf

EndFunc   ;==>mirarmicro

Func buscarmovimiento2()
	Sleep(20)
	PixelSearch(@DesktopWidth - 390, $altogui4 - 200, @DesktopWidth - 390, $altogui4 - 200, 0xff0000);~le decimos que busque un pixel del color $color, pudiendo variar $algoritmo x3...
	If Not @error Then
		Sleep(20)
		aumentarbarra()
	EndIf
	Sleep(20)
EndFunc   ;==>buscarmovimiento2

Func pScreenshot()
	; ===============================================================================================================================
	; Description ...: Shows how to emboss text on an image
	; Author ........: Paul Campbell (PaulIA)
	; Notes .........:
	; ===============================================================================================================================

	; ===============================================================================================================================
	; Global variables
	; ===============================================================================================================================
	Global $hBitmap, $hImage, $hGraphic, $hFamily, $hFont, $tLayout, $hFormat, $aInfo, $hBrush1, $hBrush2, $iWidth, $iHeight, $hPen
	$MaxTime200 = $MaxTime
	$MaxTime200 = StringFormat("%02d:%02d:%02d\n", Floor($MaxTime / 3600), Mod(Floor($MaxTime / 60), 60), Mod($MaxTime, 60))
	Global $sString = "Remaining time:  " & $MaxTime200

	; ===============================================================================================================================
	; Main
	; ===============================================================================================================================

	; Initialize GDI+ library
	_GDIPlus_Startup()
	DirCreate(@DesktopDir & "\Selfbondage Motion Detection Session\")
	$A = _ScreenCapture_Capture(@DesktopDir & '\AutoItImage.jpg', 4, 165, @DesktopWidth - 370, $altogui4 + 8)

	$argument = @DesktopDir & '\Selfbondage Motion Detection Session\' & $n & '.jpg'

	; Load image and emboss text
	$hImage = _GDIPlus_ImageLoadFromFile(@DesktopDir & '\AutoItImage.jpg')
	$hGraphic = _GDIPlus_ImageGetGraphicsContext($hImage)
	$hFamily = _GDIPlus_FontFamilyCreate("Arial")
	$hFont = _GDIPlus_FontCreate($hFamily, 20, 1)
	$tLayout = _GDIPlus_RectFCreate(0, 0)
	$hFormat = _GDIPlus_StringFormatCreate(0)
	$hBrush1 = _GDIPlus_BrushCreateSolid(0xFFFFFFFF)
	$hBrush2 = _GDIPlus_BrushCreateSolid(0xC4FF0000)
	$hPen = _GDIPlus_PenCreate(0xC4000000, 2)
	$aInfo = _GDIPlus_GraphicsMeasureString($hGraphic, $sString, $hFont, $tLayout, $hFormat)
	$iWidth = DllStructGetData($aInfo[0], "Width")
	$iHeight = DllStructGetData($aInfo[0], "Height")

	_GDIPlus_GraphicsFillRect($hGraphic, 0, 0, $iWidth, $iHeight, $hBrush1)
	_GDIPlus_GraphicsDrawRect($hGraphic, 1, 1, $iWidth, $iHeight, $hPen)
	_GDIPlus_GraphicsDrawStringEx($hGraphic, $sString, $hFont, $aInfo[0], $hFormat, $hBrush2)

	_GDIPlus_ImageSaveToFile($hImage, $argument)

	$n = $n + 1

	; Free resources
	_GDIPlus_PenDispose($hPen)
	_GDIPlus_BrushDispose($hBrush1)
	_GDIPlus_BrushDispose($hBrush2)
	_GDIPlus_StringFormatDispose($hFormat)
	_GDIPlus_FontDispose($hFont)
	_GDIPlus_FontFamilyDispose($hFamily)
	_GDIPlus_GraphicsDispose($hGraphic)
	_GDIPlus_ImageDispose($hImage)
	_GDIPlus_Shutdown()
	FileDelete(@DesktopDir & '\AutoItImage.jpg')
EndFunc   ;==>pScreenshot
Greets from Barcelona

PS: and for those who adding time in minutes is too much here is the light version that lets you add seconds when you move or make sound instead of minutes:
Selfbondage Motion Detector 1.1 Light.
Roamer
*
Posts: 9
Joined: 13 Jul 2012, 21:03

Re: Selfbondage Motion Detector 1.1

Post by Roamer »

Hello I am new here. Anyway tried this program and could not get it work. I am using windows 7 64 bit. I tried it on the three computers I have here (one is an old vista machine running vista 32 bit). On the Win 7 machines it will work but will not run any of the external programs (pain.exe for example). On one nothing happens on the other I get a script error. On the Vista machine it runs for a bit and then just crashes (without opening the CD). I would love to play with this but can't get it to work. Any idea what I am doing wrong?
User avatar
qwerty212
Moderator
Posts: 1064
Joined: 23 Mar 2010, 20:24

Re: Selfbondage Motion Detector 1.1

Post by qwerty212 »

Roamer wrote:Hello I am new here.
Welcome to the forum :hi:
Roamer wrote:...tried this program and could not get it work. I am using windows 7 64 bit. I tried it on the three computers I have here (one is an old vista machine running vista 32 bit). On the Win 7 machines it will work but will not run any of the external programs (pain.exe for example).

Have you tried to execute the pain.exe manually to see if it works? What is your teasing device?

Roamer wrote:On one nothing happens on the other I get a script error.
Could you please try to make a screen capture of the script error? Or, if possible, try to write the text of the error.
Roamer wrote:On the Vista machine it runs for a bit and then just crashes (without opening the CD). I would love to play with this but can't get it to work. Any idea what I am doing wrong?
Same as above, it would be really interesting and useful to get error that the program launches.

I hope to get it working soon on any of your systems.

Greets from Barcelona
Roamer
*
Posts: 9
Joined: 13 Jul 2012, 21:03

Re: Selfbondage Motion Detector 1.1

Post by Roamer »

Thanks very much for the welcome!

The pain.exe file will run on its own and does what its expected. I am using the sound teasing and if I run the files (short, medium and long) the sound plays either short medium or long just as expected. My teasing device is an estim deivice an Erostek 312b which I connect to my computer using the headphone out on the computer and the audio in on the erostek.

Not sure what the script error is but I will get that to you shortly. I will also get you the error on the Vista machine. It will run the program (and play pain.exe from within the program) but then it crashes at some point with an error message like "This program has ended unexpectedly". But I will get you the exact error message.

Now the good news. I actually have four computers not three (yeah I am a computer junky). I hadn't tried it on that machine as its a gaming laptop that I use only for gaming. I figured if the other two Win 7 machines (one an acer laptop and the other an HP desktop) didn't work then there was no point. But I was wrong. It actually runs fine on that machine. Should have tried it earllier but I try and keep the gaming laptop clear of other software and running as good as I can get it.

I would, however, like to get this working on my other laptop as it is much more portable and much more useful for to me for self bondage stuff. Could it be my anti virus stuff maybe? If you could help I would be thrilled. My gaming laptop is a 17 inch 8lb rig with fairly short battery life. Its not ideal for my purposes but if I have to I can make do.

I would also like to compliment you both on the software and your response. It is just amazing what you are doing and I appreciate very much all your efforts.
User avatar
qwerty212
Moderator
Posts: 1064
Joined: 23 Mar 2010, 20:24

Re: Selfbondage Motion Detector 1.1

Post by qwerty212 »

Roamer wrote:My teasing device is an estim deivice an Erostek 312b which I connect to my computer using the headphone out on the computer and the audio in on the erostek.
Lucky you!!
Roamer wrote:Not sure what the script error is but I will get that to you shortly. I will also get you the error on the Vista machine. It will run the program (and play pain.exe from within the program) but then it crashes at some point with an error message like "This program has ended unexpectedly". But I will get you the exact error message.
If you don't mind I would love to send to you the source code and some files, so that would allow you to run the program from the compilator and it will give us the exactly line of code that crashes (Is pretty easy, there are also an instruction manual to run my scripts from the compilator somewhere in the forum).

Roamer wrote:Now the good news. I actually have four computers not three (yeah I am a computer junky)

Lucky you!!!!
I'm also a computer junky, but poor as a rat :mrgreen: Anyway I would change my computer and my two cats for LoKiT's computer :D
(Is the one used to run Matrix... is as powerful that it can even make that Keanu Reeves smiles like he doesn't had facial paralysis)
Roamer wrote:I hadn't tried it on that machine as its a gaming laptop that I use only for gaming. I figured if the other two Win 7 machines (one an acer laptop and the other an HP desktop) didn't work then there was no point. But I was wrong. It actually runs fine on that machine. Should have tried it earllier but I try and keep the gaming laptop clear of other software and running as good as I can get it.
None of my programs do install or need to be installed to work, so you can run them from an usb device. So you can run the Selfbondage Motion Detector safety on you gaming computer (you'll only need to install the Silverlight plugin).
(The Selfbondage Memory Game is the exemption to the statement above)
Roamer wrote:I would, however, like to get this working on my other laptop as it is much more portable and much more useful for to me for self bondage stuff. Could it be my anti virus stuff maybe?
Is the anti virus different from one machine to another?
Roamer wrote:If you could help I would be thrilled. My gaming laptop is a 17 inch 8lb rig with fairly short battery life. Its not ideal for my purposes but if I have to I can make do.
My English is not as good as it should, so I do not understand what "I would be thrilled" means :oops:

... but I'm sure that we will make that that program works in your other computers
Roamer wrote:I would also like to compliment you both on the software and your response. It is just amazing what you are doing and I appreciate very much all your efforts.
Cheers! Notice that there are a lot of other users creating great programs that maybe you can find useful.

Greets from Barcelona
Post Reply