IENoticeBar

Web上でファイルをダウンロードしたときに出る通知バーの制御を行います。

構文
  1. UString = IENoticeBar( )
引数
戻値
ダウンロードしたファイル名

プログラム

//////////////////////////////////////////////////
// 【引数】
// 
// 【戻値】
//   ダウンロードしたファイル名 
//////////////////////////////////////////////////
FUNCTION IENoticeBar()
	REPEAT
		ID = GETID("Internet Explorer", "IEFrame")
		DirectUIHWND = GETCTLHND(ID, "DirectUIHWND", 2)
		IF DirectUIHWND <> 0 THEN GETCTLHND(ID, "DirectUIHWND", 1)
	UNTIL DirectUIHWND <> 0
	REPEAT
		popupHandle = HNDTOID(DirectUIHWND)
	UNTIL popupHandle <> 0
	REPEAT
		SLEEP(0.50)
		DirectUIHWND = GETCTLHND(ID, "DirectUIHWND", 2)
		IF DirectUIHWND <= 0 THEN DirectUIHWND = GETCTLHND(ID, "DirectUIHWND", 1)
		popupHandle = HNDTOID(DirectUIHWND)
		NotificationBar = CLKITEM(popupHandle, "保存", CLK_ACC)
	UNTIL NotificationBar <> 0
	REPEAT
		SLEEP(0.50)
	UNTIL POS("のダウンロードが完了しました。", GETSTR(popupHandle, 1, STR_ACC_STATIC))
	str = GETSTR(popupHandle, 1, STR_ACC_STATIC)
	CLKITEM(popupHandle, "閉じる", CLK_ACC)
	RESULT = COPY(str, 1, POS(" のダウンロードが完了しました。", str) - 1)
FEND

解説

  1. 2-6行目
    	REPEAT
    		ID = GETID("Internet Explorer", "IEFrame")
    		DirectUIHWND = GETCTLHND(ID, "DirectUIHWND", 2)
    		IF DirectUIHWND <> 0 THEN GETCTLHND(ID, "DirectUIHWND", 1)
    	UNTIL DirectUIHWND <> 0
    
  2. 7-9行目
    	REPEAT
    		popupHandle = HNDTOID(DirectUIHWND)
    	UNTIL popupHandle <> 0
    
  3. 10-16行目
    	REPEAT
    		SLEEP(0.50)
    		DirectUIHWND = GETCTLHND(ID, "DirectUIHWND", 2)
    		IF DirectUIHWND <= 0 THEN DirectUIHWND = GETCTLHND(ID, "DirectUIHWND", 1)
    		popupHandle = HNDTOID(DirectUIHWND)
    		NotificationBar = CLKITEM(popupHandle, "保存", CLK_ACC)
    	UNTIL NotificationBar <> 0
    
  4. 17-19行目
    	REPEAT
    		SLEEP(0.50)
    	UNTIL POS("のダウンロードが完了しました。", GETSTR(popupHandle, 1, STR_ACC_STATIC))
    
  5. 20-22行目
    	str = GETSTR(popupHandle, 1, STR_ACC_STATIC)
    	CLKITEM(popupHandle, "閉じる", CLK_ACC)
    	RESULT = COPY(str, 1, POS(" のダウンロードが完了しました。", str) - 1)