controlapp/ControlApp/WatchForMe.cs
2025-03-18 18:05:19 -07:00

322 lines
8.1 KiB
C#

using System;
using System.ComponentModel;
using System.Configuration;
using System.Drawing;
using System.IO;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using AxWMPLib;
using Microsoft.Web.WebView2.WinForms;
namespace ControlApp;
public class WatchForMe : Form
{
private string senderstr;
private string pub_Url;
private const int INTERNET_OPTION_USER_AGENT = 41;
private Utils u;
private DirectoryInfo vlcdir;
private int timewatched;
private int timecensored;
private bool isdeactive;
private int losefocus;
private bool censored;
private IContainer components;
private Timer WatchTime;
private Timer CensorTime;
private WebView2 webView21;
private TextBox textBox1;
private AxWindowsMediaPlayer axWindowsMediaPlayer1;
[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool InternetSetOption(nint hInternet, int dwOption, string lpBuffer, int lpdwBufferLength);
private void SetUserAgent(string userAgent)
{
InternetSetOption(IntPtr.Zero, 41, userAgent, userAgent.Length);
}
private static bool IsWebPage(string input)
{
if (Uri.TryCreate(input, UriKind.Absolute, out Uri uriResult))
{
if (!(uriResult.Scheme == Uri.UriSchemeHttp))
{
return uriResult.Scheme == Uri.UriSchemeHttps;
}
return true;
}
return false;
}
public WatchForMe(string Url, string senderid)
{
u = new Utils();
senderstr = senderid;
SetUserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/109.0");
vlcdir = new DirectoryInfo("C:\\Program Files\\VideoLAN\\VLC");
InitializeComponent();
textBox1.Focus();
switch (Path.GetExtension(Url))
{
case ".mp4":
case ".webm":
case ".webp":
case ".gif":
pub_Url = Url;
axWindowsMediaPlayer1.Ctlenabled = false;
axWindowsMediaPlayer1.uiMode = "None";
axWindowsMediaPlayer1.settings.autoStart = true;
axWindowsMediaPlayer1.settings.setMode("loop", varfMode: true);
if (IsWebPage(Url))
{
if (u.Get_File(Url) != "FAILED")
{
FileInfo fileInfo = new FileInfo(Url);
axWindowsMediaPlayer1.URL = fileInfo.ToString();
}
else
{
axWindowsMediaPlayer1.URL = Url;
}
}
else
{
FileInfo fileInfo2 = new FileInfo(Url);
axWindowsMediaPlayer1.URL = fileInfo2.ToString();
}
webView21.Visible = false;
break;
case ".png":
case ".jpg":
case ".jepg":
{
string file = "";
webView21.Visible = false;
file = u.Get_File(Url);
if (file == "FAILED")
{
Close();
break;
}
Image i = Image.FromFile(file);
Screen my = Screen.AllScreens[0];
if (i.Width > my.Bounds.Width)
{
base.Width = my.Bounds.Width;
}
else
{
base.Width = i.Width;
}
if (i.Height > my.Bounds.Height)
{
base.Height = my.Bounds.Height;
}
else
{
base.Height = i.Height;
}
axWindowsMediaPlayer1.Visible = false;
PictureBox pictureBox = new PictureBox
{
Dock = DockStyle.Fill,
Image = i
};
base.Controls.Add(pictureBox);
break;
}
default:
{
axWindowsMediaPlayer1.Visible = false;
if (Url.Substring(0, 4).ToUpper() != "HTTP")
{
Url = "http://" + Url;
}
Uri uri = new Uri(Url);
webView21.Source = uri;
break;
}
}
AutoSize = true;
timewatched = 0;
timecensored = 0;
losefocus = 0;
WatchTime.Interval = 1000;
WatchTime.Tick += Timer1_Tick;
WatchTime.Start();
CensorTime.Interval = 1000;
CensorTime.Tick += Censored_Tick;
isdeactive = false;
base.Deactivate += Form1_Deactivate;
base.Activated += Form1_Reactivate;
base.FormClosing += Form1_FormClosing;
textBox1.SendToBack();
}
private void WatchForMe_Load(object sender, EventArgs e)
{
censored = false;
}
private void Censored_Tick(object sender, EventArgs e)
{
timecensored++;
}
private void Timer1_Tick(object sender, EventArgs e)
{
if (!isdeactive)
{
textBox1.Focus();
timewatched++;
Text = "Watch for me Time=" + timewatched + ": Censored for=" + timecensored + ": Lost focus=" + losefocus;
}
}
private void Form1_Deactivate(object sender, EventArgs e)
{
losefocus++;
isdeactive = true;
}
private void Form1_Reactivate(object sender, EventArgs e)
{
if (isdeactive)
{
isdeactive = false;
}
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (e.CloseReason == CloseReason.UserClosing)
{
string usrnm = ConfigurationManager.AppSettings["UserName"].ToString();
Utils utils = new Utils();
utils.sendcmd(senderstr, utils.Ecrypt("M=User : " + usrnm + " Watched for : " + timewatched + " seconds. Censored for : " + timecensored + ". Form lost focus :" + losefocus + " times"), all: false);
}
}
public void dokeys()
{
}
private void WFM_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.C)
{
if (censored)
{
base.Opacity = 1.0;
censored = false;
CensorTime.Stop();
}
else
{
base.Opacity = 0.0;
censored = true;
CensorTime.Start();
}
}
}
private void TextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 'c')
{
if (censored)
{
base.Opacity = 1.0;
censored = false;
CensorTime.Stop();
}
else
{
base.Opacity = 0.0;
censored = true;
CensorTime.Start();
}
}
}
protected override void Dispose(bool disposing)
{
if (disposing && components != null)
{
components.Dispose();
}
base.Dispose(disposing);
}
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WatchForMe));
this.WatchTime = new System.Windows.Forms.Timer(this.components);
this.CensorTime = new System.Windows.Forms.Timer(this.components);
this.webView21 = new Microsoft.Web.WebView2.WinForms.WebView2();
this.textBox1 = new System.Windows.Forms.TextBox();
this.axWindowsMediaPlayer1 = new AxWMPLib.AxWindowsMediaPlayer();
((System.ComponentModel.ISupportInitialize)this.webView21).BeginInit();
((System.ComponentModel.ISupportInitialize)this.axWindowsMediaPlayer1).BeginInit();
base.SuspendLayout();
this.webView21.AllowExternalDrop = true;
this.webView21.CreationProperties = null;
this.webView21.DefaultBackgroundColor = System.Drawing.Color.White;
this.webView21.Dock = System.Windows.Forms.DockStyle.Fill;
this.webView21.Location = new System.Drawing.Point(0, 0);
this.webView21.Name = "webView21";
this.webView21.Size = new System.Drawing.Size(1044, 647);
this.webView21.TabIndex = 1;
this.webView21.ZoomFactor = 1.0;
this.textBox1.Location = new System.Drawing.Point(224, 368);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(100, 23);
this.textBox1.TabIndex = 2;
this.textBox1.KeyPress += new System.Windows.Forms.KeyPressEventHandler(TextBox1_KeyPress);
this.textBox1.LostFocus += new System.EventHandler(TextBox1_LostFocus);
this.axWindowsMediaPlayer1.Dock = System.Windows.Forms.DockStyle.Fill;
this.axWindowsMediaPlayer1.Enabled = true;
this.axWindowsMediaPlayer1.Location = new System.Drawing.Point(0, 0);
this.axWindowsMediaPlayer1.Name = "axWindowsMediaPlayer1";
this.axWindowsMediaPlayer1.OcxState = (System.Windows.Forms.AxHost.State)resources.GetObject("axWindowsMediaPlayer1.OcxState");
this.axWindowsMediaPlayer1.Size = new System.Drawing.Size(1044, 647);
this.axWindowsMediaPlayer1.TabIndex = 3;
base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f);
base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
base.ClientSize = new System.Drawing.Size(1044, 647);
base.Controls.Add(this.axWindowsMediaPlayer1);
base.Controls.Add(this.textBox1);
base.Controls.Add(this.webView21);
base.Name = "WatchForMe";
this.Text = "WatchForMe";
base.Load += new System.EventHandler(WatchForMe_Load);
base.KeyDown += new System.Windows.Forms.KeyEventHandler(WFM_KeyDown);
((System.ComponentModel.ISupportInitialize)this.webView21).EndInit();
((System.ComponentModel.ISupportInitialize)this.axWindowsMediaPlayer1).EndInit();
base.ResumeLayout(false);
base.PerformLayout();
}
private void TextBox1_LostFocus(object sender, EventArgs e)
{
textBox1.Focus();
}
}