package main

import (
	"github.com/lxn/walk"
	pub "AD-Control/public"
)
func userInit() string{
	pub.Loger = pub.NewLoger(pub.User_appdata+ `\users.log`)

	pub.Reg_Exist_item(pub.HKCU,pub.Reg_Path_home)

	// 微盘备份步骤
	if pub.Reg_Value_WeDriveDir != ""{
		//  && pub.Exist(pub.Dir_dept_share_full)
		// 如果微盘的文件夹存在
		// 则，重复执行
		// 随机延迟300s，进行复制，固定延迟2h
		go func (){
			
			for{
				pub.RandDelay(300)
				pub.SendServer(pub.GJexecCopyWeDrive(pub.Msg_Exec_CopyWeDrive))
				pub.Delay(7200)
			}
		}()
	}

	// 初始化 图标文件
	var icoDir =[]string {`AD-Control.ico`,`C:\windows\system32\AD-Control.ico`,`C:\Users\Public\Documents\AD-Control\AD-Control.ico`}
	for _,i := range icoDir{
		if pub.Exist(i){
			return i
		}
	}
	pub.SendServerErrorf("icon %v",pub.Error_Null_File)

	return ""
}
func menuInit(ni * walk.NotifyIcon){
	menuInitPower(ni)
	menuInitSoftwareInstall(ni)
	menuInitWxDriveSync(ni)
	menuInitTools(ni)
	menuInitFileShares(ni)
	menuInitMyShares(ni)

}
func main() {

	// 用户初始化
	icodir := userInit()

	// 程序初始化
	mw,err := walk.NewMainWindow()
	if err != nil {
		pub.PntError(err)
	}

	icon, err := walk.Resources.Icon(icodir)
	if err != nil {
		pub.PntError(err)
	}

	// 后台图标应用初始化
	ni, err := walk.NewNotifyIcon(mw)
	if err != nil {
		pub.PntError(err)
	}
	defer ni.Dispose()

	// Set the icon and a tool tip text.
	if err := ni.SetIcon(icon); err != nil {
		pub.PntError(err)
	}
	if err := ni.SetToolTip("Click for info or use the context menu to exit."); err != nil {
		pub.PntError(err)
	}
	menuInit(ni)

	// 为了防止ADServer的Daemon.exem没有运行而导致
	// 域计算机运行users.exe失败，
	// 需要取消由users.exe向ADServer报告
	// 交给组策略中adct.exe进行报告
	// pub.SendServerReport(pub.Msg_Report_UserStart)

	// The notify icon is hidden initially, so we have to make it visible.
	if err := ni.SetVisible(true); err != nil {
		pub.PntError(err)
	}

	// 循环 运行窗体
	mw.Run()
}
