当前位置: 首页 > news >正文

做网站字体用什么格式株洲公司网站建设

做网站字体用什么格式,株洲公司网站建设,计算机作业网页设计代码,帝国cms如何做网站;win32汇编环境,网络编程入门之十四 ;在这一教程里&#xff0c;学习一下&#xff0c;如何得到网页的标题 ;这里需要理解一下html语言&#xff0c;<title> </title>标签对里面的内容即为网页的标题 ;其原理是把返回的字符串&#xff0c;按字节进行检查&#xff0c;发…

;win32汇编环境,网络编程入门之十四
;在这一教程里,学习一下,如何得到网页的标题
;这里需要理解一下html语言,<title> </title>标签对里面的内容即为网页的标题
;其原理是把返回的字符串,按字节进行检查,发现上面的标签对时,把里面的内容提取出来.
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.386 
.model flat,stdcall 
option casemap:none 

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include    windows.inc 
include    user32.inc 
include    kernel32.inc 
include    wininet.inc    ;需要添加的wininet头文件

includelib user32.lib 
includelib kernel32.lib 
includelib wininet.lib    ;需要添加的wininet库文件

; 自定义函数声明
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
DlgProc proto :DWORD,:DWORD,:DWORD,:DWORD   ;对话框窗口函数

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Equ 等值定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
MAINDIALOG    equ 1
ICO_MAIN    equ 1000    ;图标

ID_BUTTON01    equ 41
ID_EDIT01    equ 11
ID_EDIT02    equ 12
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.data 

szMsg          db "提示",0
szErr          db "错误",0

szEnter        db 13,10,0                              ;回车换行符

szAgent        db "Microsoft Internet Explorer",0      ;骗网站说自已是IE浏览器
szHostName     db "www.kepai2023.cn",0                 ;要访问的主机域名
szUrlPath      db "/A/A01.html",0                      ;要访问的页面
szVerb         db "GET",0                              ;GET方法访问
szAccept       db "Accept: text/html",0                ;只接受text或html文件返回
               
.data? 
hInstance HINSTANCE          ? 
hEdithwnd01     HWND         ?
hEdithwnd02     HWND         ?

hInternet       dd           ?
hHttpSession    dd           ?
hHttpRequest    dd           ?

.const 

  
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code 
start: 
         invoke GetModuleHandle, NULL 
         mov    hInstance,eax 
         invoke DialogBoxParam, hInstance, MAINDIALOG,NULL, addr DlgProc, NULL 
         invoke ExitProcess,eax 
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;处理接收到的字符串,网页标题提取出来
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_HandleData    proc    _lpData,_dwSize

                LOCAL   hSign    ;用来当记号,当发现标题标签对出现时,即<title> </title>时, <ti 字符时定为1,当 </t 字符时定为2,没有情况时为0
                LOCAL   szBuffer[256]:byte
                LOCAL   szSaveBuffer[256]:byte
                LOCAL   @stCR:CHARRANGE
                
                mov    esi,_lpData
        mov hSign,0

        invoke    RtlZeroMemory,addr szBuffer,sizeof szBuffer
        invoke    RtlZeroMemory,addr szSaveBuffer,sizeof szSaveBuffer
        ;invoke  SendMessage,hEdithwnd02,WM_SETTEXT,0,0               ;清空编辑框
        mov ebx,0
        mov edx,0
        ;循环检查字符串,当发现有3个连续的字符,即 <ti 则记下字符在缓冲的开始位置,当发现 </t 时则记下字符在缓冲的结束位置,把里面的内容复制下来就是网页的标题
        .while TRUE
            .break .if ebx == _dwSize
            .if byte ptr [esi+ebx] == "<" && byte ptr [esi+ebx+1] == "t" && byte ptr [esi+ebx+2] == "i"
                  mov hSign,1    
            .endif
            .if byte ptr [esi+ebx] == "<" && byte ptr [esi+ebx+1] == "/" && byte ptr [esi+ebx+2] == "t"
                  mov hSign,2
                  mov byte ptr [szBuffer+edx-7],0     ;-7 的原因是后面复制的时候,把传入进来的字符串的后7个字符复制进来了,这个时候结束复制,则需要把多余的7个字节内容去掉
            .endif
            .if hSign == 1
                mov al,byte ptr [esi+ebx+7]       ;+7 的原因是在 <title> 这7个字符之后开始复制内容                                  
                mov byte ptr [szBuffer+edx],al
                inc edx
            .endif    
            .if hSign == 2
                ;invoke GetWindowTextLength,hEdithwnd01            
                            ;mov @stCR.cpMin,eax
                    ;mov @stCR.cpMax,eax
                invoke MultiByteToWideChar,65001,0,addr szBuffer,256,addr szSaveBuffer,256       ;把uft-8编码的网页字符串转换为UNICODE编码输出
                ;invoke SendMessageW,hEdithwnd02,EM_EXSETSEL,0,addr @stCR
                            ;invoke SendMessageW,hEdithwnd02,EM_REPLACESEL,FALSE,addr szSaveBuffer

                            ;invoke SendMessage,hEdithwnd02,EM_REPLACESEL,FALSE,addr szEnter                 ;加上回车换行符
                            invoke SendMessageW,hEdithwnd02,WM_SETTEXT,0,addr szSaveBuffer
                            ;invoke MessageBox,NULL,addr szBuffer,addr szMsg,MB_OK
                mov hSign,0
                mov edx,0    
            .endif
            inc ebx
        .endw
        ret

_HandleData    endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_WorkThread    proc    _lParam
        LOCAL  @dwBytesReaded
        LOCAL  @szBuffer[256]:byte
        LOCAL  @szRecBuffer[1024]:byte
        LOCAL  @szSaveBuffer[1024]:byte
        LOCAL  @szShowEdit02[256]:byte
        LOCAL  @stCR:CHARRANGE
        
        LOCAL  @szContentLength[128]:byte
        LOCAL  @szStatusCode[128]:byte
        LOCAL  @Totallength
        
        invoke InternetOpen,addr szAgent,INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0                                  ;初始化应用程序的 WinINet 函数的使用
        mov hInternet,eax

        invoke InternetConnect,hInternet,addr szHostName,80,NULL,NULL,INTERNET_SERVICE_HTTP,0,0                 ;为给定站点打开文件传输协议(FTP)或 HTTP 会话,80是http的端口
        mov hHttpSession,eax
        .if eax == NULL
               invoke MessageBox,NULL,addr szErr,addr szMsg,MB_OK            
        .endif

        invoke HttpOpenRequest,hHttpSession,addr szVerb,addr szUrlPath,NULL,addr szAccept,0,0,0                  ;创建 HTTP 请求句柄
        mov hHttpRequest,eax
        
        invoke HttpSendRequest,hHttpRequest,NULL,0,NULL,0                                                        ;将指定的请求发送到 HTTP 服务器,可以附加数据,后面再说,先实现基本效果先
        ;mov @Totallength,128                                                                                     ;注意这里要先赋值为缓冲区的字节大小,不能使用sizeof前面缓冲区的大小,因为它还要保存其它的值
        ;invoke HttpQueryInfo,hHttpRequest,HTTP_QUERY_STATUS_CODE,addr @szContentLength,addr @Totallength,NULL    ;HttpQueryInfo 函数需要在HttpSendRequest函数调用成功之后使用,HTTP_QUERY_STATUS_CODE值为测试HTTP连接的返回状态码

        ;invoke wsprintf,addr @szShowEdit02,addr szFrm,addr @szContentLength
        ;invoke SendMessage,hEdithwnd02,WM_SETTEXT,0,addr @szShowEdit02
        
    invoke SendMessage,hEdithwnd01,WM_SETTEXT,0,0
    .while TRUE  ;通过循环反复读取,直到读到0字节为止
            invoke RtlZeroMemory,addr @szRecBuffer,sizeof @szRecBuffer
            invoke RtlZeroMemory,addr @szSaveBuffer,sizeof @szSaveBuffer
            mov @dwBytesReaded,0
            invoke InternetReadFile,hHttpRequest,addr @szRecBuffer,1024,addr @dwBytesReaded                  ;从打开的句柄读取数据,
        .break .if @dwBytesReaded == 0
        invoke _HandleData,addr @szRecBuffer,1024                                                        ;调用得到网页标题内容的函数
        invoke MultiByteToWideChar,65001,0,addr @szRecBuffer,1024,addr @szSaveBuffer,1024                ;将UTF8编码数据转为UNICODE编码
        invoke GetWindowTextLength,hEdithwnd01                                                           ;从后面添加内容,防止覆盖上去
                mov @stCR.cpMin,eax
        mov @stCR.cpMax,eax
        invoke SendMessageW,hEdithwnd01,EM_EXSETSEL,0,addr @stCR
                invoke SendMessageW,hEdithwnd01,EM_REPLACESEL,FALSE,addr @szSaveBuffer            
    .endw

    ret

_WorkThread endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
DlgProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM 
        LOCAL    @stWsa:WSADATA        
        
        .if     uMsg == WM_INITDIALOG 
                invoke    LoadIcon,hInstance,ICO_MAIN           
            invoke    SendMessage,hWnd,WM_SETICON,ICON_BIG,eax
                
                invoke GetDlgItem,hWnd,ID_EDIT01
                mov hEdithwnd01,eax
                invoke GetDlgItem,hWnd,ID_EDIT02
                mov hEdithwnd02,eax
                
        .elseif    uMsg ==    WM_COMMAND
            mov    ebx,wParam
                .if    bx ==    ID_BUTTON01
                        invoke    CreateThread,NULL,0,offset _WorkThread,0,NULL,0          ;启动连接线程,用线程的原因是不让网络等待卡住主进程                         
            .endif        
        .elseif uMsg == WM_CLOSE   
                invoke InternetCloseHandle,hHttpRequest                                          ;反向清除各类HINTERNET 句柄,即先生成的后清除,后生成的先清除
                invoke InternetCloseHandle,hHttpSession                                                         
                invoke InternetCloseHandle,hInternet
        invoke EndDialog,hWnd,NULL
        .else 
                mov eax,FALSE 
                ret 
        .endif 
                mov eax,TRUE 
        ret 
DlgProc endp 

end start 

;下面为rc文件内容
#include "resource.h"                   //提示缺少该文件,可以在资源里下载
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#define       MAINDIALOG      1
#define       ICO_MAIN        1000    //图标
#define    ID_BUTTON01     41

#define    ID_EDIT01       11         //编辑框标识符
#define    ID_EDIT02       12
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ICO_MAIN    ICON        "Main.ico"
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//定义对话框
MAINDIALOG DIALOG 10, 10, 180, 250 
STYLE  DS_CENTER | WS_CAPTION | WS_MINIMIZEBOX | 
WS_SYSMENU | WS_VISIBLE | WS_OVERLAPPED | DS_MODALFRAME | DS_3DLOOK 
CAPTION "对话框程序模版" 
FONT 11, "方正姚体"
BEGIN 
     PUSHBUTTON      "访问网页", ID_BUTTON01,  120,20,50,12
     CONTROL "显示搜索结果",ID_EDIT01,"Edit",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP|ES_MULTILINE|ES_WANTRETURN|ES_AUTOVSCROLL|WS_VSCROLL,10, 50, 160, 190,WS_EX_CLIENTEDGE  //设置成多行编辑框,按回车时加回车符
     CONTROL "显示网页标题",ID_EDIT02,"Edit",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP|ES_MULTILINE|ES_WANTRETURN|ES_AUTOVSCROLL|WS_VSCROLL,10, 10, 100, 30,WS_EX_CLIENTEDGE
END 


 

http://www.dtcms.com/a/425805.html

相关文章:

  • 泰州网站建设方案开发网络设计原则是什么
  • 网站建设公告网站切图大图
  • 免费视频网站怎么赚钱大型网站 div
  • 镇江做网站要多少钱网站打开乱码
  • 建设教育网站济南地区做公司网站的公司
  • 哪些网站是响应式的在电脑制作手机网站用什么软件
  • 营销型网站建设电子书2345浏览器
  • 给帅哥做奴视频网站google海外推广
  • 工程施工行业在哪个网站容易找事做欧洲大带宽服务器
  • 河南城乡和住房建设厅网站网站产品链接怎么做
  • 孝感市网站建设公司做公司网站详细步骤
  • 天津网站备案时间软件服务外包
  • 网页就是一个网站的首页建材网站的模板
  • 学校网站建设调查报告wordpress图片收费
  • 做网站 就手机如何注册wordpress
  • 网页制作网站知识专业建设计划
  • 台州市建设工程质量检测中心网站网站建设培训课程
  • 做网站好平台化合肥seo网站建设
  • 贵阳做网站多少钱南浔做网站
  • 高端品牌网站建设服务做淘宝类网站的步骤
  • 做ppt素材的网站有哪些做网站花了2万多
  • 苏州新区网站建设龙岩做网站开发哪家厉害
  • 网站合作流程辽源网站建设
  • 百度只收录栏目不收录网站文章黑龙江住房和城乡建设厅网站
  • 教育企业网站源码高品质网站开发
  • 做网站数据分析架构建设一个网站首先需要
  • 西宁市建设网站公司电话优化排名推广技术网站
  • 哈尔滨市住房和城乡建设局网站松原做网站的公司
  • 建设银行信用卡网站下载wordpress替换dede
  • 医院网站建设的意义公司文化墙图片大全