wujianfu 发表于 2010-4-24 12:18:28

关机程序问题(已解决)

本帖最后由 wujianfu 于 2010-4-26 15:24 编辑

我写了个关机小程序,代码如下:#NoTrayIcon
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_icon=G:\素材大全\图标资源\常用图标\08.ico
#AutoIt3Wrapper_Res_Comment=清空回收站
#AutoIt3Wrapper_Res_Description=清空回收站
#AutoIt3Wrapper_Res_Fileversion=1.0
#AutoIt3Wrapper_Res_LegalCopyright=阿福所有 侵权不究
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=E:\Downloads\Koda\关闭计算机.kxf
$Form1 = GUICreate("关闭计算机", 266, 117, -1, -1, -1, $WS_EX_TOPMOST)
GUISetIcon("G:\素材大全\图标资源\常用图标\08.ico", -1)
$Icon1 = GUICtrlCreateIcon("G:\素材大全\图标资源\常用图标\10.ico", -1, 24, 24, 48, 48)
GUICtrlSetCursor (-1, 0)
$Icon2 = GUICtrlCreateIcon("G:\素材大全\图标资源\常用图标\08.ico", -1, 108, 24, 48, 48)
GUICtrlSetCursor (-1, 0)
$Icon3 = GUICtrlCreateIcon("G:\素材大全\图标资源\常用图标\09.ico", -1, 192, 24, 48, 48)
GUICtrlSetCursor (-1, 0)
$Label1 = GUICtrlCreateLabel("注销", 32, 80, 36, 20)
GUICtrlSetFont(-1, 12, 400, 0, "幼圆")
$Label2 = GUICtrlCreateLabel("关机", 112, 80, 36, 20)
GUICtrlSetFont(-1, 12, 400, 0, "幼圆")
$Label3 = GUICtrlCreateLabel("重启", 200, 80, 36, 20)
GUICtrlSetFont(-1, 12, 400, 0, "幼圆")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
      Case $Icon1
                        Shutdown(4)
                        Exit
                Case $Icon2
              Shutdown(5)
                        Exit
               Case $Icon3
                      Shutdown(6)
                       Exit       
        EndSwitch
WEnd

我的本意是运行程序后,点击相应图标执行相应操作。但问题是我运行程序后系统就直接注销了,不知到问题出在哪里,在此请教各位了。

weeks5 发表于 2010-4-24 12:33:14

等待高手出线

dabaiyun 发表于 2010-4-24 12:58:25

真的不太清楚,版主应该来看看帮帮忙呀你的程序确实很不错的呀学习了研究研究

myloveqmx 发表于 2010-4-24 13:21:02

测试代码没有问题~

3mile 发表于 2010-4-24 13:30:00

#NoTrayIcon
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_icon=G:\素材大全\图标资源\常用图标\08.ico
#AutoIt3Wrapper_Res_Comment=清空回收站
#AutoIt3Wrapper_Res_Description=清空回收站
#AutoIt3Wrapper_Res_Fileversion=1.0
#AutoIt3Wrapper_Res_LegalCopyright=阿福所有 侵权不究
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>

#Region ### START Koda GUI section ### Form=E:\Downloads\Koda\关闭计算机.kxf
$Form1 = GUICreate("关闭计算机", 266, 117, -1, -1, -1, $WS_EX_TOPMOST)
GUISetIcon("G:\素材大全\图标资源\常用图标\08.ico", -1)
$Button_1 = GUICtrlCreateButton("注销", 30, 40,40, 40,$BS_ICON )
GUICtrlSetImage(-1, "shell32.dll", 22)
;$Icon1 = GUICtrlCreateIcon("G:\素材大全\图标资源\常用图标\10.ico", -1, 24, 24, 48, 48)
GUICtrlSetCursor (-1, 0)
;$Icon2 = GUICtrlCreateIcon("G:\素材大全\图标资源\常用图标\08.ico", -1, 108, 24, 48, 48)
GUICtrlSetCursor (-1, 0)
;$Icon3 = GUICtrlCreateIcon("G:\素材大全\图标资源\常用图标\09.ico", -1, 192, 24, 48, 48)
GUICtrlSetCursor (-1, 0)
$Label1 = GUICtrlCreateLabel("注销", 32, 80, 36, 20)
GUICtrlSetFont(-1, 12, 400, 0, "幼圆")
$Label2 = GUICtrlCreateLabel("关机", 112, 80, 36, 20)
GUICtrlSetFont(-1, 12, 400, 0, "幼圆")
$Label3 = GUICtrlCreateLabel("重启", 200, 80, 36, 20)
GUICtrlSetFont(-1, 12, 400, 0, "幼圆")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
      $nMsg = GUIGetMsg()
      Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
      Case $Button_1
             MsgBox(0,0,"ico1");Shutdown(4)
                        Shutdown(0)       
      EndSwitch
WEnd

wujianfu 发表于 2010-4-24 17:55:23

回复 5# 3mile
将图标改成按钮之后是可以了,但按钮不好看啊。能不能通过判断图标是否被单击来执行操作啊?而且我还是不知道我的源程序的问题出现在哪里。

lanfengc 发表于 2010-4-24 18:12:02

回复3mile
将图标改成按钮之后是可以了,但按钮不好看啊。能不能通过判断图标是否被单击来执行操作啊? ...
wujianfu 发表于 2010-4-24 17:55 http://autoitx.com/images/common/back.gif


    如果你使用的是非按钮类的单击事件,请使用事件循环来生成代码。不要采用循环获取消息的方式来生成代码。

menfan 发表于 2010-4-25 08:23:31

呵呵学习一下。。

waxy 发表于 2010-4-25 11:27:54

界面挺不错,希望LZ早日弄成功。

wujianfu 发表于 2010-4-26 15:15:13

本帖最后由 wujianfu 于 2010-4-26 15:19 编辑

回复 7# lanfengc
奇怪,今天再运行程序时不会直接注销了(源程序没更改),但点击注销按钮没反应,不过在Windowsxp下运行还是会直接注销的。
于是,我将
                Case $Icon1
                        shutdown(4)
                        Exit
改成               
                     Case $Icon1
                        Run("logoff.exe")
                        Exit

这样就可以了,不过运行logoff.exe程序的瞬间会有一黑框闪过,现在将就着用吧。
在Windows7下使用挺方便的,直接拖到任务栏,再也不用去开始菜单里面点那个三角形按钮了。现在附上截图及程序打包。

waxy 发表于 2010-4-26 15:48:44

试了一下,在XP下还是会直接注销。

zery 发表于 2010-11-14 00:45:35

事件循环与循环获取消息有什么区别吗?好像效果都一样啊?
页: [1]
查看完整版本: 关机程序问题(已解决)