Wince 启动程序并最小化

[DllImport("coredll.dll", EntryPoint = "ShowWindow", CharSet = CharSet.Auto)]

public static extern int ShowWindow(IntPtr hwnd, int nCmdShow);

 

[DllImport("coredll.dll", EntryPoint = "FindWindowW", SetLastError = true)]

private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

 

 

FindWindow(null, this.Text)获得当前窗口句柄

ShowWindow(FindWindow(null, this.Text), 6);

 

ShowWindow(IntPtr hwnd, int nCmdShow)的使用:

 

函数功能:该函数设置指定窗口的显示状态。

    函数原型:BOOL ShowWindow(HWND hWnd,int nCmdShow);

    参数:

    hWnd:窗口句柄。

    nCmdShow:指定窗口如何显示。如果发送应用程序的程序提供了STARTUPINFO结构,则应用程序第一次调用ShowWindow时该参数被忽略。否则,在第一次调用ShowWindow函数时,该值应为在函数WinMain中nCmdShow参数。在随后的调用中,该参数可以为下列值之一:

    SW_FORCEMINIMIZE:在WindowNT5.0中最小化窗口,即使拥有窗口的线程被挂起也会最小化。在从其他线程最小化窗口时才使用这个参数。

    SW_MIOE:隐藏窗口并激活其他窗口。

    SW_MAXIMIZE:最大化指定的窗口。

    SW_MINIMIZE:最小化指定的窗口并且激活在Z序中的下一个顶层窗口。

    SW_RESTORE:激活并显示窗口。如果窗口最小化或最大化,则系统将窗口恢复到原来的尺寸和位置。在恢复最小化窗口时,应用程序应该指定这个标志。

    SW_SHOW:在窗口原来的位置以原来的尺寸激活和显示窗口。

    SW_SHOWDEFAULT:依据在STARTUPINFO结构中指定的SW_FLAG标志设定显示状态,STARTUPINFO 结构是由启动应用程序的程序传递给CreateProcess函数的。

    SW_SHOWMAXIMIZED:激活窗口并将其最大化。

    SW_SHOWMINIMIZED:激活窗口并将其最小化。

    SW_SHOWMINNOACTIVATE:窗口最小化,激活窗口仍然维持激活状态。

    SW_SHOWNA:以窗口原来的状态显示窗口。激活窗口仍然维持激活状态。

    SW_SHOWNOACTIVATE:以窗口最近一次的大小和状态显示窗口。激活窗口仍然维持激活状态。

    SW_SHOWNOMAL:激活并显示一个窗口。如果窗口被最小化或最大化,系统将其恢复到原来的尺寸和大小。应用程序在第一次显示窗口的时候应该指定此标志。

    返回值:如果窗口以前可见,则返回值为非零。如果窗口以前被隐藏,则返回值为零。

    备注:应用程序第一次调用ShowWindow时,应该使用WinMain函数的nCmdshow参数作为它的nCmdShow参数。在随后调用ShowWindow函数时,必须使用列表中的一个给定值,而不是由WinMain函数的nCmdSHow参数指定的值。

    正如在nCmdShow参数中声明的,如果调用应用程序的程序使用了在STARTUPINFO结构中指定的信息来显示窗口,则在第一次调用ShowWindow函数时nCmdShow参数就被忽略。在这种情况下,ShowWindow函数使用STARTUPINFO结构中的信息来显示窗口。在随后的调用中,应用程序必须调用ShowWindow 函数(将其中nCmdShow参数设为SW_SHOWDEFAULT)来使用由程序调用该应用程序时提供的启动信息。这个处理在下列情况下发生:

    应用程序通过调用带WS_VISIBLE标志的函数来创建它们的主窗口函数;

    应用程序通过调用清除了WS_VISIBLE标志的CteateWindow函数来创建主窗口函数,并且随后调用带SW_SHOW标志的ShowWindow函数来显示窗口;

    Windows CE:nCmdShow参数不支持下列值:

    SW_MAXIMINZE;SW_MINIMIZE;SW_RESTORE;SW_SHOWDEFAULT

    SW_SHOWMAXIMIZED;SW_SHOWMINIMIZED;SW_SHOWMININOACTIVATE

    速查:Windows NT:3.1以上版本;Windows:95以上版本:Windows CE:1.0以上版本;头文件:winuw库文件:user32.lib。

 

另外:

{$EXTERNALSYM   SW_HIDE}  

      SW_HIDE   =   0;  

      {$EXTERNALSYM   SW_SHOWNORMAL}  

      SW_SHOWNORMAL   =   1;  

      {$EXTERNALSYM   SW_NORMAL}  

      SW_NORMAL   =   1;  

      {$EXTERNALSYM   SW_SHOWMINIMIZED}  

      SW_SHOWMINIMIZED   =   2;  

      {$EXTERNALSYM   SW_SHOWMAXIMIZED}  

      SW_SHOWMAXIMIZED   =   3;  

      {$EXTERNALSYM   SW_MAXIMIZE}  

      SW_MAXIMIZE   =   3;  

      {$EXTERNALSYM   SW_SHOWNOACTIVATE}  

      SW_SHOWNOACTIVATE   =   4;  

      {$EXTERNALSYM   SW_SHOW}  

      SW_SHOW   =   5;  

      {$EXTERNALSYM   SW_MINIMIZE}  

      SW_MINIMIZE   =   6;  

      {$EXTERNALSYM   SW_SHOWMINNOACTIVE}  

      SW_SHOWMINNOACTIVE   =   7;  

      {$EXTERNALSYM   SW_SHOWNA}  

      SW_SHOWNA   =   8;  

      {$EXTERNALSYM   SW_RESTORE}  

      SW_RESTORE   =   9;  

      {$EXTERNALSYM   SW_SHOWDEFAULT}  

      SW_SHOWDEFAULT   =   10;  

      {$EXTERNALSYM   SW_MAX}  

      SW_MAX   =   10;

 

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

获取开机时间和当前时间差:

int result = Environment.TickCount & Int32.MaxValue;

           DateTime dt = IskootUtils.GetChatDateTime(result);

            DateTime dt0 = DateTime.FromFileTime(result);

            DateTime dt1 = System.DateTime.Now;

            TimeSpan ss = dt1 - dt0;

            double d3 = ss.TotalSeconds;

 

 

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

获取开机信息

[DllImport("coredll.dll")]

public extern static bool CeRunAppAtEvent(string AppName,int WhichEvent);

int NOTIFICATION_EVENT_RS232_DETECTED = 9;

private bool bRet;

public void Activate()

{

string AppPath= "\\windows\\notes.exe";

try

{

bRet = CeRunAppAtEvent(AppPath, NOTIFICATION_EVENT_RS232_DETECTED);

}

catch

{

MessageBox.Show("Error");

}

}

 

Public Const NOTIFICATION_EVENT_NONE = 0

Public Const NOTIFICATION_EVENT_TIME_CHANGE = 1

Public Const NOTIFICATION_EVENT_SYNC_END = 2

Public Const NOTIFICATION_EVENT_ON_AC_POWER = 3

Public Const NOTIFICATION_EVENT_OFF_AC_POWER = 4

Public Const NOTIFICATION_EVENT_NET_CONNECT = 5

Public Const NOTIFICATION_EVENT_NET_DISCONNECT = 6

Public Const NOTIFICATION_EVENT_DEVICE_CHANGE = 7

Public Const NOTIFICATION_EVENT_IR_DISCOVERED = 8

Public Const NOTIFICATION_EVENT_RS232_DETECTED = 9

Public Const NOTIFICATION_EVENT_RESTORE_END = 10

Public Const NOTIFICATION_EVENT_WAKEUP = 11

Public Const NOTIFICATION_EVENT_TZ_CHANGE = 12

你可能感兴趣的:(WinCE)