Eu escrevi um aplicativo C # no .net 2.0 dias, então isso deve funcionar, já que o embedded pode ter 3.0
Este é um código feio de quando eu era um iniciante, mas você poderia escrever algo que usa as chamadas api encontradas aqui e passa a maior parte do tempo dormindo a menos que veja uma janela que precisa matar. Outros casos em que você pode precisar licenciar um aplicativo que essencialmente faz a mesma coisa. :) Além disso, se você não pode colocar .net lá, estas são chamadas padrão do Windows, então qualquer programador C ++ na loja poderia colocar isso junto para você em cerca de 2 horas.
using System;
using System.Collections;
using System.Threading;
using System.Runtime.InteropServices; // Dllimport
namespace osconfig
{
/// <summary>
/// Summary description for WindowHiding.
/// </summary>
public class WindowHiding
{
ArrayList windowNames;
private const int sleepTime = 100;
// For findind the windows dialogs that popup when devices are detected
[DllImport ("user32.dll")]
public static extern int ShowWindow (IntPtr hWnd, int nCmdShow);
[DllImport("User32.dll", CharSet=CharSet.Auto)]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
//private const int SW_SHOW = 5;
private const int SW_HIDE = 0;
private const short WM_COPYDATA = 74;
public WindowHiding(ArrayList wNames)
{
this.windowNames = wNames;
}
// Spin a thread that hunts down and hides windows
public void hideWindows()
{
// Run until we are told to stop
while (true)
{
IntPtr foundHardwareWindowHandle;
int result;
// Look for each of the window names.
foreach (string wName in this.windowNames)
{
try
{
foundHardwareWindowHandle = FindWindow(null, wName);
if (foundHardwareWindowHandle.ToInt32() > 0)
{
// Found it. Hide it.
result = ShowWindow(foundHardwareWindowHandle, SW_HIDE);
}
}
catch
{
// Do nothing...
}
}
// Go to sleep
Thread.Sleep(sleepTime);
}
}
}
}