问题:(窗体程序)     1.让窗体再所有程序的最上面
     2.定时提醒,定时最好不要用timer,似乎timer很耗资源,不长时间程序就死了。
     3.不规则窗体
     4.让程序开机启动,一直运行,不会出现假死状态。
     5.程序可以最小化到任务栏(qq那一栏)请问上面的几个问题怎么用C#实现,关键是第二个,不好不要用timer,也不要用线程。似乎要调用API,系统At命令,但是有时候系统不开作业服务,也就不能用了。小弟先谢过了!!!

解决方案 »

  1.   


    1.窗体有一个TopMost属性,设为true
    2.如timer会死用别的也会死,程序死跟timer无关,跟timer要调用的你写的代码有关
    3.这个比较麻烦,帮不了你...
    4.可以让程序在"开始--所有程序--启动"创建快捷方式,也可以在注册表的run项里建个项
    5.先在窗体类里加一个NotifyIcon,先高置好Icon;在窗体的Resized事件里设置窗体和NotifyIcon的Visible就可以了.
      

  2.   

     1.让窗体再所有程序的最上面 
    this.topmost=true
        2.定时提醒,定时最好不要用timer,似乎timer很耗资源,不长时间程序就死了。 
    线程,循环,判断gettickcount()
        3.不规则窗体
    this.region=new...,graphicpath 
        4.让程序开机启动,一直运行,不会出现假死状态。 
    window服务
        5.程序可以最小化到任务栏(qq那一栏) 
    托一个notifyIcon控件
      

  3.   

    又有问题了
    托盘程序,我点击最小化时候,窗体默认是向左下脚最小化,然后消失(隐藏),如何让窗体默认向右下脚最小化,再消失,类似qq,点击最小化向托盘栏消失
    程序代码:
            //托盘退出程序
            private void CMenuExit_Click(object sender, EventArgs e)
            {
                Application.Exit();
            }
            // 当单击最小化按钮时候隐藏到托盘
            private void Main_SizeChanged(object sender, EventArgs e)
            {
                if (this.WindowState == FormWindowState.Minimized)
                {//判断是否最小化
                    this.Hide();
                }        }        //托盘右键菜单首选项
            private void CMenuConfig_Click_1(object sender, EventArgs e)
            {
                if (this.Visible == false)
                {
                    this.Visible = true;
                    this.WindowState = FormWindowState.Normal;
                }
            }        //双击托盘图标的时候
            private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
            {
                if (this.Visible == false)
                {
                    this.Visible = true;
                    this.WindowState = FormWindowState.Normal;
                }
            }
      

  4.   

    timer会假死?头一次听说~是你写的代码死掉了吧?用timer和线程都可以
      

  5.   

    1.让窗体再所有程序的最上面 this.TopMost=true;
    2.定时提醒,用timer.死机是由于处理过程中的代码问题 
    3.不规则窗体,用GraphicPath,作好后,用 this.Region引用
    4.让程序开机启动,一直运行,不会出现假死状态。 这个任何人不能保证
    5.程序可以最小化到任务栏用NotifyIcon控件 
      

  6.   

    Time会耗费资源..你的程序有多大..一个Time会有多少计算.. 别乱说..从某种意义上说Time和线程的功能差不多. 一个是在前台执行.一个是在后台执行..
      

  7.   

    明白timer了,要优化下timer里的代码了。提供个C#调用API实现系统关机、重启、注销的类http://hi.baidu.com/jackvoilet/blog
      

  8.   

    private void Form1_KeyDown(object sender, KeyEventArgs e)
            {
                e.Handled = true;
            }
      

  9.   

    贡献一点,绝对原创
    c# 使用ActiveDesktop实现壁纸切换,适合大部分图片格式
    http://hi.baidu.com/jackvoilet/blog
      

  10.   


    1:让你的窗口永远不会被最小化,可以保证在最前端。http://blog.csdn.net/aimeast/archive/2008/07/31/2749586.aspx
    3:不规则窗体控件
    http://blog.csdn.net/aimeast/archive/2008/07/21/2687029.aspx (v0.2)
    http://blog.csdn.net/aimeast/archive/2008/05/10/2431441.aspx (v0.1)其他问题不值得回答,自己看书去。
      

  11.   


    可以用类似于动画的形式做到.把窗体的WindowState设成Normal,然后每200(这个数字可以调整)毫秒执行一次Size减半,Location重设,到一定的Size后程序就隐藏.QQ什么的也是这样做的,利用人的视觉暂留.
      

  12.   

    你用那个timer?就类库里面,有三个
      

  13.   

    最小化的是很条用win32API,用FindWindow,ShowWindow就可以解决,LZ可以自己搜一下,网上代码很多。如果lz想有渐变的过程,就可以用Graphics绘制,可以控制绘制的大小,内容。
      

  14.   

    1.让窗体再所有程序的最上面 
    真正要最前面调用Window的COM组件实现
    2.定时提醒,定时最好不要用timer,似乎timer很耗资源,不长时间程序就死了。
    timer不会很耗资源,只要用的不是太多,以现在的计算机硬件水平,不成问题,程序会死,说明你的程序设计的不合理 
    3.不规则窗体 
    自己用GUI画,要不直接用第三方控件
    4.让程序开机启动,一直运行,不会出现假死状态。 
    开机启动,最简单的方法是在Windows菜单的启动里放一个快捷方式,或者写注册表,最后一个是做Window服务。另外再次说明:程序会假死,只能说明你的程序设计的不合理
    5.程序可以最小化到任务栏(qq那一栏)
    VS里自带的控件就有这功能了
      

  15.   


        2.定时提醒,定时最好不要用timer,似乎timer很耗资源,不长时间程序就死了。 
          4.让程序开机启动,一直运行,不会出现假死状态。 
     假死  :
    尽量在TIMER里面不要使用循环^^
    不然很容易假死…………
    尽量把时间间隔  调长一点…………建议你多用多线程,这样保证不会出现  假死…………
    做多出现功能没有用而已……
    至少美观……