15106970607 发表于 2026-1-15 13:24:44

web.view打包桌面应用扩展学习

知识点:1.利用窗口原子(atom)来判断程序是否已经运行,并且在判断程序已运行时激活并显示主窗口。
             2.创建托盘图标 弹出菜单
             3.关闭窗口时隐藏主窗口
             4.托盘图标点击展示或隐藏主窗口
import win.ui;
import win.ui.atom;
import win.ui.menu;
import win.util.tray;
import web.view;
/*DSG{{*/
mainForm = win.form(text="豆包";right=1919;bottom=1079;max=false;min=false)
mainForm.add()
/*}}*/

var atom, hwnd = mainForm.atom("FEEBA353-7D78-485F-AFE6-BA913FBAF117");
if (!atom) {
    if(hwnd){
      win.show(hwnd, 9/*_SW_RESTORE*/);
      win.setForeground(hwnd);
    }
    win.quitMessage();
    return;
}

var tray = win.util.tray(mainForm) //创建托盘图标
tray.tip = "豆包" //设置鼠标提示

mainForm.popmenu = win.ui.popmenu(mainForm);//创建弹出菜单
mainForm.popmenu.add('&exit',function(id){ ::User32.DestroyWindow(mainForm.hwnd) })

mainForm.onClose = function(hwnd,message,wParam,lParam){
    //点击 x 时隐藏主窗口
    mainForm.hide()
    return true;
}

mainForm.onTrayMessage = {
       = function(wParam){
                win.setForeground(mainForm.hwnd)
                mainForm.popmenu.popup()
      };
       = function(wParam){
                //单击托盘图标隐藏或展示
                /*if(mainForm.visible){
            mainForm.hide( mainForm.hwnd)
      }else{
            mainForm.show()
      }*/
      };
       = function(wParam){
                //双击托盘图标隐藏或展示
                if(mainForm.visible){
            mainForm.hide()
      }else{
            mainForm.show()
      }
      };
       = function(wParam){
               
      };
       = function(wParam){
               
      };
}

var wb = web.view(mainForm);
wb.go("https://www.doubao.com/")

mainForm.show();
return win.loopMessage();

Squall8965 发表于 2026-1-16 21:07:15

谢谢分享,很实用。
页: [1]
查看完整版本: web.view打包桌面应用扩展学习