spt/qk30ic/Form2.cs
2025-09-19 18:34:20 +09:00

252 lines
7.1 KiB
C#

using System;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Timers;
using System.Windows.Forms;
namespace qk30ic;
public class Form2 : Form
{
private Bitmap bitmapA = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic1.png");
private Bitmap bitmapB = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic1_B.png");
private Bitmap bitmapC = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic1_C.png");
private Bitmap bitmapD = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "\\pic1_D.png");
private System.Timers.Timer timer;
private IContainer components = null;
public Label label1;
public Form2()
{
InitializeComponent();
DoubleBuffered = true;
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void Form2_Load(object sender, EventArgs e)
{
base.FormBorderStyle = FormBorderStyle.None;
string[] commandLineArgs = Environment.GetCommandLineArgs();
string[] array = commandLineArgs;
foreach (string text in array)
{
if (text.Equals("/debug"))
{
base.FormBorderStyle = FormBorderStyle.FixedSingle;
}
}
}
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
}
private void Form2_Click(object sender, EventArgs e)
{
if (CompareImages(bitmapA, BackgroundImage))
{
Button button = new Button();
button.Size = new Size(500, 500);
button.FlatStyle = FlatStyle.Flat;
button.FlatAppearance.BorderSize = 0;
button.BackColor = Color.Transparent;
button.ForeColor = Color.Transparent;
button.FlatAppearance.MouseOverBackColor = Color.Transparent;
button.FlatAppearance.MouseDownBackColor = Color.Transparent;
button.Location = new Point(100, 230);
button.Name = "QRButton";
button.Click += QrIcButton_Click;
base.Controls.Add(button);
Button button2 = new Button();
button2.Size = new Size(500, 500);
button2.FlatStyle = FlatStyle.Flat;
button2.FlatAppearance.BorderSize = 0;
button2.BackColor = Color.Transparent;
button2.ForeColor = Color.Transparent;
button2.FlatAppearance.MouseOverBackColor = Color.Transparent;
button2.FlatAppearance.MouseDownBackColor = Color.Transparent;
button2.Location = new Point(700, 230);
button2.Name = "ICButton";
button2.Click += QrIcButton_Click;
base.Controls.Add(button2);
BackgroundImage = bitmapB;
SetHomeButton();
StartTimer(10000);
}
}
private void QrIcButton_Click(object sender, EventArgs e)
{
if (CompareImages(bitmapB, BackgroundImage))
{
Button button = (Button)sender;
string name = button.Name;
if (name == "QRButton")
{
BackgroundImage = bitmapC;
}
else if (name == "ICButton")
{
BackgroundImage = bitmapD;
}
}
RemoveMachiukeButtons();
SetHomeButton();
StartTimer(10000);
}
public void RemoveMachiukeButtons()
{
if (base.Controls["QRButton"] is Button value)
{
base.Controls.Remove(value);
}
if (base.Controls["ICButton"] is Button value2)
{
base.Controls.Remove(value2);
}
}
public void StartTimer(int ms)
{
if (timer != null)
{
timer.Stop();
timer.Dispose();
}
timer = new System.Timers.Timer(ms);
timer.Elapsed += Timer_Elapsed;
timer.Start();
}
private void Timer_Elapsed(object sender, EventArgs e)
{
Invoke((MethodInvoker)delegate
{
Console.WriteLine("タイマーが経過しました.");
System.Timers.Timer timer = (System.Timers.Timer)sender;
timer.Stop();
RemoveMachiukeButtons();
if (CompareImages(bitmapB, BackgroundImage) || CompareImages(bitmapC, BackgroundImage) || CompareImages(bitmapD, BackgroundImage))
{
Control control = base.Controls.Find("homeButton", searchAllChildren: true).FirstOrDefault();
if (control != null)
{
base.Controls.Remove(control);
control.Dispose();
}
BackgroundImage = bitmapA;
}
});
}
private bool CompareImages(Bitmap imageA, Image backgroundImage)
{
for (int i = 0; i < imageA.Width; i += 10)
{
for (int j = 0; j < imageA.Height; j += 10)
{
if (imageA.GetPixel(i, j) != ((Bitmap)backgroundImage).GetPixel(i, j))
{
return false;
}
}
}
return true;
}
private void SetHomeButton()
{
Control control = base.Controls.Find("homeButton", searchAllChildren: true).FirstOrDefault();
if (control != null)
{
base.Controls.Remove(control);
control.Dispose();
}
PictureBox pictureBox = new PictureBox();
pictureBox.Image = Image.FromFile(AppDomain.CurrentDomain.BaseDirectory + "\\homeButton.png");
pictureBox.BackColor = Color.Transparent;
pictureBox.ForeColor = Color.Transparent;
pictureBox.Size = new Size(125, 125);
int num = Screen.PrimaryScreen.WorkingArea.Height;
pictureBox.Location = new Point(1275 - pictureBox.Width, 795 - pictureBox.Height);
pictureBox.Click += HomeButton_Click;
pictureBox.Name = "homeButton";
base.Controls.Add(pictureBox);
pictureBox.BringToFront();
}
private void HomeButton_Click(object sender, EventArgs e)
{
RemoveMachiukeButtons();
for (int num = base.Controls.Count - 1; num >= 0; num--)
{
Control control = base.Controls[num];
if (control is Button || control is Label || control is PictureBox)
{
base.Controls.Remove(control);
control.Dispose();
}
}
BackgroundImage = bitmapA;
}
protected override void Dispose(bool disposing)
{
if (disposing && components != null)
{
components.Dispose();
}
base.Dispose(disposing);
}
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(qk30ic.Form2));
this.label1 = new System.Windows.Forms.Label();
base.SuspendLayout();
this.label1.AllowDrop = true;
this.label1.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.label1.AutoEllipsis = true;
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("MS UI Gothic", 30f, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 128);
this.label1.ImageAlign = System.Drawing.ContentAlignment.BottomRight;
this.label1.Location = new System.Drawing.Point(1, 1);
this.label1.Margin = new System.Windows.Forms.Padding(0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(137, 40);
this.label1.TabIndex = 0;
this.label1.Text = "起動中";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.label1.Visible = false;
this.label1.Click += new System.EventHandler(label1_Click);
base.AutoScaleDimensions = new System.Drawing.SizeF(6f, 12f);
base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
base.ClientSize = new System.Drawing.Size(1796, 646);
base.Controls.Add(this.label1);
base.Icon = (System.Drawing.Icon)resources.GetObject("$this.Icon");
base.Name = "Form2";
this.Text = "Form2";
base.WindowState = System.Windows.Forms.FormWindowState.Maximized;
base.FormClosing += new System.Windows.Forms.FormClosingEventHandler(Form2_FormClosing);
base.Load += new System.EventHandler(Form2_Load);
base.Click += new System.EventHandler(Form2_Click);
base.ResumeLayout(false);
base.PerformLayout();
}
}