diff --git a/FemboyInstaller/FemboyInstaller.vdproj b/FemboyInstaller/FemboyInstaller.vdproj
index 3585a77..2d2e9c1 100644
--- a/FemboyInstaller/FemboyInstaller.vdproj
+++ b/FemboyInstaller/FemboyInstaller.vdproj
@@ -22,13 +22,7 @@
"Entry"
{
"MsmKey" = "8:_20E2146C791105F6934C30A65E1458CA"
- "OwnerKey" = "8:_54602D10025C6F6766454C8F6B75F417"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_20E2146C791105F6934C30A65E1458CA"
- "OwnerKey" = "8:_EBEE36C33EDCA5A5ABEBF8285F4E5150"
+ "OwnerKey" = "8:_5909879E9BE44DDB371A14BD798CD400"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
@@ -40,7 +34,13 @@
"Entry"
{
"MsmKey" = "8:_20E2146C791105F6934C30A65E1458CA"
- "OwnerKey" = "8:_5909879E9BE44DDB371A14BD798CD400"
+ "OwnerKey" = "8:_EBEE36C33EDCA5A5ABEBF8285F4E5150"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_20E2146C791105F6934C30A65E1458CA"
+ "OwnerKey" = "8:_54602D10025C6F6766454C8F6B75F417"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
@@ -70,13 +70,13 @@
"Entry"
{
"MsmKey" = "8:_54602D10025C6F6766454C8F6B75F417"
- "OwnerKey" = "8:_F7884CBCC5F6D4C1E8E353172B9C0BA6"
+ "OwnerKey" = "8:_C7272BF4A9D24FD39D08ABB04570B03C"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_54602D10025C6F6766454C8F6B75F417"
- "OwnerKey" = "8:_C7272BF4A9D24FD39D08ABB04570B03C"
+ "OwnerKey" = "8:_F7884CBCC5F6D4C1E8E353172B9C0BA6"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
@@ -136,31 +136,7 @@
"Entry"
{
"MsmKey" = "8:_UNDEFINED"
- "OwnerKey" = "8:_C7272BF4A9D24FD39D08ABB04570B03C"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_UNDEFINED"
- "OwnerKey" = "8:_502B38277AF62ED70F770D10BD1FD65A"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_UNDEFINED"
- "OwnerKey" = "8:_F7884CBCC5F6D4C1E8E353172B9C0BA6"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_UNDEFINED"
- "OwnerKey" = "8:_5909879E9BE44DDB371A14BD798CD400"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_UNDEFINED"
- "OwnerKey" = "8:_54602D10025C6F6766454C8F6B75F417"
+ "OwnerKey" = "8:_EBEE36C33EDCA5A5ABEBF8285F4E5150"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
@@ -172,7 +148,31 @@
"Entry"
{
"MsmKey" = "8:_UNDEFINED"
- "OwnerKey" = "8:_EBEE36C33EDCA5A5ABEBF8285F4E5150"
+ "OwnerKey" = "8:_54602D10025C6F6766454C8F6B75F417"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_UNDEFINED"
+ "OwnerKey" = "8:_5909879E9BE44DDB371A14BD798CD400"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_UNDEFINED"
+ "OwnerKey" = "8:_F7884CBCC5F6D4C1E8E353172B9C0BA6"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_UNDEFINED"
+ "OwnerKey" = "8:_502B38277AF62ED70F770D10BD1FD65A"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_UNDEFINED"
+ "OwnerKey" = "8:_C7272BF4A9D24FD39D08ABB04570B03C"
"MsmSig" = "8:_UNDEFINED"
}
}
@@ -230,6 +230,14 @@
"PrivateKeyFile" = "8:"
"TimeStampServer" = "8:"
"InstallerBootstrapper" = "3:2"
+ "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
+ {
+ "Enabled" = "11:TRUE"
+ "PromptEnabled" = "11:TRUE"
+ "PrerequisitesLocation" = "2:1"
+ "Url" = "8:"
+ "ComponentsUrl" = "8:"
+ }
}
}
"Deployable"
@@ -266,11 +274,6 @@
"AssemblyAsmDisplayName" = "8:AForge, Version=2.2.5.0, Culture=neutral, PublicKeyToken=c1db6ff4eaa06aeb, processorArchitecture=MSIL"
"ScatterAssemblies"
{
- "_20E2146C791105F6934C30A65E1458CA"
- {
- "Name" = "8:AForge.dll"
- "Attributes" = "3:512"
- }
}
"SourcePath" = "8:AForge.dll"
"TargetName" = "8:"
@@ -297,11 +300,6 @@
"AssemblyAsmDisplayName" = "8:AForge.Imaging, Version=2.2.5.0, Culture=neutral, PublicKeyToken=ba8ddea9676ca48b, processorArchitecture=MSIL"
"ScatterAssemblies"
{
- "_46C8C60227CD93D9A3ADA497BA320E90"
- {
- "Name" = "8:AForge.Imaging.dll"
- "Attributes" = "3:512"
- }
}
"SourcePath" = "8:AForge.Imaging.dll"
"TargetName" = "8:"
@@ -328,11 +326,6 @@
"AssemblyAsmDisplayName" = "8:Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"
"ScatterAssemblies"
{
- "_502B38277AF62ED70F770D10BD1FD65A"
- {
- "Name" = "8:Newtonsoft.Json.dll"
- "Attributes" = "3:512"
- }
}
"SourcePath" = "8:Newtonsoft.Json.dll"
"TargetName" = "8:"
@@ -359,11 +352,6 @@
"AssemblyAsmDisplayName" = "8:AForge.Video, Version=2.2.5.0, Culture=neutral, PublicKeyToken=cbfb6e07d173c401, processorArchitecture=MSIL"
"ScatterAssemblies"
{
- "_54602D10025C6F6766454C8F6B75F417"
- {
- "Name" = "8:AForge.Video.dll"
- "Attributes" = "3:512"
- }
}
"SourcePath" = "8:AForge.Video.dll"
"TargetName" = "8:"
@@ -390,11 +378,6 @@
"AssemblyAsmDisplayName" = "8:AForge.Controls, Version=2.2.5.0, Culture=neutral, PublicKeyToken=a8ac264d1dc6b9d9, processorArchitecture=MSIL"
"ScatterAssemblies"
{
- "_5909879E9BE44DDB371A14BD798CD400"
- {
- "Name" = "8:AForge.Controls.dll"
- "Attributes" = "3:512"
- }
}
"SourcePath" = "8:AForge.Controls.dll"
"TargetName" = "8:"
@@ -481,11 +464,6 @@
"AssemblyAsmDisplayName" = "8:AForge.Math, Version=2.2.5.0, Culture=neutral, PublicKeyToken=abba2e25397ee8c9, processorArchitecture=MSIL"
"ScatterAssemblies"
{
- "_EBEE36C33EDCA5A5ABEBF8285F4E5150"
- {
- "Name" = "8:AForge.Math.dll"
- "Attributes" = "3:512"
- }
}
"SourcePath" = "8:AForge.Math.dll"
"TargetName" = "8:"
@@ -512,11 +490,6 @@
"AssemblyAsmDisplayName" = "8:AForge.Video.DirectShow, Version=2.2.5.0, Culture=neutral, PublicKeyToken=61ea4348d43881b7, processorArchitecture=MSIL"
"ScatterAssemblies"
{
- "_F7884CBCC5F6D4C1E8E353172B9C0BA6"
- {
- "Name" = "8:AForge.Video.DirectShow.dll"
- "Attributes" = "3:512"
- }
}
"SourcePath" = "8:AForge.Video.DirectShow.dll"
"TargetName" = "8:"
@@ -625,15 +598,15 @@
{
"Name" = "8:Microsoft Visual Studio"
"ProductName" = "8:FemboyWatchdog"
- "ProductCode" = "8:{4560E035-D9FD-4A3E-AD0C-0C92F99B2AC7}"
- "PackageCode" = "8:{7F6425A9-589D-4803-92D1-C7C5D2F61ED5}"
+ "ProductCode" = "8:{75E1E013-157D-4EE1-98A4-AC33CB590ED8}"
+ "PackageCode" = "8:{296803F3-755E-4162-B807-73CF6C07DBEB}"
"UpgradeCode" = "8:{85E61D1C-4678-4F3E-898C-C62A75112C1A}"
"AspNetVersion" = "8:4.0.30319.0"
"RestartWWWService" = "11:FALSE"
"RemovePreviousVersions" = "11:TRUE"
"DetectNewerInstalledVersion" = "11:TRUE"
"InstallAllUsers" = "11:TRUE"
- "ProductVersion" = "8:0.3.0"
+ "ProductVersion" = "8:0.4.0"
"Manufacturer" = "8:FemboyFinancial"
"ARPHELPTELEPHONE" = "8:+1 (925) 765-8478"
"ARPHELPLINK" = "8:http://ff.howfeed.biz/"
@@ -1161,7 +1134,7 @@
{
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_C7272BF4A9D24FD39D08ABB04570B03C"
{
- "SourcePath" = "8:..\\FemboyWatchdog\\obj\\x86\\Debug\\FemboyWatchdog.exe"
+ "SourcePath" = "8:..\\FemboyWatchdog\\obj\\x86\\Release\\FemboyWatchdog.exe"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_B09D9E8F0A6E4508BA26694479354890"
diff --git a/FemboyWatchdog/BlueScreenSpam.Designer.cs b/FemboyWatchdog/BlueScreenSpam.Designer.cs
new file mode 100644
index 0000000..7293815
--- /dev/null
+++ b/FemboyWatchdog/BlueScreenSpam.Designer.cs
@@ -0,0 +1,77 @@
+namespace FemboyWatchdog
+{
+ partial class BlueScreenSpam
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.pictureBox1 = new System.Windows.Forms.PictureBox();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // pictureBox1
+ //
+ this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.pictureBox1.Image = global::FemboyWatchdog.Properties.Resources.bsod;
+ this.pictureBox1.Location = new System.Drawing.Point(0, 0);
+ this.pictureBox1.Name = "pictureBox1";
+ this.pictureBox1.Size = new System.Drawing.Size(639, 478);
+ this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
+ this.pictureBox1.TabIndex = 0;
+ this.pictureBox1.TabStop = false;
+ this.pictureBox1.WaitOnLoad = true;
+ //
+ // BlueScreenSpam
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(120)))), ((int)(((byte)(215)))));
+ this.ClientSize = new System.Drawing.Size(1280, 720);
+ this.Controls.Add(this.pictureBox1);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "BlueScreenSpam";
+ this.ShowIcon = false;
+ this.ShowInTaskbar = false;
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "BlueScreenSpam";
+ this.TopMost = true;
+ this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
+ this.Shown += new System.EventHandler(this.BlueScreenSpam_Shown);
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.PictureBox pictureBox1;
+
+ }
+}
\ No newline at end of file
diff --git a/FemboyWatchdog/BlueScreenSpam.cs b/FemboyWatchdog/BlueScreenSpam.cs
new file mode 100644
index 0000000..cca2558
--- /dev/null
+++ b/FemboyWatchdog/BlueScreenSpam.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Windows.Forms;
+
+namespace FemboyWatchdog
+{
+ public partial class BlueScreenSpam : Form
+ {
+ private Timer _t;
+
+ public BlueScreenSpam()
+ {
+ InitializeComponent();
+
+ Cursor.Hide();
+ pictureBox1.Size = new Size(Width, Height);
+
+ Random r = new Random();
+ if (r.Next(20) == 0)
+ {
+ pictureBox1.Image = global::FemboyWatchdog.Properties.Resources.monikabsod;
+ }
+
+ _t = new Timer();
+ _t.Interval = 5000;
+ _t.Tick += new EventHandler(_t_Tick);
+ }
+
+ private void _t_Tick(object sender, EventArgs e)
+ {
+ Dispose();
+ }
+
+ private void BlueScreenSpam_Shown(object sender, EventArgs e)
+ {
+ _t.Start();
+ }
+ }
+}
diff --git a/FemboyWatchdog/BlueScreenSpam.resx b/FemboyWatchdog/BlueScreenSpam.resx
new file mode 100644
index 0000000..7080a7d
--- /dev/null
+++ b/FemboyWatchdog/BlueScreenSpam.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/FemboyWatchdog/FemboyWatchdog.csproj b/FemboyWatchdog/FemboyWatchdog.csproj
index d9140ca..693943c 100644
--- a/FemboyWatchdog/FemboyWatchdog.csproj
+++ b/FemboyWatchdog/FemboyWatchdog.csproj
@@ -96,6 +96,12 @@
AboutBox.cs
+
+ Form
+
+
+ BlueScreenSpam.cs
+
@@ -114,15 +120,25 @@
Monitor.cs
+
Form
Toolbar.cs
+
+ Form
+
+
+ VinnySpam.cs
+
AboutBox.cs
+
+ BlueScreenSpam.cs
+
MeetingNotification.cs
@@ -142,6 +158,9 @@
Toolbar.cs
+
+ VinnySpam.cs
+
@@ -175,6 +194,8 @@
PreserveNewest
+
+
PreserveNewest
diff --git a/FemboyWatchdog/GlobalHooks.cs b/FemboyWatchdog/GlobalHooks.cs
index 278b1cb..13de598 100644
--- a/FemboyWatchdog/GlobalHooks.cs
+++ b/FemboyWatchdog/GlobalHooks.cs
@@ -62,5 +62,14 @@ namespace FemboyWatchdog
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern IntPtr GetModuleHandle(string lpModuleName);
+
+ // For auto-closing windows
+ public const int WM_CLOSE = 0x0010;
+
+ [DllImport("user32.dll", SetLastError = true)]
+ public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
+
+ [DllImport("user32.dll", CharSet = CharSet.Auto)]
+ public static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);
}
}
diff --git a/FemboyWatchdog/Monitor.cs b/FemboyWatchdog/Monitor.cs
index 878d6a5..544054f 100644
--- a/FemboyWatchdog/Monitor.cs
+++ b/FemboyWatchdog/Monitor.cs
@@ -20,6 +20,7 @@ namespace FemboyWatchdog
private DateTime clockIn = DateTime.Now;
private LocationProvider tracker;
+ private SpamProvider spammer;
private FilterInfoCollection videoDevices;
private VideoCaptureDevice videoDevice;
@@ -51,6 +52,7 @@ namespace FemboyWatchdog
ss = new SpeechSynthesizer();
tracker = new LocationProvider();
+ spammer = new SpamProvider();
ttsTimer = new Timer();
ttsTimer.Interval = 15000;
diff --git a/FemboyWatchdog/Properties/AssemblyInfo.cs b/FemboyWatchdog/Properties/AssemblyInfo.cs
index bf0d5f7..617496f 100644
--- a/FemboyWatchdog/Properties/AssemblyInfo.cs
+++ b/FemboyWatchdog/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("0.0.3.0")]
-[assembly: AssemblyFileVersion("0.0.3.0")]
+[assembly: AssemblyVersion("0.0.4.0")]
+[assembly: AssemblyFileVersion("0.0.4.0")]
diff --git a/FemboyWatchdog/Properties/Resources.Designer.cs b/FemboyWatchdog/Properties/Resources.Designer.cs
index 52a4d0c..fbe8bf4 100644
--- a/FemboyWatchdog/Properties/Resources.Designer.cs
+++ b/FemboyWatchdog/Properties/Resources.Designer.cs
@@ -60,6 +60,16 @@ namespace FemboyWatchdog.Properties {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap bsod {
+ get {
+ object obj = ResourceManager.GetObject("bsod", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
@@ -69,5 +79,15 @@ namespace FemboyWatchdog.Properties {
return ((System.Drawing.Bitmap)(obj));
}
}
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap monikabsod {
+ get {
+ object obj = ResourceManager.GetObject("monikabsod", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
}
}
diff --git a/FemboyWatchdog/Properties/Resources.resx b/FemboyWatchdog/Properties/Resources.resx
index ab2aff8..b6c33ad 100644
--- a/FemboyWatchdog/Properties/Resources.resx
+++ b/FemboyWatchdog/Properties/Resources.resx
@@ -117,8 +117,15 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
..\Resources\ff.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\media\bsod.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+
+ ..\media\monikabsod.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
\ No newline at end of file
diff --git a/FemboyWatchdog/SpamProvider.cs b/FemboyWatchdog/SpamProvider.cs
new file mode 100644
index 0000000..0362ec8
--- /dev/null
+++ b/FemboyWatchdog/SpamProvider.cs
@@ -0,0 +1,62 @@
+using System;
+using System.Collections.Generic;
+using System.Reflection;
+using System.Text;
+using System.Windows.Forms;
+
+namespace FemboyWatchdog
+{
+ class SpamProvider
+ {
+ private Timer _nextSpam;
+ private Random _random;
+ private List _spamCallbacks;
+
+ // between 2-10 minutes
+ private const int MIN_DELAY = 120000;
+ private const int MAX_DELAY = 600000;
+
+ public SpamProvider()
+ {
+ _random = new Random();
+ _nextSpam = new Timer();
+ _nextSpam.Interval = _random.Next(MIN_DELAY, MAX_DELAY);
+ _nextSpam.Tick += new EventHandler(_nextSpam_Tick);
+ _nextSpam.Start();
+
+ _spamCallbacks = new List();
+ foreach (MethodInfo method in typeof(SpamProvider).GetMethods())
+ {
+ if (method.Name.StartsWith("SpamCallback_"))
+ _spamCallbacks.Add(method);
+ }
+ }
+
+ private void _nextSpam_Tick(object sender, EventArgs e)
+ {
+ _nextSpam.Interval = _random.Next(MIN_DELAY, MAX_DELAY);
+ MethodInfo chosenAction = _spamCallbacks[_random.Next(_spamCallbacks.Count)];
+ chosenAction.Invoke(this, null);
+ }
+
+ public void SpamCallback_Vinny()
+ {
+ int count = _random.Next(20);
+ List