63 lines
1.8 KiB
C#
63 lines
1.8 KiB
C#
namespace DualScreenDemo
|
|
{
|
|
|
|
public class SequenceManager
|
|
{
|
|
private ClickSequenceState currentState = ClickSequenceState.Initial;
|
|
|
|
public void ProcessClick(string position)
|
|
{
|
|
switch (currentState)
|
|
{
|
|
case ClickSequenceState.Initial:
|
|
if (position == "中間")
|
|
{
|
|
currentState = ClickSequenceState.FirstClicked;
|
|
}
|
|
break;
|
|
case ClickSequenceState.FirstClicked:
|
|
if (position == "右上")
|
|
{
|
|
currentState = ClickSequenceState.SecondClicked;
|
|
}
|
|
else
|
|
{
|
|
ResetState();
|
|
}
|
|
break;
|
|
case ClickSequenceState.SecondClicked:
|
|
if (position == "左上")
|
|
{
|
|
currentState = ClickSequenceState.ThirdClicked;
|
|
}
|
|
else
|
|
{
|
|
ResetState();
|
|
}
|
|
break;
|
|
case ClickSequenceState.ThirdClicked:
|
|
if (position == "謝謝")
|
|
{
|
|
currentState = ClickSequenceState.Completed;
|
|
PerformShutdown();
|
|
}
|
|
else
|
|
{
|
|
ResetState();
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
private void ResetState()
|
|
{
|
|
currentState = ClickSequenceState.Initial;
|
|
}
|
|
|
|
private void PerformShutdown()
|
|
{
|
|
|
|
System.Diagnostics.Process.Start("shutdown", "/s /t 0");
|
|
}
|
|
}
|
|
} |