<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      快手軟件

      【AAuto】QQ 客戶端全源碼

      【簡介】 
      快手W.QQ2012,采用騰訊QQ之w.qq.com協(xié)議(手機網(wǎng)頁版)。 

      【目的】 
      1、第一次嘗試Web UI開發(fā)應(yīng)用 
      2、進階學(xué)習(xí)快手 
      3、制作QQ機器人,應(yīng)用于PHP或者直接數(shù)據(jù)庫交互 

      【分享包】 
      1、快手項目包(aau、htm、js、css、picture) 
      2、Png源文件以及QQ素材 

      【開發(fā)用的工具有】 
      1、IDE:快手AAuto最新版  
      2、網(wǎng)頁設(shè)計:DreamWeaver CS5.5 + Jquery插件智能提示 
      3、圖形UI設(shè)計:FireWorks CS5.5 
      4、快速編輯器:EditPlus3 
      5、調(diào)試Debug瀏覽器:FireFox8 + fireBug插件 
      6、應(yīng)用圖標設(shè)計:IconWorkshop 

      【準備與流程】 
      1、熟看快手范例 
      2、熟悉Javascript語言 
      3、熟悉Jquery框架 
      4、熟悉CSS層疊樣式設(shè)計 
      5、參考騰訊官方QQ界面,構(gòu)思UI 
      5、獲取基本素材,通過QQ資源包獲取 
      6、了解w.qq.com功能,分析網(wǎng)頁js以及firebug進行抓包對比分析

      【協(xié)議】 
      1、登陸協(xié)議: 由于騰訊所有WEB登陸應(yīng)用,都是同一協(xié)議。我會在細化補充 
      2、w.qq.com協(xié)議看似比較簡單,但也有難度。簡單:利用官方的rpcservice.js文件能看懂邏輯交互類似(MVC里的M和C),views.js相當(dāng)于V。復(fù)雜:數(shù)據(jù)相對復(fù)雜,沒有json那樣的美觀,一句話簡陋得不能再簡陋(需要靠讀rpcservice.js和dump結(jié)果分析)。 
      3、我下次會專門抽時間,把協(xié)議簡單理一下,并畫出w.qq.com中的js簡單邏輯流程圖

      【備注】 
      1、源碼開源!“自由”請理解好,請不要拿這個東西干壞事,切忌切忌! 
      2、可以轉(zhuǎn)載,可以二次開發(fā),可以商用,反正“自由”。 

      全源碼下載地址:
       http://www.aau.cn/thread-4216-1-1.html 

       

      【界面】 

                           

       

       

      import web.ui;
      import web.util;
      import process;
      import fsys;
      import qq;
      /*DSG{{*/
      var winform = win.form(parent=...; text="Web UI";title=false;bottom=226;max=false;right=353;border="none";mode="popup" )
      winform.add( 
      pic_validate={ dl=1;bottom=294;text="picturebox";left=48;dt=1;top=241;z=1;right=178;hide=1;cls="picturebox" }
      )
      /*}}*/

      winform.text = "W.QQ2012";
      var wb = web.form( winform, 0x4/*_UIFLAG_NO3DBORDER*/ );
      wb.showMenu=function(x,y,id,ele){ 
          return false;//關(guān)閉右鍵菜單
      }
      wb.go("/res/login.htm");
      //web.ui( wb, 354, 242);    
      web.ui( wb, false);
      wb.jQuery(); 

      wb.attachAll(  
          /* html節(jié)點ID = 事件觸發(fā)函數(shù)表 */
          caption_button_website = {
              onclick = function(event){
                  process.execute("http://www.ninja911.com");
                  //web.util.ieBrowser("http://www.ninja911.com")
              } 
              onmouseup = function(event){
                  event.srcElement.blur();
              }
              
          }
      );
      var dir_data = "\data";
      if (!io.exist(dir_data)) {
          fsys.createDir(dir_data);
      }
      var file_my_qqpcs = "\data\my_qqpcs.js";
      if (!io.exist(file_my_qqpcs)) {
          string.save(file_my_qqpcs, $"\res\js\my_qqpcs.js");
      }
      var qqClass = qq.myqq();

      var qq_number = "";
      var qq_password = "";
      var webqq_type = "";
      var tmid = null;

      winform.show(true);

      wb.external = { 
          ext_qq_login = function (qq_number, qq_password, webqq_type, remember, validate) {
              qq_login(qq_number, qq_password, webqq_type, remember, validate);
          };
          ext_reload_validate = function(qq_number, qq_password, webqq_type){
              reload_validate(qq_number, qq_password, webqq_type);
          };
          ext_recheck_qq_number_validate = function(qq_number){
              recheck_qq_number_validate(qq_number);
          }
          
          
      };

      show_validate = function(qq_number, status = "show"){
          if (status == "hide") {
              var x,y,cx,cy = win.getPos(winform.hwnd);
              if (cy > 226) {
                  win.setPos(winform.hwnd,x,y,cx,226);
              }
              winform.pic_validate.hide = true;
              wb.doScript("show_input_validate('hide');");
          } else {
              var x,y,cx,cy = win.getPos(winform.hwnd);
              if (cy < 306) {
                  win.setPos(winform.hwnd,x,y,cx,306);
              }
              var validate_file = "\data\" + qq_number +"\validate.bmp";
              if (io.exist(validate_file)) {
                  var validate_data = string.load(validate_file);
                  winform.pic_validate.redraw();
                  winform.pic_validate.image = validate_data;
              }
              winform.pic_validate.hide = false;
              wb.doScript("show_input_validate('show');");
          }
      }



      qq_login = function(qq_number, qq_password, webqq_type, remember, validate){
          var js_return = -1;
          if (qq_number == "") {
              win.msgbox('錯誤:QQ不能為空', '錯誤', '0x10');
              return;
          }
          if (qq_password == "") {
              win.msgbox('錯誤:密碼不能為空', '錯誤', '0x10');
              return;
          }
          var tb_config = qqClass.get_class_config();
          qqClass.ini(qq_number, qq_password, webqq_type);
          show_validate(qq_number, "hide");
          if (qqClass.get_logined_status() == false) {
              wb.doScript("toggle_btn_login('hide');");
              var login_status, v1_need_validate, v1_verifysession = qqClass.ui_login(validate);
              if (login_status == "0") {
                  show_validate(qq_number, "hide");
                  winform.show(false);
                  child_form_mbar, child_wb = winform.loadcode("\res\aform\mbar.aau");
                  mbar_qq_ini(qqClass.get_class_config());
              } elseif (login_status == -9002) {
                  wb.doScript("toggle_btn_login('show');");
                  win.msgbox('需要輸入驗證碼' + qq_number, '錯誤', '0x10');
                  show_validate(qq_number);
              } else {
                  wb.doScript("toggle_btn_login('show');");
                  if (login_status == "4") {
                      win.msgbox('驗證碼校驗錯誤,請重新輸入', '錯誤', '0x10');
                      var need_validate, str_verifysession = qqClass.login_request_validate();
                      if (need_validate == 1) {
                          show_validate(qq_number, "show");
                      }
                  } else {
                      var err_msg = qqClass.err_msg;
                      if (v1_verifysession) {
                          err_msg = v1_verifysession;
                      } else {
                          if (err_msg == "") {
                              err_msg = "未知錯誤";
                          }
                      }
                      win.msgbox(err_msg, '錯誤', '0x10');
                      qqClass.close();
                  }
              }
          }
      };


      reload_validate = function(qq_number, qq_password, webqq_type){
          if (qq_number == "") {
              win.msgbox('錯誤:QQ不能為空', '錯誤', '0x10');
              return;
          }
          if (qq_password == "") {
              win.msgbox('錯誤:密碼不能為空', '錯誤', '0x10');
              return;
          }
          qqClass.ini(qq_number, qq_password, webqq_type);
          var need_validate, str_verifysession = qqClass.login_request_validate();
          if (need_validate == 1) {
              show_validate(qq_number, "show");
          } else {
              show_validate(qq_number, "hide");
          }
      }

      recheck_qq_number_validate = function(qq_number){
          if (qq_number == "") {
              win.msgbox('錯誤:QQ不能為空', '錯誤', '0x10');
              return;
          }
          if (qqClass.get_logined_status() == false) {
              var need_validate, str_verifysession = qqClass.login_request_validate(qq_number);
              if (need_validate == 1) {
                  show_validate(qq_number, "show");
              } else {
                  show_validate(qq_number, "hide");
              }
          }
      }


      winform.wndproc = function(hwnd,message,wparam,lparam){
          select(message) {//判斷消息類型
              case  0x10/*_WM_CLOSE窗口關(guān)閉消息*/{
                  winform.show(false);
                  qqClass.exit();
                  io.close();
                  win.quitMessage();
              }
          }
      }

      //進入消息循環(huán)
      win.loopMessage();
      return winform,wb;

       

      posted on 2011-11-16 18:47  快手軟件  閱讀(1239)  評論(0)    收藏  舉報

      導(dǎo)航

      主站蜘蛛池模板: 日本视频一两二两三区| 亚洲免费人成在线视频观看| 亚洲色在线V中文字幕| 国产精品普通话国语对白露脸| 久久精品蜜芽亚洲国产av| 精品国产一区二区三区2021| 无码国模国产在线观看免费| 亚洲男人天堂东京热加勒比| 久久精品人人槡人妻人人玩| 久久午夜无码免费| 激情在线网| 无码人妻丰满熟妇片毛片| 亚洲精品动漫一区二区三| 717午夜伦伦电影理论片| 成年女人免费碰碰视频| 亚洲国产精品美日韩久久| 成人国产乱对白在线观看| 国产激情一区二区三区不卡| gogogo高清在线观看视频中文| 国产电影一区二区三区| 久久精品国产99麻豆蜜月| 国语自产拍精品香蕉在线播放| 国产一区二区精品偷系列| 国产精品黄色片| 国产97视频人人做人人爱| 欧美极品色午夜在线视频| аⅴ天堂中文在线网| 久久一区二区中文字幕| 日本阿v片在线播放免费| 成人免费精品网站在线观看影片| 成人av片无码免费网站| 成人午夜电影福利免费| 噜噜噜亚洲色成人网站∨| 国产区成人精品视频| 国产成人精品一区二区秒拍1o| 日本边添边摸边做边爱喷水| 又爽又黄又无遮挡的视频| 国产午夜免费高清久久影院| 久久精品国产亚洲AV麻豆长发| 亚洲国产日韩伦中文字幕| 2021最新国产精品网站|