<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Turn off all popup notifications in .NET Forum</title>
    <link>https://forums.autodesk.com/t5/net-forum/turn-off-all-popup-notifications/m-p/6334085#M36030</link>
    <description>fixedprofile.aws was already set to disable aec message. I already set all options on the profile not to show any message. but my tray settings was 1. So I changed it to 0. I will see if this will fix it. thanks,</description>
    <pubDate>Wed, 18 May 2016 15:52:37 GMT</pubDate>
    <dc:creator>mnpatric</dc:creator>
    <dc:date>2016-05-18T15:52:37Z</dc:date>
    <item>
      <title>Turn off all popup notifications</title>
      <link>https://forums.autodesk.com/t5/net-forum/turn-off-all-popup-notifications/m-p/6330674#M36026</link>
      <description>&lt;P&gt;I've developped a c# application that loop through a selection of drawings to open and plot each one in the AutoCAD 2014. &amp;nbsp;But some notifications pop up and interrupt the automation. &amp;nbsp;I think that I disabled all possible notification setting on the profile, but some still pop up such one in the attachment. &amp;nbsp;How can I turn off all notifications?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 17 May 2016 16:04:32 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/turn-off-all-popup-notifications/m-p/6330674#M36026</guid>
      <dc:creator>mnpatric</dc:creator>
      <dc:date>2016-05-17T16:04:32Z</dc:date>
    </item>
    <item>
      <title>Re: Turn off all popup notifications</title>
      <link>https://forums.autodesk.com/t5/net-forum/turn-off-all-popup-notifications/m-p/6332951#M36027</link>
      <description>&lt;P&gt;Most of the pop-up messages are part of AutoCAD editor UI features, because the editor UI, well, is UI - unser interfacce, and meant to provide information that users need to know.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can do as much as possible in AutoCAD options (specify valid alternate font/linetype..., make sure the specified temp file location actually exists...You should look into system variable "EXPERT", if you have not:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://knowledge.autodesk.com/support/autocad/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/AutoCAD-Core/files/GUID-28C09385-C00B-48F6-9765-7CB178CDD891-htm.html" target="_self"&gt;https://knowledge.autodesk.com/support/autocad/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/AutoCAD-Core/files/GUID-28C09385-C00B-48F6-9765-7CB178CDD891-htm.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You also need to keep it into your mind that if you use AutoCAD verticals (such as AutoCAD Map/Civil3D), they may also introduce their own pop-up messages that you simply no way to suppress.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thus, no matter what you do, there are always chances that AutoCAD pops up message that blocks your batch process.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If possible, you may consider to use side database (no plotting, though), or acad coreconsole to do the batch process.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 18 May 2016 13:39:00 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/turn-off-all-popup-notifications/m-p/6332951#M36027</guid>
      <dc:creator>norman.yuan</dc:creator>
      <dc:date>2016-05-18T13:39:00Z</dc:date>
    </item>
    <item>
      <title>Re: Turn off all popup notifications</title>
      <link>https://forums.autodesk.com/t5/net-forum/turn-off-all-popup-notifications/m-p/6333653#M36028</link>
      <description>&lt;P&gt;I like to add that some of these messages are stored in the *.aws files, like mentioned by Fenton:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="http://adndevblog.typepad.com/autocad/fenton-webb/page/2/" target="_blank"&gt;http://adndevblog.typepad.com/autocad/fenton-webb/page/2/&lt;/A&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;These ‘hide dialog’ settings are stored in your&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; %APPDATA%\Autodesk\AutoCAD 2014\R19.1\enu\Support\Profiles\Unnamed Profile\fixedprofile.aws&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; under the HideableDialogs section.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Check the "Do not show me this message again", quit AutoCAD and look for changes in the AWS.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also TRAYNOTIFY=0 dismis some (not all) of these anoying messages.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;IMG src="https://forums.autodesk.com/t5/image/serverpage/image-id/240440i331CEB30809194EC/image-size/original?v=v2&amp;amp;px=-1" alt="Screenshot_1.png" title="Screenshot_1.png" border="0" /&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 18 May 2016 15:08:34 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/turn-off-all-popup-notifications/m-p/6333653#M36028</guid>
      <dc:creator>SENL1362</dc:creator>
      <dc:date>2016-05-18T15:08:34Z</dc:date>
    </item>
    <item>
      <title>Re: Turn off all popup notifications</title>
      <link>https://forums.autodesk.com/t5/net-forum/turn-off-all-popup-notifications/m-p/6333962#M36029</link>
      <description>&lt;P&gt;The Expert system variable doesn't contorl the message that I need to turn off.&lt;/P&gt;</description>
      <pubDate>Wed, 18 May 2016 15:35:18 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/turn-off-all-popup-notifications/m-p/6333962#M36029</guid>
      <dc:creator>mnpatric</dc:creator>
      <dc:date>2016-05-18T15:35:18Z</dc:date>
    </item>
    <item>
      <title>Re: Turn off all popup notifications</title>
      <link>https://forums.autodesk.com/t5/net-forum/turn-off-all-popup-notifications/m-p/6334085#M36030</link>
      <description>fixedprofile.aws was already set to disable aec message. I already set all options on the profile not to show any message. but my tray settings was 1. So I changed it to 0. I will see if this will fix it. thanks,</description>
      <pubDate>Wed, 18 May 2016 15:52:37 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/turn-off-all-popup-notifications/m-p/6334085#M36030</guid>
      <dc:creator>mnpatric</dc:creator>
      <dc:date>2016-05-18T15:52:37Z</dc:date>
    </item>
    <item>
      <title>Re: Turn off all popup notifications</title>
      <link>https://forums.autodesk.com/t5/net-forum/turn-off-all-popup-notifications/m-p/6340056#M36031</link>
      <description>&lt;P&gt;Maybe it's a way to complex and not guaranteed to works properly, but I'm using a radical technique: I intercept windows opening and I send WM_CLOSE messages to those I'm interested in.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here some code. In your main window install the handler:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;comsCoreSupport.Win32.LocalCbtHook cbt = new comsCoreSupport.Win32.LocalCbtHook();
cbt.WindowCreated += new comsCoreSupport.Win32.LocalCbtHook.CbtEventHandler(cbt_WindowCreated);
cbt.Install();  // install dialog watcher&lt;/PRE&gt;&lt;P&gt;the dialog watcher will handle unexpected dialog windows:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;void cbt_WindowCreated(object sender, comsCoreSupport.Win32.CbtEventArgs e)
{
    if (e.IsDialogWindow &amp;amp;&amp;amp; (e.Title.Length &amp;gt; 0))
    {
        AddMessage("    **** WARNING DIALOG SUPPRESSED: " + e.Title);

        // try to close it
        comsCoreSupport.Win32.User32.SendMessage(e.Handle, (int)comsCoreSupport.Win32.Msgs.WM_CLOSE, IntPtr.Zero, IntPtr.Zero);   
    }
}&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;and here the support functions and declaration:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;using System;
using System.Text;
using System.Runtime.InteropServices;

namespace comsCoreSupport.Win32
{
	public delegate int WindowProcDelegate(IntPtr hw, IntPtr uMsg, IntPtr wParam, IntPtr lParam);
	
	// Filter function delegate
	public delegate int HookProc(int code, IntPtr wParam, IntPtr lParam);

	/// &amp;lt;summary&amp;gt;
	/// Windows User32 DLL declarations
	/// &amp;lt;/summary&amp;gt;
	public class User32
	{
		[DllImport("User32.dll", CharSet=CharSet.Auto)]
		public static extern IntPtr SetClipboardViewer(IntPtr hWnd);

		[DllImport("User32.dll", CharSet=CharSet.Auto)]
		public static extern bool ChangeClipboardChain(
			IntPtr hWndRemove,  // handle to window to remove
			IntPtr hWndNewNext  // handle to next window
		);

		[DllImport("user32.dll", CharSet=CharSet.Auto)]
		public static extern int SendMessage(IntPtr hwnd, int wMsg, IntPtr wParam, IntPtr lParam);

		[DllImport("user32.dll")]
		public static extern IntPtr SetWindowsHookEx(HookType code, HookProc func, IntPtr hInstance, int threadID);

		[DllImport("user32.dll")]
		public static extern int UnhookWindowsHookEx(IntPtr hhook);

		[DllImport("user32.dll")]
		public static extern int CallNextHookEx(IntPtr hhook, int code, IntPtr wParam, IntPtr lParam);

		[DllImport("user32.dll")]
		public static extern int GetClassName(IntPtr hwnd, StringBuilder lpClassName, int nMaxCount);

		[DllImport("user32.dll")]
		public static extern int GetWindowText(IntPtr hwnd, StringBuilder lpString, int nMaxCount);

	}

	/// &amp;lt;summary&amp;gt;
	/// Windows Event Messages sent to the WindowProc
	/// &amp;lt;/summary&amp;gt;
	public enum Msgs : int
	{
		WM_NULL                   = 0x0000,
		WM_CREATE                 = 0x0001,
		WM_DESTROY                = 0x0002,
		WM_MOVE                   = 0x0003,
		WM_SIZE                   = 0x0005,
		WM_ACTIVATE               = 0x0006,
		WM_SETFOCUS               = 0x0007,
		WM_KILLFOCUS              = 0x0008,
		WM_ENABLE                 = 0x000A,
		WM_SETREDRAW              = 0x000B,
		WM_SETTEXT                = 0x000C,
		WM_GETTEXT                = 0x000D,
		WM_GETTEXTLENGTH          = 0x000E,
		WM_PAINT                  = 0x000F,
		WM_CLOSE                  = 0x0010,
		WM_QUERYENDSESSION        = 0x0011,
		WM_QUIT                   = 0x0012,
		WM_QUERYOPEN              = 0x0013,
		WM_ERASEBKGND             = 0x0014,
		WM_SYSCOLORCHANGE         = 0x0015,
		WM_ENDSESSION             = 0x0016,
		WM_SHOWWINDOW             = 0x0018,
		WM_WININICHANGE           = 0x001A,
		WM_SETTINGCHANGE          = 0x001A,
		WM_DEVMODECHANGE          = 0x001B,
		WM_ACTIVATEAPP            = 0x001C,
		WM_FONTCHANGE             = 0x001D,
		WM_TIMECHANGE             = 0x001E,
		WM_CANCELMODE             = 0x001F,
		WM_SETCURSOR              = 0x0020,
		WM_MOUSEACTIVATE          = 0x0021,
		WM_CHILDACTIVATE          = 0x0022,
		WM_QUEUESYNC              = 0x0023,
		WM_GETMINMAXINFO          = 0x0024,
		WM_PAINTICON              = 0x0026,
		WM_ICONERASEBKGND         = 0x0027,
		WM_NEXTDLGCTL             = 0x0028,
		WM_SPOOLERSTATUS          = 0x002A,
		WM_DRAWITEM               = 0x002B,
		WM_MEASUREITEM            = 0x002C,
		WM_DELETEITEM             = 0x002D,
		WM_VKEYTOITEM             = 0x002E,
		WM_CHARTOITEM             = 0x002F,
		WM_SETFONT                = 0x0030,
		WM_GETFONT                = 0x0031,
		WM_SETHOTKEY              = 0x0032,
		WM_GETHOTKEY              = 0x0033,
		WM_QUERYDRAGICON          = 0x0037,
		WM_COMPAREITEM            = 0x0039,
		WM_GETOBJECT              = 0x003D,
		WM_COMPACTING             = 0x0041,
		WM_COMMNOTIFY             = 0x0044 ,
		WM_WINDOWPOSCHANGING      = 0x0046,
		WM_WINDOWPOSCHANGED       = 0x0047,
		WM_POWER                  = 0x0048,
		WM_COPYDATA               = 0x004A,
		WM_CANCELJOURNAL          = 0x004B,
		WM_NOTIFY                 = 0x004E,
		WM_INPUTLANGCHANGEREQUEST = 0x0050,
		WM_INPUTLANGCHANGE        = 0x0051,
		WM_TCARD                  = 0x0052,
		WM_HELP                   = 0x0053,
		WM_USERCHANGED            = 0x0054,
		WM_NOTIFYFORMAT           = 0x0055,
		WM_CONTEXTMENU            = 0x007B,
		WM_STYLECHANGING          = 0x007C,
		WM_STYLECHANGED           = 0x007D,
		WM_DISPLAYCHANGE          = 0x007E,
		WM_GETICON                = 0x007F,
		WM_SETICON                = 0x0080,
		WM_NCCREATE               = 0x0081,
		WM_NCDESTROY              = 0x0082,
		WM_NCCALCSIZE             = 0x0083,
		WM_NCHITTEST              = 0x0084,
		WM_NCPAINT                = 0x0085,
		WM_NCACTIVATE             = 0x0086,
		WM_GETDLGCODE             = 0x0087,
		WM_SYNCPAINT              = 0x0088,
		WM_NCMOUSEMOVE            = 0x00A0,
		WM_NCLBUTTONDOWN          = 0x00A1,
		WM_NCLBUTTONUP            = 0x00A2,
		WM_NCLBUTTONDBLCLK        = 0x00A3,
		WM_NCRBUTTONDOWN          = 0x00A4,
		WM_NCRBUTTONUP            = 0x00A5,
		WM_NCRBUTTONDBLCLK        = 0x00A6,
		WM_NCMBUTTONDOWN          = 0x00A7,
		WM_NCMBUTTONUP            = 0x00A8,
		WM_NCMBUTTONDBLCLK        = 0x00A9,
		WM_NCXBUTTONDOWN          = 0x00AB,
		WM_NCXBUTTONUP            = 0x00AC,
		WM_KEYDOWN                = 0x0100,
		WM_KEYUP                  = 0x0101,
		WM_CHAR                   = 0x0102,
		WM_DEADCHAR               = 0x0103,
		WM_SYSKEYDOWN             = 0x0104,
		WM_SYSKEYUP               = 0x0105,
		WM_SYSCHAR                = 0x0106,
		WM_SYSDEADCHAR            = 0x0107,
		WM_KEYLAST                = 0x0108,
		WM_IME_STARTCOMPOSITION   = 0x010D,
		WM_IME_ENDCOMPOSITION     = 0x010E,
		WM_IME_COMPOSITION        = 0x010F,
		WM_IME_KEYLAST            = 0x010F,
		WM_INITDIALOG             = 0x0110,
		WM_COMMAND                = 0x0111,
		WM_SYSCOMMAND             = 0x0112,
		WM_TIMER                  = 0x0113,
		WM_HSCROLL                = 0x0114,
		WM_VSCROLL                = 0x0115,
		WM_INITMENU               = 0x0116,
		WM_INITMENUPOPUP          = 0x0117,
		WM_MENUSELECT             = 0x011F,
		WM_MENUCHAR               = 0x0120,
		WM_ENTERIDLE              = 0x0121,
		WM_MENURBUTTONUP          = 0x0122,
		WM_MENUDRAG               = 0x0123,
		WM_MENUGETOBJECT          = 0x0124,
		WM_UNINITMENUPOPUP        = 0x0125,
		WM_MENUCOMMAND            = 0x0126,
		WM_CTLCOLORMSGBOX         = 0x0132,
		WM_CTLCOLOREDIT           = 0x0133,
		WM_CTLCOLORLISTBOX        = 0x0134,
		WM_CTLCOLORBTN            = 0x0135,
		WM_CTLCOLORDLG            = 0x0136,
		WM_CTLCOLORSCROLLBAR      = 0x0137,
		WM_CTLCOLORSTATIC         = 0x0138,
		WM_MOUSEMOVE              = 0x0200,
		WM_LBUTTONDOWN            = 0x0201,
		WM_LBUTTONUP              = 0x0202,
		WM_LBUTTONDBLCLK          = 0x0203,
		WM_RBUTTONDOWN            = 0x0204,
		WM_RBUTTONUP              = 0x0205,
		WM_RBUTTONDBLCLK          = 0x0206,
		WM_MBUTTONDOWN            = 0x0207,
		WM_MBUTTONUP              = 0x0208,
		WM_MBUTTONDBLCLK          = 0x0209,
		WM_MOUSEWHEEL             = 0x020A,
		WM_XBUTTONDOWN            = 0x020B,
		WM_XBUTTONUP              = 0x020C,
		WM_XBUTTONDBLCLK          = 0x020D,
		WM_PARENTNOTIFY           = 0x0210,
		WM_ENTERMENULOOP          = 0x0211,
		WM_EXITMENULOOP           = 0x0212,
		WM_NEXTMENU               = 0x0213,
		WM_SIZING                 = 0x0214,
		WM_CAPTURECHANGED         = 0x0215,
		WM_MOVING                 = 0x0216,
		WM_DEVICECHANGE           = 0x0219,
		WM_MDICREATE              = 0x0220,
		WM_MDIDESTROY             = 0x0221,
		WM_MDIACTIVATE            = 0x0222,
		WM_MDIRESTORE             = 0x0223,
		WM_MDINEXT                = 0x0224,
		WM_MDIMAXIMIZE            = 0x0225,
		WM_MDITILE                = 0x0226,
		WM_MDICASCADE             = 0x0227,
		WM_MDIICONARRANGE         = 0x0228,
		WM_MDIGETACTIVE           = 0x0229,
		WM_MDISETMENU             = 0x0230,
		WM_ENTERSIZEMOVE          = 0x0231,
		WM_EXITSIZEMOVE           = 0x0232,
		WM_DROPFILES              = 0x0233,
		WM_MDIREFRESHMENU         = 0x0234,
		WM_IME_SETCONTEXT         = 0x0281,
		WM_IME_NOTIFY             = 0x0282,
		WM_IME_CONTROL            = 0x0283,
		WM_IME_COMPOSITIONFULL    = 0x0284,
		WM_IME_SELECT             = 0x0285,
		WM_IME_CHAR               = 0x0286,
		WM_IME_REQUEST            = 0x0288,
		WM_IME_KEYDOWN            = 0x0290,
		WM_IME_KEYUP              = 0x0291,
		WM_MOUSEHOVER             = 0x02A1,
		WM_MOUSELEAVE             = 0x02A3,
		WM_CUT                    = 0x0300,
		WM_COPY                   = 0x0301,
		WM_PASTE                  = 0x0302,
		WM_CLEAR                  = 0x0303,
		WM_UNDO                   = 0x0304,
		WM_RENDERFORMAT           = 0x0305,
		WM_RENDERALLFORMATS       = 0x0306,
		WM_DESTROYCLIPBOARD       = 0x0307,
		WM_DRAWCLIPBOARD          = 0x0308,
		WM_PAINTCLIPBOARD         = 0x0309,
		WM_VSCROLLCLIPBOARD       = 0x030A,
		WM_SIZECLIPBOARD          = 0x030B,
		WM_ASKCBFORMATNAME        = 0x030C,
		WM_CHANGECBCHAIN          = 0x030D,
		WM_HSCROLLCLIPBOARD       = 0x030E,
		WM_QUERYNEWPALETTE        = 0x030F,
		WM_PALETTEISCHANGING      = 0x0310,
		WM_PALETTECHANGED         = 0x0311,
		WM_HOTKEY                 = 0x0312,
		WM_PRINT                  = 0x0317,
		WM_PRINTCLIENT            = 0x0318,
		WM_HANDHELDFIRST          = 0x0358,
		WM_HANDHELDLAST           = 0x035F,
		WM_AFXFIRST               = 0x0360,
		WM_AFXLAST                = 0x037F,
		WM_PENWINFIRST            = 0x0380,
		WM_PENWINLAST             = 0x038F,
		WM_APP                    = 0x8000,
		WM_USER                   = 0x0400,

		// For Windows XP Balloon messages from the System Notification Area
		NIN_BALLOONSHOW		  = 0x0402,
		NIN_BALLOONHIDE		  = 0x0403,
		NIN_BALLOONTIMEOUT	  = 0x0404,
		NIN_BALLOONUSERCLICK	  = 0x0405
	}


	public class HookEventArgs : EventArgs
	{
		public int HookCode;    // Hook code
		public IntPtr wParam;   // WPARAM argument
		public IntPtr lParam;   // LPARAM argument
	}


	// Hook Types  
	public enum HookType : int
	{
		WH_JOURNALRECORD = 0,
		WH_JOURNALPLAYBACK = 1,
		WH_KEYBOARD = 2,
		WH_GETMESSAGE = 3,
		WH_CALLWNDPROC = 4,
		WH_CBT = 5,
		WH_SYSMSGFILTER = 6,
		WH_MOUSE = 7,
		WH_HARDWARE = 8,
		WH_DEBUG = 9,
		WH_SHELL = 10,
		WH_FOREGROUNDIDLE = 11,
		WH_CALLWNDPROCRET = 12,        
		WH_KEYBOARD_LL = 13,
		WH_MOUSE_LL = 14
	}

	public struct CWPRETSTRUCT
	{
		public IntPtr lResult;
		public IntPtr lParam;
		public IntPtr wParam;
		public uint message;
		public IntPtr hwnd;
	} 

	public class LocalWindowsHook
	{
		// Internal properties
		protected IntPtr m_hhook = IntPtr.Zero;
		protected HookProc m_filterFunc = null;
		protected HookType m_hookType;

		// Event delegate
		public delegate void HookEventHandler(object sender,  HookEventArgs e);

		// Event: HookInvoked 
		public event HookEventHandler HookInvoked;
		protected void OnHookInvoked(HookEventArgs e)
		{
			if (HookInvoked != null)
				HookInvoked(this, e);
		}


		// Class constructor(s)
		public LocalWindowsHook(HookType hook)
		{
			m_hookType = hook;
			m_filterFunc = new HookProc(this.CoreHookProc); 
		}

		public LocalWindowsHook(HookType hook, HookProc func)
		{
			m_hookType = hook;
			m_filterFunc = func; 
		}        


		// Default filter function
		public int CoreHookProc(int code, IntPtr wParam, IntPtr lParam)
		{
			if (code &amp;lt; 0)
				return User32.CallNextHookEx(m_hhook, code, wParam, lParam);

			// Let clients determine what to do
			HookEventArgs e = new HookEventArgs();
			e.HookCode = code;
			e.wParam = wParam;
			e.lParam = lParam;
			OnHookInvoked(e);

			// Yield to the next hook in the chain
			return User32.CallNextHookEx(m_hhook, code, wParam, lParam);
		}

		// Install the hook
		public void Install()
		{
			m_hhook = User32.SetWindowsHookEx(m_hookType, 
							  m_filterFunc, 
							  IntPtr.Zero, 
							  System.Threading.Thread.CurrentThread.ManagedThreadId);
		}

		// Uninstall the hook
		public void Uninstall()
		{
			User32.UnhookWindowsHookEx(m_hhook); 
		}
	}
		
	// ****************************************************************

	// CBT hook actions
	public enum CbtHookAction : int
	{
		HCBT_MOVESIZE = 0,
		HCBT_MINMAX = 1,
		HCBT_QS = 2,
		HCBT_CREATEWND = 3,
		HCBT_DESTROYWND = 4,
		HCBT_ACTIVATE = 5,
		HCBT_CLICKSKIPPED = 6,
		HCBT_KEYSKIPPED = 7,
		HCBT_SYSCOMMAND = 8,
		HCBT_SETFOCUS = 9
	}


	public class CbtEventArgs : EventArgs
	{
		public IntPtr Handle;			// Win32 handle of the window
		public string Title;			// caption of the window
		public string ClassName;		// class of the window
		public bool IsDialogWindow;		// whether is a popup dialog
	}


	#region Class LocalCbtHook
	public class LocalCbtHook : LocalWindowsHook
	{
		// Event delegate
		public delegate void CbtEventHandler(object sender, CbtEventArgs e);

		// Events 
		public event CbtEventHandler WindowCreated;
		public event CbtEventHandler WindowDestroyed;
		public event CbtEventHandler WindowActivated;

		// Internal properties
		protected IntPtr m_hwnd = IntPtr.Zero;
		protected string m_title = "";
		protected string m_class = "";
		protected bool m_isDialog = false;


		// Class constructor(s)
		public LocalCbtHook()
			: base(HookType.WH_CALLWNDPROCRET)
		{
			this.HookInvoked += new HookEventHandler(CbtHookInvoked);
		}

		public LocalCbtHook(HookProc func)
			: base(HookType.WH_CALLWNDPROCRET, func)
		{
			this.HookInvoked += new HookEventHandler(CbtHookInvoked);
		}

		// Handles the hook event
		private void CbtHookInvoked(object sender, HookEventArgs e)
		{
			IntPtr wParam = e.wParam;
			IntPtr lParam = e.lParam;

			CWPRETSTRUCT msg = (CWPRETSTRUCT)Marshal.PtrToStructure(lParam, typeof(CWPRETSTRUCT));

			CbtHookAction code = (CbtHookAction)msg.message;

			// Handle hook events (only a few of available actions)
			switch (code)
			{
				case CbtHookAction.HCBT_CREATEWND:
					HandleCreateWndEvent(wParam, lParam, msg);
					break;
				case CbtHookAction.HCBT_DESTROYWND:
					HandleDestroyWndEvent(wParam, lParam, msg);
					break;
				case CbtHookAction.HCBT_ACTIVATE:
					HandleActivateEvent(wParam, lParam, msg);
					break;
			}

			return;
		}


		// Handle the CREATEWND hook event
		private void HandleCreateWndEvent(IntPtr wParam, IntPtr lParam, CWPRETSTRUCT msg)
		{
			// Cache some information
			UpdateWindowData(wParam, msg);

			// raise event
			OnWindowCreated();
		}


		// Handle the DESTROYWND hook event
		private void HandleDestroyWndEvent(IntPtr wParam, IntPtr lParam, CWPRETSTRUCT msg)
		{
			// Cache some information
			UpdateWindowData(wParam, msg);

			// raise event
			OnWindowDestroyed();
		}


		// Handle the ACTIVATE hook event
		private void HandleActivateEvent(IntPtr wParam, IntPtr lParam, CWPRETSTRUCT msg)
		{
			// Cache some information
			UpdateWindowData(wParam, msg);

			// raise event
			OnWindowActivated();
		}


		// Read and store some information about the window
		private void UpdateWindowData(IntPtr wParam, CWPRETSTRUCT msg)
		{
			// Cache the window handle
			m_hwnd = msg.hwnd;

			// Cache the window's class name
			StringBuilder sb1 = new StringBuilder();
			sb1.Capacity = 40;
			User32.GetClassName(m_hwnd, sb1, 40);
			m_class = sb1.ToString();

			// Cache the window's title bar
			StringBuilder sb2 = new StringBuilder();
			sb2.Capacity = 256;
			User32.GetWindowText(m_hwnd, sb2, 256);
			m_title = sb2.ToString();

			// Cache the dialog flag
			m_isDialog = (m_class == "#32770");
		}

		// Helper functions that fire events by executing user code
		protected virtual void OnWindowCreated()
		{
			if (WindowCreated != null)
			{
				CbtEventArgs e = new CbtEventArgs();
				PrepareEventData(e);
				WindowCreated(this, e);
			}
		}
&lt;BR /&gt;		protected virtual void OnWindowDestroyed()
		{
			if (WindowDestroyed != null)
			{
				CbtEventArgs e = new CbtEventArgs();
				PrepareEventData(e);
				WindowDestroyed(this, e);
			}
		}
&lt;BR /&gt;		protected virtual void OnWindowActivated()
		{
			if (WindowActivated != null)
			{
				CbtEventArgs e = new CbtEventArgs();
				PrepareEventData(e);
				WindowActivated(this, e);
			}
		}


		// Prepare the event data structure
		private void PrepareEventData(CbtEventArgs e)
		{
			e.Handle = m_hwnd;
			e.Title = m_title;
			e.ClassName = m_class;
			e.IsDialogWindow = m_isDialog;
		}



		#endregion
	}&lt;/PRE&gt;</description>
      <pubDate>Fri, 20 May 2016 12:39:48 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/turn-off-all-popup-notifications/m-p/6340056#M36031</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2016-05-20T12:39:48Z</dc:date>
    </item>
  </channel>
</rss>

