延時並自動關閉MessageBox

2022-04-20 08:33:08 字數 1824 閱讀 2143

資訊提示框(messagebox)是微軟net自帶的乙個用於彈出警告、錯誤或者訊息一類的「模式」對話方塊。此類對話方塊一旦開啟,則後台窗體無法再被啟用(除非當前的messagebox被點選或者關閉取消)。那麼如何使用程式模擬滑鼠點選這個messagebox(關閉這個messagebox)呢?答案是你在彈出這個messagebox之前先啟用乙個定時器,定時器內部不斷向窗體傳送enter按鈕用於模擬點選msgbox的內容,同時主程式中彈出模式訊息框。**如下(vs2012 rc 編寫):

我們假設窗體上就乙個button,點選這個button將彈出5個msgbox,同時每個msgbox將延時2秒後自動關閉。

[c#]

public

partial

class

form1 : form

void t_tick(object

sender, eventargs e)

");}

private

void button1_click(object

sender, eventargs e)

});act.begininvoke(

null, null

); }

}

[vb.net]

public

partial

class

form1

inherits

form

private ts as system.windows.forms.timer() = new system.windows.forms.timer(5

) {}

public

subnew

() initializecomponent()

end sub

private

sub t_tick(sender as

object, e as

eventargs)

directcast(sender, system.windows.forms.timer).enabled = false

sendkeys.sendwait(""

)

end sub

private

sub button1_click(sender as

object, e as

eventargs)

dim act as

new action(sub

()

for i as

integer = 0to5

ts(i) = new

system.windows.forms.timer()

addhandler ts(i).tick, addressof

t_tick

ts(i).interval = 2000

ts(i).enabled = true

messagebox.show(

"msgbox

" & (i + 1

)) thread.sleep(

2000

)

next

end sub

) act.begininvoke(

nothing, nothing

)

end sub

end class

注意1:這裡使用了「委託非同步」是為了防止主線程被thread延時導致假死的情況發生。

注意2:sendkeys這裡必須使用sendwait,否則會丟擲異常。

延時並自動關閉MessageBox

資訊提示框 messagebox 是微軟net自帶的乙個用於彈出警告 錯誤或者訊息一類的 模式 對話方塊。此類對話方塊一旦開啟,則後台窗體無法再被啟用 除非當前的messagebox被點選或者關閉取消 那麼如何使用程式模擬滑鼠點選這個messagebox 關閉這個messagebox 呢?答案是你在...

windows中定時關閉並延時開啟某個執行程式

首先熟悉這個命令taskkill,具體怎使用不過多的解釋,自己可以去搜尋了解一下。結束應用程式用 taskkill im qq.exe f qq.exe是我要結束的程序。可以在任務管理器裡看到你想關閉的程式的程序。然後儲存上面的一條命令為bat格式。注意注意注意 儲存時一定要注意儲存的編碼格式。為a...

C 彈窗提示並自動關閉方法

剛學c 不久,就寫個工具,總結寫乙個簡便自定義提示視窗方法,並自動關閉。1.在專案新增windows form 非user control 命名為form wait。2.在form wait,加入需要控制項與乙個定時器timer1。數字10為計時顯示,10秒後自動預設選擇 是 timer1 屬性in...