Что нового

[В контакте] нужно плучить страницу чисто с флеш приложением

winstan

Эксплотатор)
Сообщения
406
Репутация
79
Вот за основу взял код из справки может подскажите как очистить страницу от меню , шапки и д.т. чтобы упростить разработку бота
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3> 

	$oIE = ObjCreate("Shell.Explorer.2")

	; Create a simple GUI for our output
	GUICreate("Embedded Web control Test", 800, 680,-1,-1)
	GUICtrlCreateObj($oIE, 10, 10, 780, 600)
	$GUI_Button_Back = GUICtrlCreateButton("Back", 10, 640, 100, 30)
	$GUI_Button_Forward = GUICtrlCreateButton("Forward", 120, 640, 100, 30)
	$GUI_Button_Home = GUICtrlCreateButton("Home", 230, 640, 100, 30)
	$GUI_Button_Stop = GUICtrlCreateButton("Stop", 330, 640, 100, 30)

	GUISetState() ;Show GUI

	$oIE.navigate("http://vk.com/app3069891")

	; Waiting for user to close the window
	While 1
		$msg = GUIGetMsg()

		Select
			Case $msg = $GUI_EVENT_CLOSE
				ExitLoop
			 Case $msg = $GUI_Button_Home
					;$oIE.navigate("http://vk.com/app1979194_11647078?ref=1")
			Case $msg = $GUI_Button_Back
				$oIE.GoBack
			Case $msg = $GUI_Button_Forward
				$oIE.GoForward
			Case $msg = $GUI_Button_Stop
				$oIE.Stop
		EndSelect

	WEnd

	GUIDelete()
 

nowost

Знающий
Сообщения
178
Репутация
17
хз как правильно, но я подкручивал размер и положение страницы таким образом, чтобы в видимой части отображался только флеш. Другими словами страница прогружается полностью, но отображается только окно с флешем.

Код:
GUICtrlCreateObj($oIE, 10, 10, 780, 600)
 
Автор
winstan

winstan

Эксплотатор)
Сообщения
406
Репутация
79
nowost
я изначально так и хотел но потом понел не получаеться корректно сдвинуть страницу програмно
 

nowost

Знающий
Сообщения
178
Репутация
17
все нормально вообщето сдвигается , буду дома выложу пример кода.


Добавлено:
Сообщение автоматически объединено:

вот нашел
Код:
Global $Vk_Prestol_Bot = GUICreate("Войны Престолов Бот", 760, 750, -1, -1)
GUISetOnEvent($GUI_EVENT_CLOSE, "Close")
Global $Game = ObjCreate("Shell.Explorer.2")
Global $Game_ctrl = GUICtrlCreateObj($Game, -150, -220, 960, 1050)
$Game.navigate("http://vk.com/thronewars?mid=57894971&ref=9")
GUISetState(@SW_SHOW,$Vk_Prestol_Bot)

While 1
   Sleep(1000)
   WEnd
 
Автор
winstan

winstan

Эксплотатор)
Сообщения
406
Репутация
79
Вот если вырезать
это...
Код:
 <div id="page_header" class="p_head p_head_l0">
      <div class="back"></div>
      <div class="left"></div>
      <div class="right"></div>
      <div class="content">
        
<div id="top_nav" class="head_nav">
  <table cellspacing="0" cellpadding="0" id="top_links">
    <tr>
      <td class="top_home_link_td">
        <div id="top_logo_down"></div>
        <a class="top_home_link" href="/feed" onmousedown="addClass('top_logo_down','tld_d');" onclick="return nav.go(this, event);"></a>
      </td>
      <td class="top_back_link_td">
        <a class="top_nav_link fl_l" href="" id="top_back_link" onclick="if (nav.go(this, event, {back: true}) === false) { showBackLink(); return false; }" onmousedown="tnActive(this)"></a>
      </td>
      <td style=""><nobr>
        <a class="top_nav_link" id="head_people" href="/search?c[section]=people" onclick="return nav.go(this, event, {search: true, noframe: true});" onmouseover="gSearch.preload();" onmousedown="tnActive(this)">люди</a>
      </nobr></td>
      <td style=""><nobr>
        <a class="top_nav_link" id="head_communities" href="/search?c[section]=communities" onclick="return nav.go(this, event, {search: true, noframe: true});" onmousedown="tnActive(this)">сообщества</a>
      </nobr></td>
      <td style=""><nobr>
        <a class="top_nav_link" id="head_games" href="/apps" onmousedown="tnActive(this)">игры</a>
      </nobr></td>
      <td style=""><nobr>
        <a class="top_nav_link" id="head_music" href="/audio?act=popular" onclick="if (currentAudioId()) return Pads.show('mus', event);" onmousedown="tnActive(this)">
          <span id="head_music_text">музыка</span>
          <div id="head_play_btn" onmouseover="addClass(this, 'over');" onmouseout="removeClass(this, 'over'); removeClass(this, 'down')" onmousedown="addClass(this, 'down'); addClass(ge('head_music'), 'head_play_down');" onmouseup="removeClass(this, 'down')" onclick="headPlayPause(event); return Pads.show('mus', event);"></div>
        </a>
      </nobr></td>
      <td id="support_link_td" style=""><nobr>
        <a class="top_nav_link" id="top_support_link" href="/support?act=new" onclick="return nav.go(this, event, {noback: true});" onmousedown="tnActive(this)">помощь</a>
      </nobr></td>
      <td id="logout_link_td"><nobr>
        <a class="top_nav_link" id="logout_link" href="https://login.vk.com/?act=logout&hash=15f61011c328951493&_origin=http://vk.com" onclick="if (checkEvent(event) === false) { location.href = this.href; return cancelEvent(event); }" onmousedown="tnActive(this)">выйти</a>
      </nobr></td>
    </tr>
  </table>
  <div id="ts_wrap" class="clear_fix">
    <div id="ts_input_wrap" class="ts_input_wrap fl_r" onmouseover="TopSearch.highlightInput(true); TopSearch.initFriendsList();" onmouseout="TopSearch.highlightInput(false)">
      <div class="ts" onmousedown="event.cancelBubble = true;">
        <div class="ts_input_wrap2"><div>
          <input type="text" onmousedown="event.cancelBubble = true;" ontouchstart="event.cancelBubble = true;" class="text" id="ts_input" autocomplete="off" placeholder="Поиск" />
        </div></div>
      </div>
    </div>
    <div id="ts_friends_online" class="ta_r"></div>
  </div>
  <span style="display: none" id="top_new_msg"></span>
</div>
<div id="ts_cont_wrap" ontouchstart="event.cancelBubble = true;" onmousedown="event.cancelBubble = true;"></div>
      </div>
    </div>
то получаеться это близко к тому что я хочу но это не статичные данные :(
 

nowost

Знающий
Сообщения
178
Репутация
17
да не нужно ничего вырезать, смещай ActiveX относительно окна GUI , дай ссыль на игру плз
 
Автор
winstan

winstan

Эксплотатор)
Сообщения
406
Репутация
79
nowosthttp://vk.com/app3069891
 

nowost

Знающий
Сообщения
178
Репутация
17
попробуй так

Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>




Global $Vk_Prestol_Bot = GUICreate("Войны Престолов Бот", 760, 850, -1, -1)
GUISetOnEvent($GUI_EVENT_CLOSE, "Close")
Global $Game = ObjCreate("Shell.Explorer.2")
Global $Game_ctrl = GUICtrlCreateObj($Game, -150, -220, 960, 150)
$Game.navigate("http://vk.com/app3069891")
GUISetState(@SW_SHOW,$Vk_Prestol_Bot)

While 1
   Sleep(1000)
   WEnd





Добавлено:
Сообщение автоматически объединено:

или так
Код:
Global $Vk_Prestol_Bot = GUICreate("Войны Престолов Бот", 760, 750, -1, -1)


1383637059-clip-158kb.jpg

1383637093-clip-105kb.jpg

подрезай как нужно
 

valldar

Новичок
Сообщения
32
Репутация
2
На странице можно оставить только само приложение без остального мусора.
Естественно вы должны быть авторизованы в IE и приложение должно быть установлено на странице.
Предлагаю свой код:

Код:
#Include <GUIConstantsEx.au3>
#Include <WindowsConstants.au3>
#Include <IE.au3>
#Include <array.au3>

$oIE = ObjCreate("Shell.Explorer.2")

; Create a simple GUI for our output
GUICreate("Embedded Web control Test", 800, 680, -1, -1)
GUICtrlCreateObj($oIE, 10, 10, 780, 600)
$GUI_Button_Back = GUICtrlCreateButton("Back", 10, 640, 100, 30)
$GUI_Button_Forward = GUICtrlCreateButton("Forward", 120, 640, 100, 30)
$GUI_Button_Home = GUICtrlCreateButton("Home", 230, 640, 100, 30)
$GUI_Button_Stop = GUICtrlCreateButton("Stop", 330, 640, 100, 30)

GUISetState() ;Show GUI

_IENavigate($oIE, "http://vk.com/app3069891")
$oFlashContainer = _IEGetObjById($oIE, 'apps') ; получаем объект, в котором содержится флэш
If @Error Then MsgBox(0, '', @Error)
$sHTML = _IEPropertyGet($oFlashContainer, "outerhtml") ; получаем HTML этого объекта
$aFlashvars = StringRegExp($sHTML, 'flashvars.*?value(.*?)</object>', 1) ; убираем лишнее
$aFlashvars_params = StringRegExpReplace($aFlashvars[0], '<param name="(.*?){1}" value="(.*?){2}">', ' $1="$2"') ; убираем лишнее
;_ArrayDisplay($aFlashvars)
$aFlashvars_params = StringRegExpReplace($aFlashvars_params, '&amp;', '&')  ; убираем лишнее
$aFlashvars_params = StringRegExpReplace($aFlashvars_params, '>', @LF)  ; убираем лишнее
$aFlashvars_params = StringRegExpReplace($aFlashvars_params, 'movie', 'src')  ; убираем лишнее
$width = StringRegExp($sHTML, 'width="(.*?)"', 1)
$height = StringRegExp($sHTML, 'height="(.*?)"', 1)
$HTMLtoWhrite = '<div id="flash_api_external_cont">' & _
		'<embed type="application/x-shockwave-flash" id="flash_app" name="flash_app" ' & 'wdith="' & $width[0] & '" height="' & $height[0] & '" preventhide="1" quality="high"' & _
		' flashvars' & $aFlashvars_params & _
		' style="width: ' & $width[0] & 'px; height: ' & $height[0] & 'px;"></div>'

;MsgBox(0, '', $sHTML)
;MsgBox(0, '', $aFlashvars_params)
;MsgBox(0, '', $HTMLtoWhrite)
_IEBodyWriteHTML($oIE, $HTMLtoWhrite)

; Waiting for user to close the window
While 1
	$msg = GUIGetMsg()
	
	Select
		Case $msg = $GUI_EVENT_CLOSE
			ExitLoop
		Case $msg = $GUI_Button_Home
			;$oIE.navigate("http://vk.com/app1979194_11647078?ref=1")
		Case $msg = $GUI_Button_Back
			$oIE.GoBack
		Case $msg = $GUI_Button_Forward
			$oIE.GoForward
		Case $msg = $GUI_Button_Stop
			$oIE.Stop
	EndSelect
	
WEnd

GUIDelete()


Код можно доработать, добавить ввод логина/пароля, установку приложений и тп.
 
Автор
winstan

winstan

Эксплотатор)
Сообщения
406
Репутация
79
valldar
Спасибо именно это я и хотел ток у самого не получалось
 

L-Sama

Новичок
Сообщения
1
Репутация
0
Попытался использовать это решение для другой гамулины вконтакте ничего не вышло(просто белое окно), с GUI я вообще не дружу, собственно бот уже написан(только для игры запущенной в полный экран), хотелось бы к нему гуй прикрутить, да на ControlClick перевести, дабы работал в фоне и не занимал комп..... выручайте с гуевиной плиииз :smile:

Ссылка на приложение _http://vk.com/app3021522_2230642

Заранее спасибо ;-)
 
Верх