رفتن به مطلب
  • 0

چند بار فشردن یک کلید سخت افزاری


haamed

سوال

سلام و عرض ادب

 

سوال بنده این است:
چطوره میشه با چند بار فشردن یک دکمه ی سخت افزاری دستور خاصی اجرا شود
به عنوان مثال ولوم کم کردن صدا اگر دوبار فشرده شد  پیغام hello ظاهر شود و اگر سه بار فشرده شد پیغام goodbye نمایش دهد.

 

سپاسگزارم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

3 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

سلام تنها کدی که فعلا به ذهنم میرسه همینه...

 

اول یه متغییر از نوع int تو sub globals تعریف کن.

Dim i As Int = 0

بعدش بیا این sub رو برای دکمه کم کردن ولوم قرار بده...

Sub activity_keypress (KeyCode As Int) As Boolean
	
If KeyCode=KeyCodes.KEYCODE_VOLUME_DOWN Then
i = i+1
If i = 2 Then
ToastMessageShow("hello",False)
else if i = 3 Then
ToastMessageShow("goodbye",False)
End If
End If
	
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

ممنون ولی در این روش فقط پیغام hello کار میکنه
حتی اگر سه بار ولوم رو فشار بدیم دوبار اول رو حساب میکنه و دستور hello نمایش داده میشه.
 

راه دیگر و بهتری اگر میدونید ممنون میشم ذکر کنید
مد نظر من اینه که اگر دستورات پیچیده تری هم برا کلیدها نوشتیم اجرا بشه
مثلا

دوبار ولوم کم کردن صدا-یک بار ولوم زیاد کردن صدا== یک دستور خاص اجرا بشه

سه بار ولوم زیاد کردن-یک بار کم کردن==یک دستور دیگه

ولوم کم و زیاد با هم همزمان ==یک دستور دیگه
و ...
همچین چیزی با بیسیک ممکنه؟؟؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

Sub Globals
	Dim timer As Timer
	Dim Vol As Int
	Dim ph As Phone
End Sub

Sub activity_keypress (KeyCode As Int) As Boolean
		If KeyCode=KeyCodes.KEYCODE_VOLUME_DOWN Or KeyCode=KeyCodes.KEYCODE_VOLUME_UP Then
			timer.Initialize("tik","2000")
			timer.Enabled=True
		End If
		Vol=ph.GetVolume(ph.RINGER_NORMAL)
		File.WriteString(File.DirRootExternal,"vol.txt",""&Vol)
End Sub

Sub tik_Tick
	Dim st As String
	st=File.ReadString(File.DirRootExternal,"vol.txt")
	
	If ph.GetVolume(ph.RINGER_NORMAL)=st+1 Or ph.GetVolume(ph.RINGER_NORMAL)=st-1 Then
		Msgbox(""&st,"Volume level")
	End If
End Sub

درمورد توضيحشم اين ک : اول اومديم صداي فعلي گوشي رو گرفتيم و توي ي فايل متني ذخيره کرديم بعد با کم يا زياد شدن ولوم اومديم ي تايمر رو فعال کرديم (بعدن ميگم برا چي) بعد توي تايمر اومديم بررسي کرديم اگه صداي گوشي يک دونه زياد يا يکي کم شد مسيج باکس بده خب حالا تايمر برا چيه ببينيد فرض کن صداي گوشي کلللن 10 level داره و لول فعلي هست مثلن 2 حالا ما اين 2 رو دخيره کرديم گفتيم اگه ب فاصله زماني مثلن 1 ثانيه اين 2 شد 3 يا 1 بيا ي مسيج باکس نشون بده اينجا 2 تا چيز مهمه 1 زماني ک طول ميکشه کاربر صدا رو 2 يا 3 يا n واحد کمو زياد کنه، و 2 اين ک چقدر صدا رو توي اون مدت کم يا زياد ميکنه يني مثلن 1 واحد 2 واحد 3 واحد با ... کم يا زياد ميکنه، شما ديدين وقتي دکمه ولوم رو ميزنين اون بالاي گوشي عکس ولوم مياد بعد توي مثلن 1 ثانيه از بين ميره درواقع زمان تايمر رو بايد اين بدين يني اين وقفه اي ک ايجاد ميشه تا صداي ولوم محو بشه بايد بشه زمان تايمر بعد هم تو تايمر اومديم گفتيم اگه يکي کم يا زياد شد ... درکل چيزي ک ميخواين ي کم کداش کثيف ميشه! و ب نظر من چيز 100 درصدي ايي نيس حالا باز با همين کد ور برين شايد تا حذدي ب چيزي ک ميخواين برسين

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...