全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2617
推到 Plurk!
推到 Facebook!

攔截ShockwaveFlash開啟網頁

缺席
pcernet
初階會員


發表:69
回覆:113
積分:41
註冊:2002-11-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-10-03 10:49:16 IP:61.218.xxx.xxx 未訂閱
做了一個簡單的Flash播放器,但由於播放的SWF檔夾帶很多的廣告,造成不經意按下超連結的困擾,是否能夠將他攔截並且屏蔽,我試過
OnFSCommand中處理,但毫無作用,邀請大家參予討論,有知道解決方法的前輩高手,也請不吝賜教,謝謝!

procedure TForm1.ShockwaveFlash1FSCommand(ASender: TObject; const command,
args: WideString);
begin
if command='Click' then showmessage('有按下按鍵!');
end;
pcernet
初階會員


發表:69
回覆:113
積分:41
註冊:2002-11-29

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-10-04 10:55:32 IP:61.218.xxx.xxx 未訂閱
這個方向應該行不通,還是回到訊息處理,請問能攔截到開啟外部文件的訊息嗎?

[code delphi]
procedure TForm1.WMSysCommand(var Msg:TWMSysCommand);
var EventToString:string;
begin
case Msg.Msg of
WM_ACTIVATE: EventToString := 'WM_ACTIVATE';
WM_ACTIVATEAPP: EventToString := 'WM_ACTIVATEAPP';
// WM_AFXFIRST: EventToString := 'WM_AFXFIRST';
// WM_AFXLAST: EventToString := 'WM_AFXLAST';
WM_APP: EventToString := 'WM_APP';
WM_ASKCBFORMATNAME: EventToString := 'WM_ASKCBFORMATNAME';
WM_CANCELJOURNAL: EventToString := 'WM_CANCELJOURNAL';
WM_CANCELMODE: EventToString := 'WM_CANCELMODE';
WM_CAPTURECHANGED: EventToString := 'WM_CAPTURECHANGED';
WM_CHANGECBCHAIN: EventToString := 'WM_CHANGECBCHAIN';
WM_CHAR: EventToString := 'WM_CHAR';
WM_CHARTOITEM: EventToString := 'WM_CHARTOITEM';
WM_CHILDACTIVATE: EventToString := 'WM_CHILDACTIVATE';
WM_USER: EventToString := 'WM_USER';
WM_CLEAR: EventToString := 'WM_CLEAR';
WM_COMMAND: EventToString := 'WM_COMMAND';
WM_COMMNOTIFY: EventToString := 'WM_COMMNOTIFY';
WM_COMPACTING: EventToString := 'WM_COMPACTING';
WM_COMPAREITEM: EventToString := 'WM_COMPAREITEM';
WM_CONTEXTMENU: EventToString := 'WM_CONTEXTMENU';
WM_COPY: EventToString := 'WM_COPY';
WM_COPYDATA: EventToString := 'WM_COPYDATA';
WM_CREATE: EventToString := 'WM_CREATE';
WM_CTLCOLORBTN: EventToString := 'WM_CTLCOLORBTN';
WM_CTLCOLORDLG: EventToString := 'WM_CTLCOLORDLG';
WM_CTLCOLOREDIT: EventToString := 'WM_CTLCOLOREDIT';
WM_CTLCOLORLISTBOX: EventToString := 'WM_CTLCOLORLISTBOX';
WM_CTLCOLORMSGBOX: EventToString := 'WM_CTLCOLORMSGBOX';
WM_CTLCOLORSCROLLBAR: EventToString := 'WM_CTLCOLORSCROLLBAR';
WM_CTLCOLORSTATIC: EventToString := 'WM_CTLCOLORSTATIC';
WM_CUT: EventToString := 'WM_CUT';
WM_DEADCHAR: EventToString := 'WM_DEADCHAR';
WM_DELETEITEM: EventToString := 'WM_DELETEITEM';
WM_DESTROY: EventToString := 'WM_DESTROY';
WM_DESTROYCLIPBOARD: EventToString := 'WM_DESTROYCLIPBOARD';
WM_DEVICECHANGE: EventToString := 'WM_DEVICECHANGE';
WM_DEVMODECHANGE: EventToString := 'WM_DEVMODECHANGE';
WM_DISPLAYCHANGE: EventToString := 'WM_DISPLAYCHANGE';
WM_DRAWCLIPBOARD: EventToString := 'WM_DRAWCLIPBOARD';
WM_DRAWITEM: EventToString := 'WM_DRAWITEM';
WM_DROPFILES: EventToString := 'WM_DROPFILES';
WM_ENDSESSION: EventToString := 'WM_ENDSESSION';
WM_ENTERIDLE: EventToString := 'WM_ENTERIDLE';
WM_ENTERMENULOOP: EventToString := 'WM_ENTERMENULOOP';
WM_ENTERSIZEMOVE: EventToString := 'WM_ENTERSIZEMOVE';
WM_ERASEBKGND: EventToString := 'WM_ERASEBKGND';
WM_EXITMENULOOP: EventToString := 'WM_EXITMENULOOP';
WM_EXITSIZEMOVE: EventToString := 'WM_EXITSIZEMOVE';
WM_FONTCHANGE: EventToString := 'WM_FONTCHANGE';
WM_GETDLGCODE: EventToString := 'WM_GETDLGCODE';
WM_GETFONT: EventToString := 'WM_GETFONT';
WM_GETHOTKEY: EventToString := 'WM_GETHOTKEY';
WM_GETICON: EventToString := 'WM_GETICON';
WM_GETMINMAXINFO: EventToString := 'WM_GETMINMAXINFO';
WM_GETTEXT: EventToString := 'WM_GETTEXT';
WM_GETTEXTLENGTH: EventToString := 'WM_GETTEXTLENGTH';
WM_HANDHELDFIRST: EventToString := 'WM_HANDHELDFIRST';
WM_HANDHELDLAST: EventToString := 'WM_HANDHELDLAST';
WM_HOTKEY: EventToString := 'WM_HOTKEY';
WM_HSCROLL: EventToString := 'WM_HSCROLL';
WM_HSCROLLCLIPBOARD: EventToString := 'WM_HSCROLLCLIPBOARD';
WM_ICONERASEBKGND: EventToString := 'WM_ICONERASEBKGND';
WM_INITDIALOG: EventToString := 'WM_INITDIALOG';
WM_INITMENU: EventToString := 'WM_INITMENU';
WM_INITMENUPOPUP: EventToString := 'WM_INITMENUPOPUP';
WM_INPUTLANGCHANGE: EventToString := 'WM_INPUTLANGCHANGE';
WM_KEYDOWN: EventToString := 'WM_KEYDOWN';
WM_KEYUP: EventToString := 'WM_KEYUP';
WM_KILLFOCUS: EventToString := 'WM_KILLFOCUS';
WM_LBUTTONDBLCLK: EventToString := 'WM_LBUTTONDBLCLK';
WM_LBUTTONDOWN: EventToString := 'WM_LBUTTONDOWN';
WM_LBUTTONUP: EventToString := 'WM_LBUTTONUP';
WM_MBUTTONDBLCLK: EventToString := 'WM_MBUTTONDBLCLK';
WM_MBUTTONDOWN: EventToString := 'WM_MBUTTONDOWN';
WM_MBUTTONUP: EventToString := 'WM_MBUTTONUP';
WM_MDIACTIVATE: EventToString := 'WM_MDIACTIVATE';
WM_MDICASCADE: EventToString := 'WM_MDICASCADE';
WM_MDICREATE: EventToString := 'WM_MDICREATE';
WM_MDIGETACTIVE: EventToString := 'WM_MDIGETACTIVE';
WM_MDIICONARRANGE: EventToString := 'WM_MDIICONARRANGE';
WM_MDIMAXIMIZE: EventToString := 'WM_MDIMAXIMIZE';
WM_MDINEXT: EventToString := 'WM_MDINEXT';
WM_MDIRESTORE: EventToString := 'WM_MDIRESTORE';
WM_MDISETMENU: EventToString := 'WM_MDISETMENU';
WM_MEASUREITEM: EventToString := 'WM_MEASUREITEM';
WM_MENUCHAR: EventToString := 'WM_MENUCHAR';
WM_MENUSELECT: EventToString := 'WM_MENUSELECT';
WM_MOUSEACTIVATE: EventToString := 'WM_MOUSEACTIVATE';
WM_MOUSEMOVE: EventToString := 'WM_MOUSEMOVE';
WM_MOVE: EventToString := 'WM_MOVE';
WM_NCACTIVATE: EventToString := 'WM_NCACTIVATE';
WM_NCCALCSIZE: EventToString := 'WM_NCCALCSIZE';
WM_NCCREATE: EventToString := 'WM_NCCREATE';
WM_NCDESTROY: EventToString := 'WM_NCDESTROY';
WM_NCHITTEST: EventToString := 'WM_NCHITTEST';
WM_NCLBUTTONDBLCLK: EventToString := 'WM_NCLBUTTONDBLCLK';
WM_NCLBUTTONDOWN: EventToString := 'WM_NCLBUTTONDOWN';
WM_NCLBUTTONUP: EventToString := 'WM_NCLBUTTONUP';
WM_NCMBUTTONDBLCLK: EventToString := 'WM_NCMBUTTONDBLCLK';
WM_NCMBUTTONDOWN: EventToString := 'WM_NCMBUTTONDOWN';
WM_NCMBUTTONUP: EventToString := 'WM_NCMBUTTONUP';
WM_NCMOUSEMOVE: EventToString := 'WM_NCMOUSEMOVE';
WM_NCPAINT: EventToString := 'WM_NCPAINT';
WM_NCRBUTTONDBLCLK: EventToString := 'WM_NCRBUTTONDBLCLK';
WM_NCRBUTTONDOWN: EventToString := 'WM_NCRBUTTONDOWN';
WM_NCRBUTTONUP: EventToString := 'WM_NCRBUTTONUP';
WM_NEXTDLGCTL: EventToString := 'WM_NEXTDLGCTL';
WM_NEXTMENU: EventToString := 'WM_NEXTMENU';
WM_NOTIFY: EventToString := 'WM_NOTIFY';
WM_NULL: EventToString := 'WM_NULL';
WM_PAINT: EventToString := 'WM_PAINT';
WM_PAINTCLIPBOARD: EventToString := 'WM_PAINTCLIPBOARD';
WM_PAINTICON: EventToString := 'WM_PAINTICON';
WM_PALETTECHANGED: EventToString := 'WM_PALETTECHANGED';
WM_PALETTEISCHANGING: EventToString := 'WM_PALETTEISCHANGING';
WM_PASTE: EventToString := 'WM_PASTE';
WM_PENWINFIRST: EventToString := 'WM_PENWINFIRST';
WM_PENWINLAST: EventToString := 'WM_PENWINLAST';
WM_POWER: EventToString := 'WM_POWER';
WM_POWERBROADCAST: EventToString := 'WM_POWERBROADCAST';
WM_PRINT: EventToString := 'WM_PRINT';
WM_PRINTCLIENT: EventToString := 'WM_PRINTCLIENT';
WM_QUERYDRAGICON: EventToString := 'WM_QUERYDRAGICON';
WM_QUERYENDSESSION: EventToString := 'WM_QUERYENDSESSION';
WM_QUERYNEWPALETTE: EventToString := 'WM_QUERYNEWPALETTE';
WM_QUERYOPEN: EventToString := 'WM_QUERYOPEN';
WM_QUEUESYNC: EventToString := 'WM_QUEUESYNC';
WM_QUIT: EventToString := 'WM_QUIT';
WM_RBUTTONDBLCLK: EventToString := 'WM_RBUTTONDBLCLK';
WM_RBUTTONDOWN: EventToString := 'WM_RBUTTONDOWN';
WM_RBUTTONUP: EventToString := 'WM_RBUTTONUP';
WM_RENDERALLFORMATS: EventToString := 'WM_RENDERALLFORMATS';
WM_RENDERFORMAT: EventToString := 'WM_RENDERFORMAT';
WM_SETCURSOR: EventToString := 'WM_SETCURSOR';
WM_SETFOCUS: EventToString := 'WM_SETFOCUS';
WM_SETFONT: EventToString := 'WM_SETFONT';
WM_SETHOTKEY: EventToString := 'WM_SETHOTKEY';
WM_SETICON: EventToString := 'WM_SETICON';
WM_SETREDRAW: EventToString := 'WM_SETREDRAW';
WM_SETTEXT: EventToString := 'WM_SETTEXT';
WM_SETTINGCHANGE: EventToString := 'WM_SETTINGCHANGE';
WM_SHOWWINDOW: EventToString := 'WM_SHOWWINDOW';
WM_SIZE: EventToString := 'WM_SIZE';
WM_SPOOLERSTATUS: EventToString := 'WM_SPOOLERSTATUS';
WM_STYLECHANGING: EventToString := 'WM_STYLECHANGING';
WM_SYSCHAR: EventToString := 'WM_SYSCHAR';
WM_SYSCOLORCHANGE: EventToString := 'WM_SYSCOLORCHANGE';
WM_SYSCOMMAND: EventToString := 'WM_SYSCOMMAND';
WM_SYSDEADCHAR: EventToString := 'WM_SYSDEADCHAR';
WM_SYSKEYDOWN: EventToString := 'WM_SYSKEYDOWN';
WM_SYSKEYUP: EventToString := 'WM_SYSKEYUP';
WM_TCARD: EventToString := 'WM_TCARD';
WM_TIMECHANGE: EventToString := 'WM_TIMECHANGE';
WM_TIMER: EventToString := 'WM_TIMER';
WM_UNDO: EventToString := 'WM_UNDO';
WM_USERCHANGED: EventToString := 'WM_USERCHANGED';
WM_VKEYTOITEM: EventToString := 'WM_VKEYTOITEM';
WM_VSCROLL: EventToString := 'WM_VSCROLL';
WM_VSCROLLCLIPBOARD: EventToString := 'WM_VSCROLLCLIPBOARD';
WM_WINDOWPOSCHANGED: EventToString := 'WM_WINDOWPOSCHANGED';
WM_WINDOWPOSCHANGING: EventToString := 'WM_WINDOWPOSCHANGING';
else EventToString := 'Unknown'
end;
inherited;
end;

[/code]
pcernet
初階會員


發表:69
回覆:113
積分:41
註冊:2002-11-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-10-05 18:58:50 IP:61.218.xxx.xxx 未訂閱
又爬了一些網文,發現Real Player也有廣告彈出視窗攔截的問題,並且也有用Delphi人寫了屏蔽程式,再努力看看。
pcernet
初階會員


發表:69
回覆:113
積分:41
註冊:2002-11-29

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-10-06 11:19:05 IP:61.218.xxx.xxx 未訂閱
他用的方法好像是使用TWebBrowse來接收這些廣告,這也是一個可以思考的方向~
pcernet
初階會員


發表:69
回覆:113
積分:41
註冊:2002-11-29

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-10-11 12:21:02 IP:61.218.xxx.xxx 未訂閱
不知道這是太簡單還是有難度,或是太冷門,敬請不吝提供思考方向!

如何攔截系統開啟外部文件?
再關注...
系統時間:2024-04-29 11:24:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!