精易论坛

标题: 多页浏览器 娱乐版 [打印本页]

作者: stillness    时间: 2013-3-12 17:23
标题: 多页浏览器 娱乐版


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)


作者: 329551092    时间: 2013-3-12 17:35
留个沙发看看了。。
作者: 杨溢凡    时间: 2013-3-12 17:46
顶下哦~~嘿嘿

作者: 柳莺    时间: 2013-3-12 17:52
好复杂啊  正常人不会去用把
作者: NeverLoveAgain    时间: 2013-3-12 17:58
这是Ex版的,元版本是SUI吧
作者: stillness    时间: 2013-3-12 23:04
标题: RE: 多页浏览器 娱乐版
柳莺 发表于 2013-3-12 17:52
好复杂啊  正常人不会去用把

慢慢看,学习
其实我觉得学的好累
4年后不在学软件
准备卖电脑,做硬件
语言都是浮云——!
作者: stillness    时间: 2013-3-12 23:06
标题: RE: 多页浏览器 娱乐版
qq1115219963 发表于 2013-3-12 17:58
这是Ex版的,元版本是SUI吧

没有基于sui的说法

gdi图形插件
基于object
作者: 宇智波·佐助    时间: 2013-3-20 15:28
好文本            
作者: lichen    时间: 2013-3-26 19:00
提示: 作者被禁止或删除 内容自动屏蔽
作者: 530512372    时间: 2013-3-26 21:51
帖太长了吧?1米多长,我翻了半天。
作者: 袁正华    时间: 2013-3-26 23:12
感觉写的挺 不错的,可惜不是自己想要的
作者: xgrjw    时间: 2013-3-27 09:31
看看。。。飘过。
作者: yiyuyan2020    时间: 2013-4-3 13:33
有源码吗?不要代码内容
作者: ppy    时间: 2013-4-3 14:31
很给力啊
作者: 54212    时间: 2013-4-23 12:14
怎么太给力; 啊
作者: 我姓易    时间: 2013-5-18 21:51
确实专业程序员
作者: 茄子君·    时间: 2013-5-18 21:58
提示: 作者被禁止或删除 内容自动屏蔽
作者: qq979300697    时间: 2013-5-18 22:13
下载学习了
作者: XCMV    时间: 2013-6-6 11:41
不解释JAVA脚本由于超文本浏览框问题

本文章来自:精易论坛(http://125.confly.eu.org/forum.php?mod=viewthread&tid=13638244)请保留此链接, 感谢!
作者: XCMV    时间: 2013-6-6 11:42
不解释JAVA脚本由于超文本浏览框问题


本文章来自:精易论坛(http://125.confly.eu.org/forum.php?mod=viewthread&tid=13638244)请保留此链接, 感谢!
作者: 小疯疯`    时间: 2013-6-6 12:04
飘过
作者: 王小岩    时间: 2013-7-8 18:44
提示: 作者被禁止或删除 内容自动屏蔽
作者: 楚离    时间: 2013-7-8 19:00
是源码?看看
作者: 晓之青龙    时间: 2013-7-22 13:52
提示: 作者被禁止或删除 内容自动屏蔽
作者: 宅宅宅    时间: 2013-8-2 21:51
下载学习了

作者: bianxingyu    时间: 2013-8-3 11:22
支持一下,我也正在研究这个,下载下来研究一下。
作者: e时代无名    时间: 2013-8-18 23:51
不错不错 顶你
作者: 非常完美    时间: 2013-11-8 16:34
   嗷呜~  早
作者: 爱语言的鱼    时间: 2013-11-9 08:58
楚离 发表于 2013-7-8 19:00
是源码?看看

你下载了看看吧
作者: 986488329    时间: 2014-5-19 21:22
飘过fffffff
作者: 新手要精易    时间: 2014-8-4 16:51
很高深的样子
作者: 玩味流星    时间: 2014-11-9 06:46
这个东西可用吗
作者: MzwEn    时间: 2015-5-21 02:26
看看是神马好东西?
作者: xsj2009    时间: 2016-12-9 21:52
11111111111111111




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4