PDA

View Full Version : Disattivare momentaneamente tasti tastiera


Pluto619
25-07-2013, 17:10
Ciao a tutti! Mi trovo per varie necessità relative ad un progetto che sto intraprendendo a porvi la seguente domanda:

E' possibile disattivare un tasto della tastiera per alcuni secondi dopo che esso è stato premuto? Mi spiego meglio..prendiamo ad esempio il tasto 5 del tastierino numerico, se io lo premo il pc per i successivi 3 secondi non rileva più la sua pressione anche se dovessi premerlo ripetutamente nell'arco dei 3 secondi..è possibile? Grazie mille a tutti!

x_Master_x
25-07-2013, 17:19
Sì è possibile se conosci un minimo di programmazione...

Alcune domande:
1) A che pro?
2) E' un solo tasto?

Khronos
25-07-2013, 17:34
dipende dall'ambito in cui ti trovi.

deve beneficiarne un singolo software?
deve essere un singolo tasto?

si tratta di accessibilità a persone inabili o anziane?

Pluto619
25-07-2013, 18:19
dipende dall'ambito in cui ti trovi.

deve beneficiarne un singolo software?
deve essere un singolo tasto?

si tratta di accessibilità a persone inabili o anziane?

No no, niente di troppo complicato..vi spiego bene:

Partecipo a delle gare con dei mezzi autocostruiti, e mi sto costruendo un cronometro per fare dei test a casa..userò delle piste per terra che simulano un contatto, come se premessi un tasto nella tastiera, e uso il software xnote stopwatch come cronometro. Qual'è il problema? Pensavo di usare una vecchia tastiera, e smontare il tastierino numerico, tagliare le piste e saldare i contatti della pista che metterò a terra..però essendo il mio mezzo a 2 assi, ad ogni passaggio sulla pista premerà con le ruote il contatto 2 volte, e quindi sarà come aver premuto 2 volte il tasto sulla tastiera, e quindi il cronometro segnerà 2 tempi! io invece voglio avere solo il primo..

in poche parole il mezzo passa con le ruote davanti sulla pista, fa scattare il contatto (ad esempio asseganto al tasto 5 del tastierino numerico), il cronometro rileva il primo tempo, e a questo punto il tasto si disattiva per 2/3 secondi, in modo che al passaggio delle ruote posteriori il tempo non venga rilevato..

Potrei farlo con dei relè da elettricista esterni, ma diventa più laborioso, anche perchè necessitano di alimentazione..in poche parole mi serve un relè tramite software! uno per la pista alla partenza del percorso e uno per quella di arrivo..quidi dovrei farlo per 2 tasti della tastiera..

Khronos
25-07-2013, 18:29
via software puoi farlo con AutoIT. fai sentire il primo tocco e appena "viene rilasciato il tasto" disattivi gli input da tastiera per 3/4 secondi.

x_Master_x
25-07-2013, 18:30
Non é nulla di complicato, poche righe di codice. Questa volta lascio l'onere-onore al sign. Khronos :O
Scrivi i due tasti e ci pensa lui, se dà forfait e mi farà subentrare avrà perso la mia stima a vita :asd:

Pluto619
25-07-2013, 21:42
via software puoi farlo con AutoIT. fai sentire il primo tocco e appena "viene rilasciato il tasto" disattivi gli input da tastiera per 3/4 secondi.

Non posso disattivare tutti gli input da tastiera, ma solo quelli relativi al tasto appena premuto..questo perchè i concorrenti partono durante le gare mentre altri arrivano al traguardo, e nel caso ci sia un concorrente che passa sul traguardo (e quindi fa scattare il contatto del traguardo) e appena dopo un'altro parte alla partenza il tempo di partenza non verrà rilevato se tutti gli input sono momentaneamente disattivati..

Pluto619
25-07-2013, 21:43
Non é nulla di complicato, poche righe di codice. Questa volta lascio l'onere-onore al sign. Khronos :O
Scrivi i due tasti e ci pensa lui, se dà forfait e mi farà subentrare avrà perso la mia stima a vita :asd:

I tasti che userò sono il 4 ed il 5 del tastierino numerico..con che programma devo scrivere il codice? Poi come faccio a far partire il programma? Creo un file exe? Grazie mille a tutti!!!

Khronos
26-07-2013, 00:02
Non é nulla di complicato, poche righe di codice. Questa volta lascio l'onere-onore al sign. Khronos :O
Scrivi i due tasti e ci pensa lui, se dà forfait e mi farà subentrare avrà perso la mia stima a vita :asd:

oddio. lol.
sto facendo programmino, stay tuned. uscirò con una beta oggi pome.

Pluto619
26-07-2013, 11:18
oddio. lol.
sto facendo programmino, stay tuned. uscirò con una beta oggi pome.

Ragazzi siete troppo fighi!!! Poi potresti inviarmelo via mail? Perché mi servirebbe per martedì circa, poiché ho una gara a fine settimana e devo anche fare dei test, se possibile..

x_Master_x
26-07-2013, 13:55
Nessuna email, si posta qui visto che sono troppo curioso di vedere quello che combina Khronos, che per ora ha ancora la mia stima :D

Lascio comunque una versione anche io tanto per "sicurezza", senza interfaccia o cose così quindi nulla rispetto alla beta che non vedo l'ora di testare :D

Link:
Il 4 e il 5 v1.0.0.3 (http://www.yourfilelink.com/get.php?fid=847303)

Password:
hwupgrade.it

Per chiudere basta cliccare sull'icona nella tray, i secondi di attesa dal primo input sono basati sull'ini, in formato millisecondi ( 1000 = 1 secondo )

[DELAY]
MS=1000

Funziona solo con i tasti 4 e 5 del tastierino numerico, non per quelli classici.
Da avviare DOPO il programma XNote

Khronos
26-07-2013, 14:56
ho provato.

ho provato con AutoIt e ho bestemmiato abbastanza. l'ho fatto in 2 pezzi, perchè poi, quando andava lo script del blocco dei tasti, sarei stato felice e avrei unito tutto.

in realtà fa la metà delle cose che dovrebbe fare -.-

premi 4 ( o 5) del tastierino, lui blocca tutto tranne il 5 (o il 4) per 3 secondi.

poi però non rilascia -.- le stavo tentando tutte ma semplicemente non ci arrivo.

codice prova bloccaggio tasti
#include <misc.au3>
#include <WinAPI.au3>
Global $TIMEOUT_PERIOD = 3000 ; value in milliseconds
Global $timeOfLastPress_A = 0
Global $timeOfLastPress_B = 0
Global $ah_Hooks[10]

HotKeySet("{ESC}", "_Terminate")
HotKeySet("{Numpad4}", "KeyPress")
HotKeySet("{Numpad5}", "KeyPress")


While 1
while ($timeOfLastPress_A > 0) or ($timeOfLastPress_B > 0)
if _IsPressed(64) then
$ah_Hooks = HandlerButtonStartStopKey(1, "0x65|0x1B")
ElseIf _IsPressed(65) then
$ah_Hooks = HandlerButtonStartStopKey(1, "0x64|0x1B")
EndIf
Wend
if ($timeOfLastPress_A > 0) then
$timeOfLastPress_A = 0
EndIf
If ($timeOfLastPress_B > 0) then
$timeOfLastPress_B = 0
EndIf
; sleep(10)
Wend
TrayTip("Keystroke Limiter", "block Nothing", 2, 1)
Exit

Func KeyPress()
if _IsPressed(64) then
$timeOfLastPress_A = TimerInit()
ElseIf _IsPressed(65) then
$timeOfLastPress_B = TimerInit()
EndIf
EndFunc

Func HandlerButtonStartStopKey($ah_Block_Hooks=0, $sExclude="")

while (TimerDiff($timeOfLastPress_A) < $TIMEOUT_PERIOD) or (TimerDiff($timeOfLastPress_B) < $TIMEOUT_PERIOD)
TrayTip("Keystroke Limiter", "stopping all but" & $sExclude, 2, 1)
Select
Case IsArray($ah_Block_Hooks)
If $ah_Block_Hooks[1] > 0 Then DllCallbackFree($ah_Block_Hooks[1])
If $ah_Block_Hooks[2] > 0 Then DllCallbackFree($ah_Block_Hooks[2])

If $ah_Block_Hooks[3] > 0 Then _WinAPI_UnhookWindowsHookEx($ah_Block_Hooks[3])
If $ah_Block_Hooks[4] > 0 Then _WinAPI_UnhookWindowsHookEx($ah_Block_Hooks[4])

Return 1
Case IsNumber($ah_Block_Hooks) And $ah_Block_Hooks > 0
Local $pStub_KeyProc = 0, $pStub_MouseProc = 0, $hHookKeyboard = 0, $hHookMouse = 0

$pStub_KeyProc = DllCallbackRegister("_Key_Proc", "int", "int;ptr;ptr")
$hHookKeyboard = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, DllCallbackGetPtr($pStub_KeyProc), _
_WinAPI_GetModuleHandle(0), 0)

Local $aRet[5] = ["|" & $sExclude & "|", $pStub_KeyProc, $pStub_MouseProc, $hHookKeyboard, $hHookMouse]

Return $aRet
Case Else
Return SetError(1, 0, 0)
EndSelect
WEnd

EndFunc

Func _Key_Proc($nCode, $wParam, $lParam)
If $nCode < 0 Then Return _WinAPI_CallNextHookEx($ah_Hooks[3], $nCode, $wParam, $lParam)

Local $KBDLLHOOKSTRUCT = DllStructCreate("dword vkCode;dword scanCode;dword flags;dword time;ptr dwExtraInfo", $lParam)
Local $vkCode = DllStructGetData($KBDLLHOOKSTRUCT, "vkCode")

If Not StringInStr($ah_Hooks[0], "|0x" & Hex($vkCode, 2) & "|") Then Return 1

_WinAPI_CallNextHookEx($ah_Hooks[3], $nCode, $wParam, $lParam)
EndFunc

Func _Terminate()
Exit 0
EndFunc

codice interfaccia
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Outfile=Keystroke Limiter v0.5.exe
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
; K E Y S T R O K E Limiter
; By KHRonoS OnE

; V 0.5 beta


;Required Includes.
#include <GUIConstantsEx.au3> ;Constants for GUI Events
#include <EditConstants.au3> ;Edit constants.
Opt("GUIOnEventMode", 1);We need this otherwise our GUI will not be OnEvent Mode.
Opt("TrayMenuMode", 2) ;hide default tray commands and no checked items
Opt("TrayAutoPause",0) ; turn off the autopause when is clicked the tray.
;Opt('MustDeclareVars', 1) ; as writed


;VARS
Global $Guimsg, $Traymsg, $WM_NOTIFY, $widthCell
Local $tasto_scelto=""
Local $OptionsGUI
Local $OptionsLabel1
Local $OptionsLabel2
Local $OptionsLabel3
Local $OptionsLabelStart
Local $OptionsLabelStop
Local $OptionsButtonKey
Local $OptionsButtonStopKey
Local $OptionsButtonStartKey
Local $OptionsButtonStartStop
Local $OptionsButtonExit
Local $OptionsTray
Local $StartTray
Local $ExitTray
; Press Esc to terminate script abruptly
HotKeySet("{ESC}", "HandlerButtonTerminate")

;OPTIONS GUI HERE START
$OptionsGUI = GUICreate ("Keystroke limiter v0.5beta", 430, 120)
GUISetOnEvent($GUI_EVENT_CLOSE, "CloseOnTray") ; What function to call when we try close the GUI

;LABELS
$OptionsLabel1 = GUICtrlCreateLabel ("Click the buttons to choose the key", 115, 10, 230, 40)
$OptionsLabel2 = GUICtrlCreateLabel ("Then click on Activate, to start the Limiter.", 115, 30, 230, 40)
$OptionsLabel3 = GUICtrlCreateLabel ("Click on Deactivate to stop it.", 115, 50, 230, 40)
$OptionsLabelStart = GUICtrlCreateLabel ("Start Key", 30, 10, 50, 40)
$OptionsLabelStop = GUICtrlCreateLabel ("Stop Key", 350, 10, 50, 40)


;BUTTONS
$OptionsButtonStartKey = GUICtrlCreateButton ("Select Start Key!", 10, 30, 100, 25)
GUICtrlSetOnEvent(-1, "HandlerButtonStartKey") ;handler for above button
$OptionsButtonStopKey = GUICtrlCreateButton ("Select Stop Key!", 325, 30, 100, 25)
GUICtrlSetOnEvent(-1, "HandlerButtonStopKey") ;handler for above button
$OptionsButtonStartStop = GUICtrlCreateButton ("- ACTIVATE -", 100, 70, 120, 40)
GUICtrlSetOnEvent(-1, "HandlerKeystrokeBlocker") ;handler for above button
$OptionsButtonExit = GUICtrlCreateButton ("E X I T", 350, 85, 70, 25)
GUICtrlSetOnEvent(-1, "HandlerButtonTerminate") ;handler for above button

;TRAY COMMANDS
$OptionsTray = TrayCreateItem("O P T I O N S")
TrayItemSetOnEvent($OptionsTray, "HandlerTrayOptions") ; Handler for above tray
TrayCreateItem("")
$StartTray = TrayCreateItem("- ACTIVATE -")
TrayCreateItem("")
$ExitTray = TrayCreateItem(" E X I T ")

;Show the GUI. We need this line, or our GUI will NOT be displayed!
GUISetState (@SW_SHOW) ;activate the window
;------------------------------------------------------------------------------------------------------

;;;; BODY - we insert here some code???;;;;
While 1
$Traymsg = TrayGetMsg()
Switch $Traymsg
Case $OptionsTray
; qui faccio tornare fuori la OptionGUI se non c'è già
WinSetState($OptionsGUI, "", @SW_RESTORE)
Case $StartTray
HandlerKeystrokeBlocker()
Case $ExitTray
HandlerButtonTerminate()
EndSwitch
WEnd


Func HandlerButtonStartKey()

EndFunc

Func HandlerButtonStopKey()

EndFunc

Func HandlerTrayOptions()
WinSetState($OptionsGUI, "", @SW_RESTORE)
EndFunc


Func HandlerKeystrokeBlocker()
Switch GUICtrlRead($OptionsButtonStartStop)
; If button reads "Start"
Case "- ACTIVATE -"
TrayTip("Keystroke Limiter", "RUNNING", 5, 1)
GUICtrlSetData($OptionsButtonStartStop, "- S T O P it -") ; change button text
; If button reads "Stop"
Case "- S T O P it -"
TrayTip("Keystroke Limiter", "STOPPED", 5, 1)
GUICtrlSetData($OptionsButtonStartStop, "- ACTIVATE -") ; change button text
EndSwitch
EndFunc ;==>KeystrokeBlocker


Func CloseOnTray()
_GuiMinimizeToTray($OptionsGUI)
EndFunc ;==>CloseOnTray

Func _GuiMinimizeToTray($windo)
; check if 1 = Window exists, then check to see if its 16 = Window is minimized
If BitAND(WinGetState($windo), 1) Or Not BitAND(WinGetState($windo), 16) Then
; change the window state to hide
WinSetState($windo, "", @SW_HIDE)
EndIf

EndFunc ;==>_GuiMinimizeToTray

Func HandlerButtonTerminate()
TrayTip("Keystroke Limiter", "EXITING", 2, 1)
Exit 0
EndFunc ;==>Terminate

Eress
26-07-2013, 17:11
Prendila con filosofia Khro, nella vita gli esami non finiscono mai...poi era prevedibile che per una faccenda del genere a XMasterX gli avrebbero prurito le mani :asd:

Khronos
26-07-2013, 17:47
lo so. ho evitato di usare Java perchè non arriva senza miliardi di giri a bloccare l'input a tutto il sistema, C non lo conosco, pensavo fosse "più semplice" con AutoIt, ma a quanto pare "per ora" mi batte.

x_Master_x
26-07-2013, 18:02
Non era mica una sfida o una prova, non voglio battere nessuno :asd:
Pensavo che ci sarebbe riuscito senza problemi con le sue conoscenze, altrimenti non lo avrei "messo in mezzo". Ho fatto un errore di valutazione della situazione, capita a tutti di sbagliare.
La prossima volta tocca a Eress così impara a postare senza autorizzazione :asd:

Eress
26-07-2013, 20:56
La prossima volta tocca a Eress così impara a postare senza autorizzazione :asd:
Io me la cavo meglio dal lato grafico modding :asd: anche se non disdegno ogni tanto di giocare con batch e registro.

Khronos
26-07-2013, 22:23
ho le idee, le basi e la voglia di conoscenza ma mi manca il sapere decentemente almeno un linguaggio di programmazione che non sia il Php.

Pluto619
26-07-2013, 22:44
Ragazzi ho provato il file..ke dire, spettacolo!!!! Grazie infinite! Ho provato e sembra essere tutto ok! Chiedo solo una cosa, se io volessi modificare i tasti o i secondi di standby, potrei farlo dal file exe o serve il codice? Poi vorrei sapere se può interessare una guida su come fare il cronometro che sto costruendo..se può interessare faccio una mini guida con un pò di foto..

Pluto619
26-07-2013, 22:53
Ho parlato troppo presto..il programma funge che è uno spettacolo..finché non apro il cronometro!!! Con il cronometro aperto il programma, anche se in esecuzione, non fa più il suo dovere, come se fosse chiuso..il cronometro in questione è "xnote stopwhatch"..qualche idea?

x_Master_x
27-07-2013, 07:18
Ragazzi ho provato il file..ke dire, spettacolo!!!! Grazie infinite! Ho provato e sembra essere tutto ok! Chiedo solo una cosa, se io volessi modificare i tasti o i secondi di standby, potrei farlo dal file exe o serve il codice? Poi vorrei sapere se può interessare una guida su come fare il cronometro che sto costruendo..se può interessare faccio una mini guida con un pò di foto..

Tu non puoi fare nulla, avresti potuto dirlo prima che ti serviva modificare i secondi, avrei fatto un ini di configurazione.
Per i tasti la cosa è più complicata, quindi non mi è possibile perchè non ho molto tempo da investirci.
La guida falla comunque, a qualcuno sicuramente servirà.

Ho parlato troppo presto..il programma funge che è uno spettacolo..finché non apro il cronometro!!! Con il cronometro aperto il programma, anche se in esecuzione, non fa più il suo dovere, come se fosse chiuso..il cronometro in questione è "xnote stopwhatch"..qualche idea?

Il problema nasce dal programma XNote Stopwatch che non ama vedere il tasto che si abilita-disabilita e quindi in qualche modo blocca il mio exe
Quel software vedo che è a pagamento, perchè non provi un'alternativa gratuita? Ce ne saranno 200, qui (http://www.olwiki.com/archives/1322.html) ne trovi 20 diversi :D

Quando lo avrai trovato aggiungerò nell' ini i secondi

Pluto619
27-07-2013, 08:40
Non mi serve strettamente modificare i tasti o i secondi, era più per curiosità..

La questione del software è diversa, perché si è vero, è a pagamento, però che io sappia è anche l'unico che si integra con excel, e questo a me servirebbe perché cosi creo un foglio di excel con una funzione che mi sottrae il tempo di arrivo al tempo di partenza e mi da direttamente il tempo di percorrenza del tracciato..e poi posso anche aggiungere i nomi e i numeri dei mezzi/corridori..

x_Master_x
27-07-2013, 09:13
Ho capito, ma sfortunatamente usiamo lo stesso metodo per intercettare i tasti e quindi anche se bloccassi l'intera tastiera quel programma continuerebbe a rilevarli, ignorando anche l'input disabilitato.
A cosa sono assegnati il 4 e il 5 nel programma? Vorrei controllare un'ultima cosa.

Inzia a a pensare a soluzioni alternative a quella che ho già realizato.

Pluto619
27-07-2013, 09:32
Ho capito, ma sfortunatamente usiamo lo stesso metodo per intercettare i tasti e quindi anche se bloccassi l'intera tastiera quel programma continuerebbe a rilevarli, ignorando anche l'input disabilitato.
A cosa sono assegnati il 4 e il 5 nel programma? Vorrei controllare un'ultima cosa.

Inzia a a pensare a soluzioni alternative a quella che ho già realizato.

Io apro 2 cronometri, assegno al primo i seguenti comandi:

tasto 1(tn) --> start/stop
tasto 4(tn) --> skip time

Al secondo cronometro assegno

tasto 2(tn) --> start/stop
tasto 5(tn) --> skip time

Poi saldo assieme i contatti del tasto 1 e 2 , così premendo un pulsante li premo entrambi in contemporanea, e uso il 4 per il segnala alla partenza (da collegare quindi ad un contatto a terra), ed il 5 per il segnale all'arrivo..

x_Master_x
27-07-2013, 09:41
Non ho capito. In XNote Stopwatch, nelle opzioni del programma, in More --> Hotkeys vedo:

Start-Stop
Snap
Reset

Il 4 e il 5 dove li assegni? Non vedo altro.

Pluto619
27-07-2013, 09:45
Non ho capito. In XNote Stopwatch, nelle opzioni del programma, in More --> Hotkeys vedo:

Start-Stop
Snap
Reset

Il 4 e il 5 dove li assegni? Non vedo altro.

sullo snap..apro 2 programmi, su uno metto snap 4, sull'altro snap 5..il reset non lo metto, lo faccio da mouse..

Pluto619
27-07-2013, 09:48
Comunque ho provato gli altri software..ma oltre che a non integrarsi con excel non mi consentono neanche di inserire le hotkey..

x_Master_x
27-07-2013, 09:51
Ora ho capito, farò un tentativo bypassando le hotkey del programma ma non ti assicuro nulla.

Pluto619
27-07-2013, 09:52
Ecco una slide della situazione..
http://imageshack.us/f/560/pv84.jpg/

x_Master_x
27-07-2013, 14:52
Niente da fare, quel programma non mi permette di fare nulla ergo non posso fare altro in questa situazione.
Ti consiglio di cercare un'alternativa a quella proposta.

EDIT: Forse c'è l'ho fatta :winner:
E' il mio ultimo tentativo, ho aggiornato il precedente link

Ho aggiunto anche un INI per i secondi di attesa, il valore è in millisecondi ( 1000 = 1 Secondi )
Un solo accorgimento, devi avvire il mio .exe DOPO l'avvio di XNote Stopwatch, per tutti gli altri programmi non c'è differenza tra il prima e il dopo ma questo Stopwatch è stato un'agonia...
Ho provato e sembra funzionare correttamente.

Pluto619
27-07-2013, 19:44
Niente da fare, quel programma non mi permette di fare nulla ergo non posso fare altro in questa situazione.
Ti consiglio di cercare un'alternativa a quella proposta.

EDIT: Forse c'è l'ho fatta :winner:
E' il mio ultimo tentativo, ho aggiornato il precedente link

Ho aggiunto anche un INI per i secondi di attesa, il valore è in millisecondi ( 1000 = 1 Secondi )
Un solo accorgimento, devi avvire il mio .exe DOPO l'avvio di XNote Stopwatch, per tutti gli altri programmi non c'è differenza tra il prima e il dopo ma questo Stopwatch è stato un'agonia...
Ho provato e sembra funzionare correttamente.

1) Sei un figo..adesso provo subito!!!

2) Ho trovato (forse) un'altra soluzione..XNote stoppa solo il tasto che inserisci nelle hotkey, quindi!!! Ho fatto questo test..se io do come step il numero 4 nelle hotkey, e però alla pista del contatto saldo il tasto 7 (ad esempio) e poi nel codice del programma scrivo:

quando premi il tasto 7 fai premere virtualmente anche il tasto 4, poi impedisci al tasto 7 di essere ripremuto nei prossimi 3 secondi..così l'input in arrivo dal tasto 7 sarà solo uno (anche sei il sensore verrà fatto scattare più volte), e ad XNote arriverà una sola pressione virtuale del tasto 4, e non essendo il tasto 7 inserito nelle hotkey di XNote la sua "pausa" dovrebbe non avere problemi!!!

Dico questo perche se provi ad aprire XNote, gli dai come hotkey dello step il tasto 7, e poi apri il tuo software e premi ripetutamente il 4 su blocco note per vedere se lo scrive il pc lo scrive una sola volta in 3 secondi..quindi se tu colleghi poi l'evento "pressione tasto 7" all'evento virtuale "pressione tasto 4" il tutto dovrebbe funzionare, perchè ad occhio XNote influisce solo sui tasti che gli dai in pasto nelle hotkey!!!

Mi rendo conto che il tutto è più rozzo ed artigianale del tuo sistema, ma potrebbe funzionare???

Pluto619
27-07-2013, 19:50
Ho testato il tuo metodo, ma funziona parzialmente..cioè il tutto si disattiva per un tot di tempo, ma calcolando ad occhio i tasti si disattivano per 1 secondo appena abbondante..non so a cosa possa essere dovuto, ma purtroppo è troppo poco tempo per il mio utilizzo..

x_Master_x
27-07-2013, 20:31
Ho testato il tuo metodo, ma funziona parzialmente..cioè il tutto si disattiva per un tot di tempo, ma calcolando ad occhio i tasti si disattivano per 1 secondo appena abbondante..non so a cosa possa essere dovuto, ma purtroppo è troppo poco tempo per il mio utilizzo..

Mi sembra ovvio, il ritardo é impostato ad un numero maggiore di un secondo :asd:

Apri l'exe e chiudilo dalla tray, vedi che si crea nella stessa posizione un file chiamato config.ini?
Aprilo, nella sezione c'é scritto 1000 ( sono millisecondi quindi 1000 equivale a 1 secondo, per questo hai un ritardo di poco superiore ad 1 sec ), sostituiscilo con 2500 oppure con 3000, come vuoi. Salva il file e riapri il programma.

P.S. Non mi avevi chiesto la possibilità di impostare i secondi? :D
L'ho pure scritto:
Ho aggiunto anche un INI per i secondi di attesa, il valore è in millisecondi ( 1000 = 1 Secondo )
Si vede che non mi sono spiegato, ma adesso credo sia tutto chiaro

Pluto619
27-07-2013, 21:24
No no scusa!!! Sono io ke sono rincoglionito e ke sono sempre di corsa!!! Cmq ottimo, grazie infinite!!! Per curiosità il mio metodo avrebbe funzionato?

x_Master_x
28-07-2013, 05:49
Sono contento che sia tutto finito :asd:
Assegnare il 7 come 4 ed impostare il 4 come hotkey...non credo avrebbe funzionato. Rimappare un tasto lo rende riconoscibile al sistema come l'originale, quindi sarebbe stato come assegnare direttamente il 4.

Non dimenticare la guida con tanto di foto, prepara tutto come si deve e postala quando sei pronto.

Pluto619
28-07-2013, 20:43
Certo! Adesso io e mio cugino stiamo studiando un meccanismo per fare il contatto..poi la guida la posto su questa discussione o c'è una sezione apposita?

x_Master_x
28-07-2013, 21:37
Non lo sò, contatta un moderatore che ti indirizzerà nella sezione giusta.

Pluto619
31-07-2013, 14:20
Altro problema..e senza aprire una nuova discussione chiedo qui..

Visto la difficoltà ke c'è a tirare un cavo fra partenza e arrivo, mi chiedevo se fosse possibile risolvere questo problema:

Mettiamo ad esempio che io abbia un pulsante in un luogo, e in un altro luogo, a circa 2 chilometri di distanza abbia una lampadina che funziona a 5 volt..come posso far in modo che quando premo il pulsante, la lampadina si accenda, senza fili? Esistono già degli apparecchi appositi o devo costruirmi qualcosa io? Avevo pensato ad usare un paio di walkie talkie, ma sorge il problema che se qualcuno si intromette nella mia frequenza può accendere la mia lampadina..sempre se non esiste un modo di far comunicare i 2 walkie talkie solo fra id loro..

Cosa mi consigliate?

Khronos
31-07-2013, 14:58
questa è roba da ingegneri. per un collegamento senza fili a distanze di 2 KM ti servono per forza le onde radio, una wireless da pc non ci arriva a meno di usare un pò di ripetitori, bluetooth non credo proprio e zigbee non ne ho idea. puoi usare l'Arduino per inviare/sentire i segnali, ma la trasmissione del segnale...

Eress
31-07-2013, 18:08
Qui ci vorrebbe Nikola Tesla :asd:

Pluto619
25-08-2013, 19:37
Ragazzi sono a buon punto! Quasi tutta la teoria è messa giù, e fra poco inizierò i lavori e inizierò a scrivere una bella guida..mi manca ancora una cosa per rendere il tutto ottimale! Ho preso un tastierino numerico usb..posso fare in modo che questo non funzioni solo in excel? Cioè, attivare il tastierino con tutti i programmi, però far in modo che anche se lo uso excel non se ne accorga e quindi non scriva o faccia niente?

Questo renderebbe il tutto perfetto, altrimenti se facessi diversamente non potrei usare excel durante il funzionamento del cronometro, altrimenti ad ogni pressione di un tasto oltre che a fare gli step il sul cronometro excel segnerebbe il valore..

Pluto619
02-09-2013, 20:12
Ragazzi, nessuna idea?...

x_Master_x
02-09-2013, 22:04
Con o senza il mio programma aperto?

Pluto619
06-09-2013, 19:19
Con il tuo programma aperto..

Praticamente io riesco a far girare il tutto..solo che quando tutto è in funzione non posso rimanere sulla finestra di excel (devo renderla più piccola del monitor e cliccare al suo esterno o ridurlo ad icona), perchè se rimango dentro alla finestra di excel ogni volta che un mezzo fa scattare il cronometro viene premuto il tasto 4 o 5 del tastierino, e di conseguenza se sono in excel viene scritto il valore 4 o 5 nella casella in cui sono..quindi sono obbligato a rimanere al di fuori di excel, e quindi se dovessi modificare al volo dei dati (esempio, parte il concorrente 1, parte il concorrente 2, durante il tragitto il concorrente 2 sorpassa il concorrente 1, all'arrivo il concorrente 2 fermerebbe il parziale per conto del concorrente 1, e quindi una volta passato il concorrente 1 non potrei invertire i valori perchè non potrei toccare excel) non potrei farlo altrimenti il cronometro scriverebbe in excel..

Quindi dovrei far si che xnote stopwatch e il tuo programma "il 4 e il 5" vedessero il tastierino numerico, e excel invece non lo vedesse..così se devo immettere dati o numeri in excel mi rimangono comunque i numeri sopra alle lettere della tastiera, e il cronometro lavora con il tastierino..

x_Master_x
07-09-2013, 06:31
Ho capito, disabiliterò il 4 e il 5 per TUTTI i programmi ad eccezione di xnote...
P.S. Spero per te che da oggi in poi le modifiche a quel programma siano finite, perchè inizierò a farmi pagare e non credere che io sia una persona "economica" :sofico:

x_Master_x
07-09-2013, 08:17
Fatto :O
Prima di procedere al download ( il post in prima pagina ) ricordati:
a) Di cancellare il vecchio .ini prima di avviare la nuova versione
b) Di farti una copia della vecchia versione, non si può mai sapere perchè io non l'ho conservata e sicuramente non conservo nemmeno questa :asd:
c) Di farmi sapere se ora sei contento e finalmente hai finito di rompere, in attesa di questa fantomatica guida :D

Pluto619
09-09-2013, 20:17
Sei un figo e basta..ho provato e il tutto funziona perfettamente!!!! Adesso prendo gli alimentatori per le fotocellule, finisco le piste e poi faccio la guida..infinitamente grazie!!!!!!!!

Pluto619
09-09-2013, 20:19
[QUOTE=x_Master_x;39928709]
c) Di farmi sapere se ora sei contento e finalmente hai finito di rompere, in attesa di questa fantomatica guida :asd: :asd: :asd: :asd: :asd: :asd: :asd: :asd: :asd: :asd: ...molto contento grazie!!!!!

Pluto619
09-09-2013, 20:27
c) Di farmi sapere se ora sei contento e finalmente hai finito di rompere, in attesa di questa fantomatica guida :asd: :asd: :asd: :asd: :asd: :asd: :asd: :asd: :asd: :asd: ...molto contento grazie :kiss: :kiss: :kiss: !!!!!




Scusate ma non riesco a cancellare il messaggio sopra..