Toggle VibraOrRing
cab installation for WM 6.0:
XDA Thread...
c# how to toggle Vibra and Ring On ? simple... use this code :)
using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace toggleVibrateSound
{
class Program
{
private enum SoundEvent
{
All = 0,
RingLine1,
RingLine2,
KnownCallerLine1,
RoamingLine1,
RingVoip
}
private enum SoundType
{
On = 0,
File = 1,
Vibrate = 2,
None = 3
}
private struct SNDFILEINFO
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
public string szPathNameNative;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
public string szDisplayNameNative;
public SoundType SstType;
}
[DllImport("aygshell.dll", SetLastError = true)]
private static extern uint SndSetSound(SoundEvent seSoundEvent, ref SNDFILEINFO pSoundFileInfo, bool fSuppressUI);
[DllImport("aygshell.dll", SetLastError = true)]
private static extern uint SndGetSound(SoundEvent seSoundEvent, ref SNDFILEINFO pSoundFileInfo);
public static void SetRingerOn()
{
SNDFILEINFO sfi = new SNDFILEINFO();
sfi.SstType = SoundType.On;
uint ret = SndSetSound(SoundEvent.All, ref sfi, true);
}
public static void GetCurrentSoundType()
{
SNDFILEINFO sfi = new SNDFILEINFO();
uint ret = SndGetSound(SoundEvent.All, ref sfi);
SoundType aa = sfi.SstType;
if (aa == 0) Vibra(); else SetRingerOn();
}
public static void Vibra()
{
SNDFILEINFO sfi = new SNDFILEINFO();
sfi.SstType = SoundType.Vibrate;
uint ret = SndSetSound(SoundEvent.All, ref sfi, true);
}
unsafe static void Main(string[] args)
{
//Vibra(); // set vibra mode on
//SetRingerOn(); // set ringer mode on
GetCurrentSoundType(); // in this case we toggle Vibra and Ring...
}
}
}
cheers... :)
cab installation for WM 6.0:
XDA Thread...
c# how to toggle Vibra and Ring On ? simple... use this code :)
using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace toggleVibrateSound
{
class Program
{
private enum SoundEvent
{
All = 0,
RingLine1,
RingLine2,
KnownCallerLine1,
RoamingLine1,
RingVoip
}
private enum SoundType
{
On = 0,
File = 1,
Vibrate = 2,
None = 3
}
private struct SNDFILEINFO
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
public string szPathNameNative;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
public string szDisplayNameNative;
public SoundType SstType;
}
[DllImport("aygshell.dll", SetLastError = true)]
private static extern uint SndSetSound(SoundEvent seSoundEvent, ref SNDFILEINFO pSoundFileInfo, bool fSuppressUI);
[DllImport("aygshell.dll", SetLastError = true)]
private static extern uint SndGetSound(SoundEvent seSoundEvent, ref SNDFILEINFO pSoundFileInfo);
public static void SetRingerOn()
{
SNDFILEINFO sfi = new SNDFILEINFO();
sfi.SstType = SoundType.On;
uint ret = SndSetSound(SoundEvent.All, ref sfi, true);
}
public static void GetCurrentSoundType()
{
SNDFILEINFO sfi = new SNDFILEINFO();
uint ret = SndGetSound(SoundEvent.All, ref sfi);
SoundType aa = sfi.SstType;
if (aa == 0) Vibra(); else SetRingerOn();
}
public static void Vibra()
{
SNDFILEINFO sfi = new SNDFILEINFO();
sfi.SstType = SoundType.Vibrate;
uint ret = SndSetSound(SoundEvent.All, ref sfi, true);
}
unsafe static void Main(string[] args)
{
//Vibra(); // set vibra mode on
//SetRingerOn(); // set ringer mode on
GetCurrentSoundType(); // in this case we toggle Vibra and Ring...
}
}
}
cheers... :)
Komentarze