开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 5708|回复: 37
收起左侧

[易语言纯源码] 多页浏览器 娱乐版

[复制链接]
结帖率:33% (3/9)
发表于 2013-3-12 17:23:45 | 显示全部楼层 |阅读模式   四川省成都市
分享源码
界面截图:
是否带模块: -
备注说明: -


1:无标签设置与浏览框架内标题不相同{无同步相差} [不要拿我和你们这种不专业的程序员比]
2:标签宽度同意设置为准常量宽度
3:  包括删除标签问题的一些专业性的修改
4:...................  // 注释:源代码英文尚多,请注意
代码可抄袭,不可翻版版权
  1. .版本 2

  2. .程序集 OveMain

  3. .子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行

  4. Main ()
  5. 返回 (0) ' 可以根据您的需要返回任意数值

  6. .子程序 Main

  7. 载入 (MainForm, , 真)

复制代码
  1. .版本 2
  2. .支持库 HtmlView
  3. .支持库 iext3
  4. .支持库 EThread
  5. .支持库 iext
  6. .支持库 eAPI
  7. .支持库 spec
  8. .支持库 shell

  9. .程序集 MainModel
  10. .程序集变量 MainUI, 自绘皮肤
  11. .程序集变量 Environment, 文本型
  12. .程序集变量 Hwnd, 整数型
  13. .程序集变量 IE, 超文本浏览框, , "0"
  14. .程序集变量 Thwnd, 整数型

  15. .子程序 _MainForm_创建完毕
  16. .局部变量 ztt, 状态栏信息, , "1"

  17. Environment = 取运行目录 ()
  18. Hwnd = 取窗口句柄 ()
  19. _Scr_失去焦点 ()
  20. WebIco.图片 = #ico
  21. MainUI.置皮肤 (, { }, , #艳青, #背景图_缩放)
  22. MainUI.置控件皮肤 (真, 188, 真)
  23. MainUI.加入窗口 (Hwnd, 24, 真, 假, 假, 真, 真, 真, 24, ztt, #BorderImage, #背景图_平铺)
  24. MainUI.加入面板 (分组框1.取窗口句柄 (), 真, , 188, 真)
  25. MainUI.置状态栏字体 (Hwnd, 真, 真, #品红, , , )
  26. MainUI.置事件_菜单钮被单击 (Hwnd, &OpenMenu)
  27. NewWindow (#pir)
  28. ' MainUI.加入面板 (STab.取窗口句柄 (), 真, , 188, 真)
  29. ' NewWindow (ToString (GetRegedit (3, “SOFTWARE\Microsoft\Internet Explorer\MAIN\Start Page”)))

  30. .子程序 OpenMenu

  31. 弹出菜单 (menu, , )

  32. .子程序 GetRegedit, 字节集, , 获取注册表项目
  33. .参数 a, 整数型
  34. .参数 b, 文本型

  35. 返回 (到字节集 (取文本注册项 (a, b, )))

  36. .子程序 NewWindow, , , 新的浏览框架
  37. .参数 url, 文本型
  38. .局部变量 aa, 超文本浏览框
  39. .局部变量 index, 整数型
  40. .局部变量 tmp, 文本型

  41. 复制窗口组件 (SupremeBrowser, aa)
  42. 加入成员 (IE, aa)
  43. index = GetArrayCountBrowser (IE)
  44. .如果真 (index > 0)
  45. .计次循环首 (#StrHeith, )
  46. tmp = tmp + “ ”
  47. .计次循环尾 ()
  48. STab.加入子夹 (tmp, , , , )
  49. STab.现行子夹 = index
  50. IE [index].标记 = 到文本 (index)
  51. IE [index].可视 = 真
  52. IE [index].静默 = 真
  53. IE [index].跳转 (url, , )
  54. IE [index].调整层次 ()
  55. .如果真结束


  56. .子程序 Navigate, , , 跳转页面
  57. .参数 Browserindex, 整数型
  58. .参数 url, 文本型

  59. .如果真 (Browserindex > 0)
  60. .如果真 (STab.现行子夹 ≠ Browserindex)
  61. STab.现行子夹 = Browserindex
  62. .如果真结束
  63. IE [Browserindex].跳转 (url, , )
  64. .如果真结束


  65. .子程序 SyncTabTitle, , , 同步标签标题
  66. .局部变量 Count, 整数型
  67. .局部变量 i, 整数型

  68. Count = GetArrayCountBrowser (IE)
  69. .如果真 (Count > 0)
  70. .计次循环首 (Count, i)
  71. STab [i].置子夹名称 (i, STab [i].标记)
  72. .计次循环尾 ()
  73. STab.刷新显示 ()
  74. .如果真结束


  75. .子程序 GetArrayCountBrowser, 整数型, , 获取浏览框架数目
  76. .参数 CodeArray, 超文本浏览框, 数组

  77. 返回 (取数组成员数 (CodeArray))

  78. .子程序 ReadFile, 字节集, , 读入字节流
  79. .参数 a, 文本型

  80. 返回 (读入文件 (a))

  81. .子程序 ReadCfg, 文本型, , 读取Cfg
  82. .参数 a, 文本型
  83. .参数 b, 文本型

  84. 返回 (读配置项 (取运行目录 () + “\bin.cfg”, a, b, ))


  85. .子程序 WriteCfg, 逻辑型, , 写入Cfg
  86. .参数 a, 文本型
  87. .参数 b, 文本型
  88. .参数 c, 文本型

  89. 返回 (写配置项 (取运行目录 () + “\bin.cfg”, a, b, c))


  90. .子程序 Toint, 整数型, , 到整数
  91. .参数 a, 文本型

  92. 返回 (到整数 (a))

  93. .子程序 ToString, 文本型, , 到字符串
  94. .参数 a, 字节集

  95. 返回 (到文本 (a))


  96. .子程序 ToBin, 字节集, , 到字节集
  97. .参数 a, 整数型

  98. 返回 (到字节集 (a))


  99. .子程序 _STab_子夹被改变
  100. .局部变量 index, 整数型

  101. index = STab.现行子夹
  102. .如果真 (index > 0)
  103. .如果真 (GetArrayCountBrowser (IE) > 0)
  104. SimultaneousDisplayFran (index)
  105. SetTheUrlText (index)
  106. 强制结束线程 (Thwnd)
  107. 启动线程 (&Trher, , Thwnd)
  108. .如果真结束

  109. .如果真结束


  110. .子程序 SetTheUrlText, , 公开, 设置地址栏内容
  111. .参数 i, 整数型

  112. .如果真 (GetArrayCountBrowser (IE) > 0)
  113. Url.内容 = IE [i].标题
  114. .如果真结束


  115. .子程序 SetTheWindthOfTheLable, , , 设置标签宽带
  116. .参数 ITab, 整数型
  117. .参数 StrBin, 文本型, , 字符串流数据
  118. .局部变量 Register, 文本型, , , //无申明 static 而是 code auto 动态调用
  119. .局部变量 i, 整数型
  120. .局部变量 ii, 整数型
  121. .局部变量 rgr, 文本型

  122. .如果真 (ITab > 0 且 GetArrayCountBrowser (IE) > 0)
  123. .如果真 (ITab > 0)
  124. .如果真 (取文本长度 (StrBin) > #StrHeith)
  125. Register = 取文本左边 (StrBin, #StrHeith - #StrProportion)
  126. Register = Register + “...”
  127. STab.置子夹名称 (ITab, Register)
  128. .如果真结束
  129. .如果真 (取文本长度 (StrBin) < #StrHeith)
  130. ii = 取文本长度 (StrBin)
  131. ii = #StrHeith - ii
  132. rgr = StrBin
  133. .计次循环首 (ii ÷ 2, i)
  134. rgr = “ ” + rgr + “ ”
  135. .计次循环尾 ()
  136. STab.置子夹名称 (ITab, rgr)
  137. .如果真结束
  138. STab.置子夹提示文本 (ITab, StrBin)
  139. .如果真结束

  140. .如果真结束




  141. .子程序 SimultaneousDisplayFran, , , 同步显示框架
  142. .参数 BrowserIndex, 整数型
  143. .局部变量 i, 整数型

  144. .计次循环首 (GetArrayCountBrowser (IE), i)
  145. IE [i].可视 = 假
  146. .计次循环尾 ()
  147. IE [BrowserIndex].可视 = 真
  148. IE [BrowserIndex].调整层次 ()

  149. .子程序 _STab_被双击, 逻辑型
  150. .参数 横向位置, 整数型
  151. .参数 纵向位置, 整数型
  152. .参数 功能键状态, 整数型

  153. CloseTab (STab.现行子夹)

  154. .子程序 GetHwnd, 整数型
  155. .局部变量 cc, 文本型

  156. 返回 (FindWindowA (cc, 标题))

  157. .子程序 CloseTab, , , 关闭标签
  158. .参数 Tabindex, 整数型

  159. .如果真 (Tabindex > 0 且 GetArrayCountBrowser (IE) > 0)
  160. .判断开始 (Tabindex > 1)
  161. IE [Tabindex].销毁 ()
  162. 删除成员 (IE, Tabindex, 1)
  163. STab.删除子夹 (Tabindex)
  164. .判断 (Tabindex = 1 且 GetArrayCountBrowser (IE) > 1)
  165. IE [Tabindex].销毁 ()
  166. 删除成员 (IE, Tabindex, 1)
  167. STab.删除子夹 (Tabindex)
  168. .默认
  169. Navigate (GetArrayCountBrowser (IE), #pir)
  170. ' BrowserExecute (GetArrayCountBrowser (IE), #到首页)
  171. .判断结束
  172. SimultaneousDisplayFran (STab.现行子夹)
  173. .如果真结束



  174. .子程序 BrowserExecute, , 公开, 执行命令
  175. .参数 ii, 整数型
  176. .参数 i, 整数型

  177. IE [ii].执行命令 (i)

  178. .子程序 _搜索按钮_被单击

  179. .如果 (删全部空 (Scr.内容) ≠ #scr 且 删全部空 (Scr.内容) ≠ “”)
  180. Url.内容 = “http://www.baidu.com/s?wd=” + url_编码 (Scr.内容)
  181. .否则
  182. Url.内容 = “http://www.baidu.com/”
  183. .如果结束
  184. _NVGoo_被单击 ()


  185. .子程序 url_编码, 文本型
  186. .参数 URL, 文本型
  187. .局部变量 Len, 整数型
  188. .局部变量 循环容器, 整数型
  189. .局部变量 Asc, 整数型
  190. .局部变量 目标, 文本型
  191. .局部变量 临时, 文本型

  192. Len = 取文本长度 (URL)
  193. .变量循环首 (1, Len, 1, 循环容器)
  194. Asc = 取代码 (URL, 循环容器)
  195. Asc = 选择 (Asc < 0, 256 + Asc, Asc)
  196. .如果 (Asc < 42 或 Asc = 43 或 Asc > 57 且 Asc < 64 或 Asc > 90 且 Asc < 95 或 Asc = 96 或 Asc > 122)
  197. 临时 = 取十六进制文本 (Asc)
  198. 目标 = 目标 + 选择 (取文本长度 (临时) < 2, “%0” + 临时, “%” + 临时)
  199. .否则
  200. 目标 = 目标 + 字符 (Asc)
  201. .如果结束

  202. .变量循环尾 ()
  203. 返回 (目标)

  204. .子程序 _Scr_失去焦点

  205. .如果真 (删全部空 (Scr.内容) = “”)
  206. Scr.内容 = #scr
  207. .如果真结束


  208. .子程序 _Scr_获得焦点

  209. .如果真 (删全部空 (Scr.内容) = #scr)
  210. Scr.内容 = “”
  211. .如果真结束


  212. .子程序 _SupremeBrowser_鼠标左键被按下, 逻辑型
  213. .参数 横向位置, 整数型
  214. .参数 纵向位置, 整数型
  215. .参数 功能键状态, 整数型

  216. SupremeBrowser.获取焦点 ()


  217. .子程序 GetLoadUrl, , , 获取载入动态改变的URL

  218. .如果真 (GetArrayCountBrowser (IE) > 0)
  219. Url.内容 = IE [STab.现行子夹].地址
  220. .如果真结束


  221. .子程序 _SupremeBrowser_载入进度改变
  222. .参数 进度百分比, 整数型

  223. ProgressBar.位置 = 进度百分比
  224. GetLoadUrl ()

  225. .子程序 _SupremeBrowser_状态文本被改变

  226. .如果真 (GetArrayCountBrowser (IE) > 0)
  227. Statusbar.标题 = IE [STab.现行子夹].状态条文本
  228. .如果真结束


  229. .子程序 _GoHome_被单击
  230. .局部变量 i, 整数型

  231. .如果真 (GetArrayCountBrowser (IE) > 0)
  232. i = STab.现行子夹
  233. BrowserExecute (i, #到首页)
  234. .如果真结束


  235. .子程序 _SupremeBrowser_标题被改变
  236. .局部变量 index, 整数型
  237. .局部变量 Rc, 超文本浏览框
  238. .局部变量 register, 文本型

  239. .如果真 (GetArrayCountBrowser (IE) > 0)
  240. Rc = 取事件组件 ()
  241. index = Toint (Rc.标记)
  242. .如果 (Rc.标题 = #cr)
  243. SetTheWindthOfTheLable (index, #dr)
  244. .否则
  245. SetTheWindthOfTheLable (index, Rc.标题)
  246. .如果结束

  247. .如果真结束


  248. .子程序 _NVGoo_被单击
  249. .局部变量 index, 整数型

  250. .如果真 (删全部空 (Url.内容) ≠ “”)
  251. index = STab.现行子夹
  252. Navigate (index, Url.内容)
  253. .如果真结束


  254. .子程序 _SupremeBrowser_即将打开新窗口, 逻辑型
  255. .局部变量 index, 整数型
  256. .局部变量 str, 文本型
  257. .局部变量 Rt, 超文本浏览框

  258. Rt = 取事件组件 ()
  259. NewWindow (“”)
  260. .如果真 (GetArrayCountBrowser (IE) > 0)
  261. index = STab.现行子夹
  262. str = Rt.状态条文本
  263. .如果真 (删全部空 (str) ≠ “” 且 删全部空 (str) ≠ #ower)
  264. Navigate (index, str)
  265. .如果真结束

  266. .如果真结束
  267. 返回 (假)


  268. .子程序 _SupremeBrowser_载入完毕

  269. CE ()



  270. .子程序 Trher
  271. .局部变量 str, 文本型
  272. .局部变量 tmp, 文本型, , "0"
  273. .局部变量 kc, 文本型
  274. .局部变量 流, 字节集

  275. .如果 (是否与互联网连接 () = 真)
  276. .如果 (GetArrayCountBrowser (IE) > 0)
  277. str = IE [STab.现行子夹].地址
  278. tmp = 分割文本 (str, “/”, )
  279. .如果 (取数组下标 (tmp, ) ≥ 3)
  280. kc = tmp [1] + tmp [2] + tmp [3]
  281. kc = kc + “/” + #favicon
  282. 流 = ReadXMLHTTPFile (“Get”, kc)
  283. .如果 (流 ≠ { })
  284. WebIco.图片 = 流
  285. .否则
  286. WebIco.图片 = #ico
  287. .如果结束

  288. .否则
  289. WebIco.图片 = #ico
  290. .如果结束

  291. .否则
  292. WebIco.图片 = #ico
  293. .如果结束

  294. .否则
  295. WebIco.图片 = #ico
  296. .如果结束



  297. .子程序 ReadXMLHTTPFile, 字节集, , XMLHTTP
  298. .参数 读取方式, 文本型, 可空, 如果为空则默认使用GET方式否则由使用则自定类型分别为POST_GET
  299. .参数 地址, 文本型, 可空, 欲被读取的Http网络地址
  300. .局部变量 对象, 对象
  301. .局部变量 数据, 字节集

  302. .如果 (对象.创建 (“Microsoft.XMLHTTP”, ))
  303. .如果 (是否为空 (读取方式) = 真)
  304. 对象.方法 (“Open”, “GET”, 地址, 假)
  305. .否则
  306. 对象.方法 (“Open”, 读取方式, 地址, 假)
  307. .如果结束
  308. 对象.方法 (“Send”, )
  309. 数据 = 对象.读属性 (“ResponseBody”, ).取字节集 ()
  310. 返回 (数据)
  311. .否则
  312. 返回 (到字节集 (“”))
  313. .如果结束


  314. .子程序 CE

  315. ProgressBar.位置 = ProgressBar.最小位置

  316. .子程序 _SupremeBrowser_跳转完毕

  317. CE ()
  318. 强制结束线程 (Thwnd)
  319. 启动线程 (&Trher, , Thwnd)

  320. .子程序 _STab_子夹头被右击
  321. .参数 子夹索引, 整数型

  322. 调用子程序 (&OpenMenu, , , )


  323. .子程序 _现行标签_被选择

  324. _STab_被双击 (0, 0, 0)

  325. .子程序 _所以标签_被选择
  326. .局部变量 ii, 整数型

  327. ii = GetArrayCountBrowser (IE)
  328. .变量循环首 (1, ii, 1, )
  329. ii = ii - 1
  330. .如果 (ii ≠ 1 且 ii > 1)
  331. CloseTab (ii)
  332. .否则
  333. Navigate (ii, #pir)
  334. .如果结束

  335. .变量循环尾 ()


  336. .子程序 _主页A_被选择

  337. NewWindow (ToString (GetRegedit (3, #por + “\Start Page”)))

  338. .子程序 _搜索页A_被选择

  339. NewWindow (ToString (GetRegedit (3, #por + “\Search Page”))) ' Start Page

  340. .子程序 _空白页A_被选择

  341. NewWindow (#pir)



  342. .子程序 _主页_被选择
  343. .局部变量 index, 整数型

  344. .如果真 (GetArrayCountBrowser (IE) > 0)
  345. index = STab.现行子夹
  346. BrowserExecute (index, #到首页)
  347. .如果真结束


  348. .子程序 _搜索页_被选择
  349. .局部变量 index, 整数型

  350. .如果真 (GetArrayCountBrowser (IE) > 0)
  351. index = STab.现行子夹
  352. BrowserExecute (index, #到搜索页)
  353. .如果真结束


  354. .子程序 _空白页_被选择
  355. .局部变量 index, 整数型

  356. .如果真 (GetArrayCountBrowser (IE) > 0)
  357. index = STab.现行子夹
  358. Navigate (index, #pir)
  359. .如果真结束


  360. .子程序 _按钮_刷新_被单击
  361. .局部变量 index, 整数型

  362. .如果真 (GetArrayCountBrowser (IE) > 0)
  363. index = STab.现行子夹
  364. BrowserExecute (index, #刷新)
  365. .如果真结束



  366. .子程序 _按钮_后退_被单击
  367. .局部变量 index, 整数型

  368. .如果真 (GetArrayCountBrowser (IE) > 0)
  369. index = STab.现行子夹
  370. BrowserExecute (index, #无法载入的常量) ' <!!!>
  371. .如果真结束


  372. .子程序 _按钮_前进_被单击
  373. .局部变量 index, 整数型

  374. .如果真 (GetArrayCountBrowser (IE) > 0)
  375. index = STab.现行子夹
  376. BrowserExecute (index, #无法载入的常量) ' <!!!>
  377. .如果真结束


  378. .子程序 _按钮_Stop_被单击
  379. .局部变量 index, 整数型

  380. .如果真 (GetArrayCountBrowser (IE) > 0)
  381. index = STab.现行子夹
  382. BrowserExecute (index, #停止)
  383. .如果真结束


  384. .子程序 _收藏夹_图形按钮_被单击

  385. 运行 (“explorer ” + 取特定目录 (2), 假, )

复制代码
  1. .版本 2

  2. .DLL命令 ShellExecuteA, 整数型, "shell32.dll", , , 查找与指定文件关联在一起的程序的文件名 非零表示成功,零表示失败。会设置GetLastError
  3. .参数 hwnd, 整数型, , 指定一个窗口的句柄,有时候,windows程序有必要在创建自己的主窗口前显示一个消息框
  4. .参数 lpOperation, 文本型, , 指定字串“open”来打开lpFlie文档,或指定“Print”来打印它
  5. .参数 lpFile, 文本型, , 想用关联程序打印或打开一个程序名或文件名
  6. .参数 lpParameters, 文本型, , 如lpszFlie是可执行文件,则这个字串包含传递给执行程序的参数
  7. .参数 lpDirectory, 文本型, , 想使用的完整路径
  8. .参数 nShowCmd, 整数型, , 定义了如何显示启动程序的常数值。参考ShowWindow函数的nCmdShow参数;

  9. .DLL命令 FindWindowA, 整数型, "user32.dll", , , 查询指定窗口在于系统中的句柄
  10. .参数 C1, 文本型
  11. .参数 C2, 文本型
复制代码
LLQ.zip (772.11 KB, 下载次数: 145)

点评

声明:: 不解释JAVA脚本 由于超文本浏览框问题   四川省成都市  发表于 2013-3-12 17:39
不想多说:: 你可以尝试你现在建立一个新标签让他载入网页你将其标签点成其他的.你看会不会出现.当前标签的标题=浏览器标题 而索引却不对   四川省成都市  发表于 2013-3-12 17:32

结帖率:90% (113/125)
发表于 2016-12-9 21:52:32 | 显示全部楼层   河南省郑州市
11111111111111111
回复 支持 反对

使用道具 举报

结帖率:42% (11/26)
发表于 2015-5-21 02:26:51 | 显示全部楼层   广东省江门市
看看是神马好东西?
回复 支持 反对

使用道具 举报

结帖率:59% (10/17)

签到天数: 2 天

发表于 2014-11-9 06:46:33 | 显示全部楼层   四川省南充市
这个东西可用吗
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
发表于 2014-8-4 16:51:03 | 显示全部楼层   江西省宜春市
很高深的样子
回复 支持 反对

使用道具 举报

发表于 2014-5-19 21:22:22 | 显示全部楼层   山东省济南市
飘过fffffff
回复 支持 反对

使用道具 举报

结帖率:75% (3/4)
发表于 2013-11-9 08:58:42 | 显示全部楼层   浙江省台州市

你下载了看看吧
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2013-11-8 16:34:12 | 显示全部楼层   浙江省宁波市
   嗷呜~  早
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2013-8-18 23:51:52 | 显示全部楼层   重庆市重庆市
不错不错 顶你
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2013-8-3 11:22:18 | 显示全部楼层   河北省石家庄市
支持一下,我也正在研究这个,下载下来研究一下。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表