如何避免任务栏出现2个任务。
运行一个au3脚本程序的时候,里面有msgbox,FileOpenDialog等函数,如果激活了。它将在任务栏显示出来一个“任务”。请问如何避免?
[ 本帖最后由 k1727 于 2008-9-28 23:08 编辑 ] 好象不能吧`~没研究过,。 what's task? 原帖由 sanhen 于 2008-9-23 22:35 发表 http://www.autoitx.com/images/common/back.gif
what's task?
首先谢谢居士的关注。
是这样的。当一个程序(当然是指用au3编写的程序)运行的时候,一般会在任务栏出现一个任务图标,如图一
“IESet”,这时候如果点击该程序界面的一个按钮(该按钮是调用FileOpenDialog函数的),将会在任务栏出现一个“任务”如图2。
请问居士如何避免出现这种情况呢? 自己顶一下吧。 请高手关注呀。 实在要用,就用API吧。。。
帮助默认集有了GetOpenFileName,不过此函数只支持英文目录的。
需要中文支持请用GetOpenFileNameA,这个函数默认是没有的,要自己写。我懒得写了,将就用着吧。
个人建议:为了避免任务栏多出一个窗口而用API,感觉得不偿失;所花费的时间巨多,还是默认的FileOpenDialog来得快。
#include <GuiConstantsEx.au3>
#include <WinAPI.au3>
$hGUI = GUICreate("My GUI", 300, 200)
$btn_dialog=GUICtrlCreateButton("test",10,30,100,30)
GUISetState()
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $btn_dialog
$aFile = _WinAPI_GetOpenFileName("My Open File Dialog", _
"Text File (*.txt;*.au3)", ".", @ScriptName, "", 1, _
BitOR($OFN_ALLOWMULTISELECT, $OFN_EXPLORER), 0, $hGui)
If $aFile = 0 Then
$sError = _WinAPI_CommDlgExtendedError()
MsgBox(0,0,"CommDlgExtendedError (" & @error & "): " & $sError)
Else
For $x = 1 To $aFile
MsgBox(0,0,$aFile[$x])
Next
EndIf
EndSwitch
WEnd
继续,MSGBOX不在任务栏出现的例子。
#NoTrayIcon
#include <GuiConstantsEx.au3>
$hGUI = GUICreate("My GUI", 300, 200)
$btn_dialog=GUICtrlCreateButton("test",10,30,100,30)
GUISetState()
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $btn_dialog
DllCall("user32.dll","int","MessageBox","hwnd",$hGUI,"str", _
"这个对话框是不会在任务栏出现的啦。。。www.autoitx.com 居士制作" & @crlf, _
"str","测试例子","int",48)
EndSwitch
WEnd
多出一个也没什么吧?
[ 本帖最后由 liongodmien 于 2008-9-26 14:34 编辑 ]
加个进程分板语句有就闪人!
加个进程分板语句有就闪人! 看来没有好的快捷方法了,只能等到版本升级.谢谢居士. 有用啊。做个记号先。
页:
[1]