VFP ·R¥ÎªÌªÀ°Ï ­º­¶ VFP ·R¥ÎªÌªÀ°Ï
¥»°Q½×°Ï¬° Visual Foxpro ·R¥ÎªÌ¸gÅç¥æ¬yªº¦a¤è, ½Ð¦h¦h§Q¥Î"·j´M"ªº¥\¯à, ¥ý¬d¬Ý¬Ý¦³µL«e¨Ò¥i´`, ¦pªGÁÙ¦³¤£À´ªº¦Aµo°Ý. ³¡¥÷¥DÃD¦³ªþ¥[ÀÉ®×, ¶·¥ýµù¥U¦¨¬°ªÀ°Ï©~¥Á¤~¥i¥H¤U¸ü.
 
 ±`¨£°ÝÃD±`¨£°ÝÃD   ·j´M·j´M   ·|­û¦Cªí·|­û¦Cªí   ·|­û¸s²Õ·|­û¸s²Õ   ·|­ûµù¥U·|­ûµù¥U 
 ­Ó¤H¸ê®Æ­Ó¤H¸ê®Æ   µn¤JÀˬd±zªº¨p¤H°T®§µn¤JÀˬd±zªº¨p¤H°T®§   µn¤Jµn¤J

¥i"Äò¶ÇÀÉ®×"ªº¤U¸üºÞ²zµ{¦¡ (Âà¶K)

 
µoªí·s¥DÃD   ¦^ÂÐ¥DÃD    VFP ·R¥ÎªÌªÀ°Ï ­º­¶ -> VFP °Q½×°Ï
¤W¤@½g¥DÃD :: ¤U¤@½g¥DÃD  
µoªí¤H ¤º®e
garfield
Site Admin


µù¥U®É¶¡: 2003-01-30
¤å³¹: 2157


²Ä 1 ¼Ó

µoªíµoªí©ó: ¬P´Á¤T ¤»¤ë 18, 2003 4:58 pm    ¤å³¹¥DÃD: ¥i"Äò¶ÇÀÉ®×"ªº¤U¸üºÞ²zµ{¦¡ (Âà¶K) ¤Þ¨¥¦^ÂÐ

¤å¥ó¥X³B: http://www.myf1.net/bbs/dispbbs.asp?boardID=1&ID=212957







¡§ºô¸ô¿ÂÃÆ¡¨ªº®Ö¤ß§Þ³N´N¬O¡§¤¤Â_ÂIÄò¶Ç¡¨¡A¡§¦h½uµ{¡¨¦b vfp ¤¤¹ê²{°_
¨Ó¤ñ¸û³Â·Ð(¥»¤HÁÙ¨S¨Ó±o¤Î²`¤J¬ã¨s)¡A¼È¤£°Q½×¡C¦A¥[¤§¡§ºô¸ô¿ÂÃÆ¡¨¬O¤@
­ÓÀu¨qªº§K¶O³nÅé¡A§Ú¥i¤£·Q¯uªº¥Î vfp ¼g¤@­Ó¡§ºô¸ô¤j¶H¡¨»P¤§¸û¶q¡A¥u¬O
·Q§â¹ê²{¤èªk¤¶²Ðµ¹¤j®a¡A¶È¦¹¦Ó¤w¡C¦n¤F¡A¨¥Âk¥¿¶Ç§a ......
­º¥ý­n»¡ªº´N¬O¼·¸¹³s±µ¡C³o¥i¿×¬O¦Ñ¥Í±`½Í¤F¡A¼·¸¹ªº¤èªk«Ü¦h¡A³q¹L
´ú¸Õ§Ú»{爲¤U­±¨â­Ó­È±o¤@¥Î¡G
① rasapi32.dll ªº rasdial ¨ç¼Æ
¦pªG§A»Ý­n«ü©w¹q¸Ü¸¹½X¡B¥Î¤á¦W¤Î¥Î¤á¤f¥O¶i¦æ¯S©w¼·¸¹ªº¸Ü´N»Ý­n¨Ï¥Î
¦¹¨ç¼Æ¡A³o¦h¥Î©ó¹ï¤º³¡¦øªA¾¹¼·¸¹¡C¨ç¼Æ­ì«¬¦p¤U¡G
declare integer rasdial in rasapi32.dll ;
string lprasdialextensions,; && ¦bwin9x¤UµL¥Î null
string lpszphonebook,; && ¹q¸Üï ¦bwin9x¤UµL¥Î null
string @lprasdialparams,; && ¼·¸¹°Ñ¼Æ«ü¼Ð
integer dwnotifiertype,; && ®ø®§³qª¾¤è¦¡ 0
integer lpvnotifier,; && ®ø®§³B²z¨Æ¥ó 0
integer @lphrasconn && ªð¦^¦¨¥\³s±µªº³s±µ±±¨î½X ½Õ¥Î
«e»Ý¥ý¸mnull

½Õ¥Î¤èªk¡G
m.lprasdialparams = ;
dectoascii(1052,4)+; && dwsize dectoascii(1052,4) ªí¥Ü±N1052Âà´«¦¨§C¦ì¤¸¦b«e¡A°ª¦ì¦b«áªº4­Óascii¦r¤¸
replicate(chr(0),256+1)+; && entryname(256) - ¼·¸¹³s±µ¦W¦r©Î¸m爲ªÅ
stuffc(replicate(chr(0),128+1),1,len(m.phonenumber),m.phonenumber)+; && phonenumber(128) ¹q¸Ü¸¹½X
replicate(chr(0),128+1)+; && callbacknumber (128) ¦^¥s¸¹½X¡A¸mªÅ
stuffc(replicate(chr(0),256+1),1,len(m.username),m.username)+; && username(256) ¥Î¤á¦W
stuffc(replicate(chr(0),256+1),1,len(m.password),m.password)+; && password(256) ¤f¥O
replicate(chr(0),15+1+3) && domain (15) ¥\¯àÅܼƦWºÙ(¦Û«Ø¦øªA¾¹¥Î)
m.lphrasconn = 0 && »·ºÝ¦s¨ú³s±µ±±¨î½X¡Aªì­È爲0
rasdial(null,null,@m.lprasdialparams,0,0,@m.lphrasconn)
­È±o¤@´£ªº¬O¡§¼·¸¹³s±µ¦W¦r¡¨¡A­n麽·Ç½T³]¸m¡A­n麽爲ªÅ¡C¦³½ìªºªº¬O
¦pªG¡§¼·¸¹³s±µ¦W¦r¡¨³]¸m爲ªÅ®É¡A¼·³q«á¦b¥ô°ÈÄ椤¤£·|Åã¥Ü³s±µ¹Ï¥Ü(§Ú
¥u´ú¸Õ¤Fxp¡A¨ä¥L¨t²Î¬O§_¦p¦¹¤£±o¦Óª¾)¡C
② wininet.dll ªº internetdial ¨ç¼Æ
¦pªG§A¹ï¼·¸¹¨S¦³¯S®í«ü©wªº¸Ü¡A«Øij¨Ï¥Î¦¹¨ç¼Æ¼·¸¹¡C¨ç¼Æ­ì«¬¦p¤U¡G
declare integer internetdial in wininet.dll;
integer hwndparent,; && ¤÷µ¡¤f(ªí³æ)±±¨î½X©Î爲ªÅ
string lpszconnectoid,; && ©Ò¨Ï¥Îªº¼·¸¹³s±µ¦W¦r(¥i¥H爲ªÅ)
integer dwflags,; && ³s±µ¼Ð»x
integer @lpdwconnection,; && ¦¨¥\³s±µ«áªº³s±µ¸¹(Â_¶}³s±µ®É»Ý­n¦¹¸¹)
integer dwreserved && ¨t²Î«O¯d¡A¥²¶·爲¹s
*-- dwflags - ¥i¨ú¦p¤U¦U­È
#define internet_autodial_force_online 0x0001 && ¤â°Ê¼·¸¹,¤£¦b½u®É´£¥ÜÂ_¶}
#define internet_autodial_force_unattended 0x0002 && ¦Û°Ê¼·¸¹
#define internet_dial_unattended 0x8000 && ¦Û°Ê¼·¸¹
#define internet_dial_force_prompt 0x2000 && ¤â°Ê¼·¸¹
#define internet_dial_show_offline 0x4000 && ¤â°Ê¼·¸¹(±N¡§¨ú®ø¡¨«ö¶s´À´«爲¡§²æ¾÷¤u§@¡¨«ö¶s)
½Õ¥Î¤èªk¡G
m.lpdwconnection = 0
internetdial(0,null,internet_autodial_force_online,@m.lpdwconnection,0)
ÁÙ¦³¤@­Ó°ÝÃD´N¬O¦p¦óÂ_¶}·í«e¼·¸¹³s±µ¡C¦pªG·í«e¼·¸¹³s±µ¬O§Aªºµ{¦¡
«Ø¥ßªº¡AÂ_¶}¤ñ¸û®e©ö¡A¦]爲§Aª¾¹D³s±µ±±¨î½X¡C­Y¹B¦æ§Aªºµ{¦¡«e¼·¸¹³s±µ
¤w¸g±µ³q¡A­nÂ_¶}¸Ó«ç麽¿ì©O¡H¨ä¹ê¤]«Ü²³æ¡A¥Î¤U­±ªº¤èªk¥i¥HÂ_¶}©Ò¦³ªº
¼·¸¹³s±µ¡AµL½×¨ä¬O¥H¦ó¤è¦¡¤Î¥Ñ½Ö³Ð«Øªº¡I
­º¥ý¡A§A­n¨ú±o©Ò¦³¬¡°Êªº ras ³s±µ¡A³o­n¥Î rasapi32.dll ªº rasenumconnections ¨ç¼Æ
declare integer rasenumconnections in rasapi32.dll ;
string @ lprasconn,; && ½w½Ä°Ï«ü¼Ð¡C¥¦¬O¤@­Ó rasconn µ²ºcªº°}¦C
integer @ lpcb,; && ½w½Ä°Ï¤j¤p
integer @ lpcconnections && ¹ê»Ú³s±µ¼Æ
½Õ¥Î¤èªk¡G
m.lprasconn = ;
chr(0x9c)+chr(0x01)+chr(0)+chr(0)+; && dwsize - rasconn µ²ºcªø«×: 412¦ì¤¸²Õ
space(4)+; && hrasconn - ras ³s±µ±±¨î½X
space(256+1)+; && szentryname
space(16+1)+; && szdevicetype
space(128+1+1) && szdevicename
m.lpcb = 256 * 412 && °²³]¦³256­Ó¬¡°Êªº ras ³s±µ¡C¨ä¹ê¤£·|¦³³o麽¦h¡A¥u¬O爲¤F«OÀI¡C
m.lprasconn = replicate(m.lprasconn,256) && ¤À°t°O¾ÐÅé
m.lpcconnections = 0 && ªì©l¤Æ³s±µÁ`¼Æ
rasenumconnections(@m.lprasconn,@m.lpcb,@m.lpcconnections)
µM«á®Ú¾ÚÅÜ¼Æ m.lpcconnections (¹ê»Ú³s±µ¼Æ) ­È§PÂ_¬O§_¦³¤w³s³qªº¼·¸¹
³s±µ¡A½T©w«á¥Î rasapi32.dll ªº rashangup ¨ç¼Æ¨ÓÂ_¶}«ü©wªº¼·¸¹³s±µ¡C
¨Ò¦p¡A²Ä¤@­Ó³s±µªº±±¨î½X爲 substr(m.lprasconn,5,4)¡A²Ä¤G­Ó爲substr(m.lprasconn,412+5,4)...µ¥µ¥¡A§A¥²¶·±N¨äÂà´«爲¤Q¶i¦ì¼Æ¦r(Âà´«¤èªk½Ð¬Ý
¥Ü¨Ò)«á½áÅÜ¼Æ m.hrasconn ¡C
declare integer rashangup in rasapi32.dll ;
integer hrasconn && ­n²×¤îªº ras ³s±µ±±¨î½X
*-- ¶H¤U­±³o¼ËÂ_¶}«ü©wªº³s±µ(³q±`¬O²Ä¤@­Ó³s±µ)
rashangup(m.hrasconn)
¦n¤F¡A¦³Ãö¼·¸¹³s±µªº°ÝÃD¤w¸g¸Ñ¨M¤F¡C¤U­±¸Ó¤Á¤J¥¿ÃD°Õ - ¦p¦ó¹ê²{¤¤Â_
ÂIÄò¶Ç¡I³o³¡¤À¦³¨ÇÃø²z¸Ñ¡A¦ý¹ê²{°_¨Ó¤]«Ü®e©ö....
­º¥ý¡A§A­n©M internet «Ø¥ß³s±µ¡A³o­n¥Î¨ì wininet.dll ªº¨â­Ó¨ç¼Æ internetopen ©M internetconnect¡C¦pªG­n¦Û°Ê³B²z¡§²æ¾÷¤u§@¡¨ª¬ºA¡AÁÙ
»Ý­n¥Î¨ì internetsetoption ¨ç¼Æ¡C
① wininet.dll ªº internetopen ¨ç¼Æ
¸Ó¨ç¼Æ¬O¨ú±o»P internet ªº·|¸Ü±±¨î½X¡C¨ç¼Æ­ì«¬¦p¤U¡G
declare integer internetopen in wininet.dll;
string lpszagent,; && ´y­z
integer dwaccesstype,; && ³X°ÝÃþ«¬
string lpszproxyname,; && ¥N²z¦øªA¾¹¦W¦r
string lpszproxybypass,; && ¥D¾÷¦W©Î ip ¦ì§}
integer dwflags && ¼Ð»x¦r
¨ä¤¤ lpszagent ¥i¥H爲¥ô·N¦r¦ê¡A¬Æ¦Ü¬Onull¡Cdwaccesstype=0 ªí¥Ü±q
µù¥Uªí¨ú±o³X°ÝÃþ«¬
½Õ¥Î¤èªk¡G
m.hinternet = internetopen("¤U¸ü´ú¸Õ",0,null,0,0)
±o¨ì internet ·|¸Ü±±¨î½X«á´N¥i¥H³s±µ¨ì internet ¦øªA¾¹¤F¡C¤U­±¥u°Q½×
¦p¦ó³s±µ¨ì http¡A¦]爲¥¦³Ì±`¥Î¡C
② wininet.dll ªº internetconnect ¨ç¼Æ
¨ú±o http ªº³s±µ±±¨î½X­n¥Î¨ì internetconnect ¨ç¼Æ¡A­ì«¬¦p¤U¡G
declare integer internetconnect in wininet.dll;
integer hinternet,; && internet ·|¸Ü±±¨î½X
string lpszservername,; && ¦øªA¾¹¦W¦p www.microsoft.com (©Î¦øªA¾¹ip¦p:181.231.127.233)
integer nserverport,; && ¦øªA¾¹°ð 0-¨Ï¥Î dwservice «ü©wªº¦øªA¾¹°ð
string lpszusername,; && ¥Î¤á¦W
string lpszpassword,; && ¤f¥O
integer dwservice,; && ¦øªA¾¹Ãþ«¬ 1-ftp ¦øªA¾¹ 2-gopher ¦øªA¾¹ 3-http ¦øªA¾¹
integer dwflags,; && ¯S®í¼Ð»x
integer dwcontext
½Õ¥Î¤èªk¡G
m.hconnect = internetconnect(m.hinternet,' www.microsoft.com',0,null,null,3,0,0)

③ wininet.dll ªº internetsetoption ¨ç¼Æ
¦pªG¨t²Î¥¿³B©ó¡§²æ¾÷¤u§@¡¨ª¬ºA¡A«h¤å¥ó¤U¸ü±N·|¥¢±Ñ¡C­n¤Á´«¨ìÁp¾÷¤u§@¼Ò¦¡´N­n¥Î¨ì internetsetoption ¨ç¼Æ¡C
declare integer internetsetoption in wininet.dll;
integer hinternet,; && internet ·|¸Ü±±¨î½X ¥i³]¸m爲¹s¡Aªí¥Ü¡§¥þ§½ internet ³s±µ¡¨
integer dwoption,; && ³]¸mÃþ«¬ 50 - ³]¸m³s¾÷ª¬ºA
string lpbuffer,; && »Ý³]¸m¿ï¶µ
integer dwbufferlength && lpbuffer ªø«×
½Õ¥Î¤èªk¡G
m.lpbuffer = chr(1)+chr(0)+chr(0)+chr(0)+; && dwconnectedstate 0x01 - Áp¾÷¡F0x10 - ²æ¾÷
replicate(chr(0),4) && dwflags 0x00 - Áp¾÷¡F0x01 - ²æ¾÷
internetsetoption(0,50,m.lpbuffer,len(m.lpbuffer))
¦Ü¦¹¡A§Ú­Ì¤w¸g³s±µ¨ì¤F http ¦øªA¾¹¡A±µ¤U¨Ó¬O§PÂ_¦¹¦øªA¾¹¬O§_¤ä´©¡§¤¤Â_ÂIÄò¶Ç¡¨¡C­n§¹¦¨¦¹¾Þ§@»Ý­n¥Î¨ì¤T­Ó¨ç¼Æ¡Ghttpopenrequest¡Bhttpsendrequest ©M httpqueryinfo¡C
① ¥ý¥Î httpopenrequest ¨ç¼ÆÀò¨ú¦V http ¦øªA¾¹µo°e½Ð¨Dªº±±¨î½X¡A¸Ó¨ç¼Æ­ì«¬¦p¤U¡G
declare integer httpopenrequest in wininet.dll;
integer hconnect,; && http ³s±µ±±¨î½X
string lpszverb,; && http ¨ó©w©R¥O ­Y爲ªÅ«h¨ç¼ÆÀq»{爲"get - ªí¥Ü¤U¸ü¤å¥ó"
string lpszobjectname,; && »·ºÝÀɮצW ¦p:¡§\dir\xxx.zip¡¨
string lpszversion,; && http ¨ó©wª©¥»¡A­Y爲ªÅ«h¨ç¼ÆÀq»{爲http/1.0
string lpszreferer,; && 爲 url «ü©w¤åÀɦa§}
string lpszaccepttypes,; && ¤å¥óªº¥´¶}Ãþ«¬
integer dwflags,; && ¼Ð»x
integer dwcontext
½Õ¥Î¤èªk¡G
m.hrequest = httpopenrequest(m.hconnect,"get","\dir\xxx.zip","http/1.1",null,null,0x4000000,0)
② ¦³¤F¦V http ¦øªA¾¹µo°e½Ð¨Dªº±±¨î½X´N¥i¥Hµo°e¨ãÅé½Ð¨D¤F¡C°²³]§Ú­Ì¤W¦¸¤å¥ó¤w¸g¤U¸ü¤F33¦ì¤¸²Õ¡A²{¦b§Ú­Ì½Ð¨D¦øªA¾¹±q²Ä34­Ó¦ì¤¸²Õ¶}©lµ¹µo°e¡A³o­n¥Î httpsendrequest ¨ç¼Æ¨Ó¹ê²{¡C
declare integer httpsendrequest in wininet.dll;
integer hrequest,; && http ¤U¸ü½Ð¨D±±¨î½X
string lpszheaders,; && ªþ¥[½Ð¨DÀY(¥i爲ªÅ) ±q²Ä10¦ì¤¸²Õ¶}©l¤U¸ü range:bytes=10-
integer dwheaderslength,; && ªþ¥[½Ð¨DÀYªø«×
integer lpoptional,; && ªþ¥[¸ê®Æ½w½Ä°Ï¡A¥i爲ªÅ
integer dwoptionallength && ªþ¥[¸ê®Æ½w½Ä°Ïªø«×
½Õ¥Î¤èªk¡G
m.lpszheaders = 'range:bytes=34-' && ½Ð¨D¦øªA¾¹±q¤å¥óªº²Ä34¦ì¤¸²Õ¶}©lµo°e¸ê®Æ
httpsendrequest(m.hrequest,m.lpszheaders,len(m.lpszheaders),0,0)
③ ±µ¤U¨Ó±q http ¦øªA¾¹Åª¨ú¸ê°T¥H§PÂ_¬O§_±µ¨ü§Ú­Ìªº½Ð¨D - ¡§¤¤Â_ÂIÄò¶Ç¡¨
declare integer httpqueryinfo in wininet.dll;
integer hrequest,; && http ¤U¸ü½Ð¨D±±¨î½X
integer dwinfolevel,; && Ū¨ú¼Ð»x
string @ lpvbuffer,; && ¸ê®Æ¶Ç»¼½w½Ä°Ï
integer @ dwbufferlength,; && ½w½Ä°Ïªø«×
integer @ lpdwindex && ªð¦^ªº°Ñ¼Æ­Ó¼Æ ?(³o­Ó°Ñ¼Æ§ÚÁÙ¨S·d©ú¥Õ~-~)
½Õ¥Î¤èªk¡G
m.bufquery = space(32)
m.dwlengthbufquery = len(m.bufquery)
m.lpdwindex = 0
httpqueryinfo(m.hrequest,http_query_status_code,@m.bufquery,@m.dwlengthbufquery,@m.lpdwindex)
¦pªG substr(m.bufquery,1,m.dwlengthbufquery) ªº¤º®e¬O '206'¡A­È±o¼y­Æ¡A¤ä´©¡§¤¤Â_ÂIÄò¶Ç¡¨¡A±µ¤U¨Ó§A¥i¥Hª½±µ½Õ¥Î internetreadfile ¨ç¼Æ±q¦øªA¾¹¤WŪ¨ú¸ê®Æ¤F¡I¸ê®Æ¦^¶Ç¦¨¥\«á¥Î writefile ¨ç¼Æ±N¨ä¼g¤J¥»¦a¤å¥ó´N¦æ°Õ(^_^)¡C
¤U¸ü¹Lµ{À³¸Ó啓°Ê¤@­Ó¡§½uµ{¡¨¨Ó¶i¦æ¡A³o¼Ë¥i¥HÀH®É¤¤Â_¤U¸ü¡C­Y¥Î°j°é±±¨î©Î¬O¥Ó½Ð¤@¦¸¤U¸ü¾ã­Ó¤å¥ó¨º§Ú­Ì´NµLªk¹ï¤U¸ü¹ê¬I±±¨î¤F¡A¥i¦bvfp¤¤啓°Ê¤@­Ó¡§½uµ{¡¨¤S¤ñ¸û³Â·Ð¡A¦]¦¹°½Ãiªº¿ìªk¬O±N¦¹¤u§@¥æµ¹®É¶¡±±¨î¶µ§¹¦¨¡A¦ý®ÄªG¤£¤Ó¦n(±N´NÂI§a)¡C
¦b®É¶¡±±¨î¶µªº timer ¨Æ¥ó¤¤¥i¥H©ñ¤JÃþ¦ü¤U­±ªº¥N½X:
this.enabled = .f. && ¸T¤î¥»¨­¡Aµ¥«Ý¥»¨Æ¥ó¥N½X°õ¦æ§¹²¦
if ¥Î¤á½Ð¨D¤¤Â_¤U¸ü .or. ¤w¤U¸ü§¹
ÄÀ©ñ±±¨î½X m.hrequest¡Bm.hconnect¡Bm.hinternet
Ãö³¬¥»¦a¤å¥ó
return
endif
*-- °²©w¨C¦¸¤U¸ü 1kb
m.dwfilesize = 1024
*-- ¤À°t½w½Ä°Ï
m.buffer = space(m.dwfilesize)
m.dwbytesread = 0
*-- ±N¤å¥óŪ¤J½w½Ä°Ï
internetreadfile(m.hrequest,@m.buffer,m.dwfilesize,@m.dwbytesread)
¼g¤J¥»¦a¤å¥ó
²Ö­p¤w¤U¸üªø«×
this.enabled = .t. && ±Ò°Ê¥»¨­¡A¤¹³\¦A¦¸°õ¦æ

­Y¦øªA¾¹¤£¤ä´©¡§¤¤Â_ÂIÄò¶Ç¡¨¡A¨º§A¥u¦³±N¥H«e¤U¸üªº¤£§¹¾ã¤å¥ó²MªÅ«á±qÀY¦A¨Ó°Õ(~_~)¡C
¥t¥~¡A§AÁÙ¥i¥H³q¹L³]¸m¤£¦Pªº dwinfolevel ­È¨ÓÀò±o¨ä¥L¦øªA¾¹¸ê°T¡C¥i¨ú­È¦p¤U¡G
http_query_status_code 19 && ª¬ºA¥N½X
http_query_status_text 20 && ª¬ºA¤å¥»
http_query_content_type 1 && Ãþ«¬
http_query_content_length 5 && ¤º®eªø«×
http_query_content_range 53 && ½d³ò
http_query_date 9 && ¤é´Á
http_query_last_modified 11 && ³Ì«á­×­q
http_query_version 18 && ¨ó©w
http_query_raw_headers 21 && Àò¨ú http ¸ê°T - ¤À¹j²Å¸¹爲 0
http_query_raw_headers_crlf 22 && Àò¨ú http ¸ê°T - ¤À¹j²Å¸¹爲¡§¦^¨®´«¦æ²Å¡¨
http_query_server 37 && ¦øªA¾¹
http_query_rest_method 45 && http¨ó©w©R¥O
http_query_etag 54 && etag
ª`·N¡G³]¸m¤£¦Pªº dwinfolevel ­È¤@©w­n±N¦r¦ê m.bufquery ³]ªº¨¬°÷¤j¡C¤@¯ë m.bufquery = space(2*1024)´N®t¤£¦h¤F¡C
ÁÙ¦³¤@ÂI»Ý­n»¡©ú¡A¦pªG¦øªA¾¹¤£¤ä´©¡§¤¤Â_ÂIÄò¶Ç¡¨¡A»Ý­n­«·s¦V¦øªA¾¹´£¥X½Ð¨D¥²¶·¥ýÄÀ©ñ«e­±ªº http ½Ð¨D±±¨î½X¡AµM«á­«·s¥Î httpopenrequest Àò¨ú http ½Ð¨D±±¨î½X¡AµM«á¥Î httpsendrequest µo°e·sªº¾Þ§@½Ð¨D¡A´N¹³¤U­±³o¼Ë¡G
internetclosehandle(m.hrequest)
m.hrequest = "get","\dir\xxx.zip","http/1.1",null,null,0x4000000,0)
httpsendrequest(m.hrequest,m.lpszheaders,len(m.lpszheaders),0,0)
¤U¸ü§¹¦¨«á§O§Ñ¤F¥Î internetclosehandle ÄÀ©ñ«e­±©Ò¦³ªº internet ±±¨î½X¡C¦n¤F¡A¥ý¨ì³oùاa¡A¹ê¦b¬OÃi±o¼gªF¦è¡C§Ú·|¾¨§Ö±N¥Ü¨Ò¾ã²z¥X¨Ó¡A±æ´³¦Ë¥ý±N¦¹¶K¡§©T³»¡¨´X¤Ñ¥H«K¤W¶Ç¥Ü¨Ò¡C
¤U­±¬O¨ä¥L¬ÛÃöªº ¨ç¼Æ­ì«¬¡C
*-- ¥~³¡¨ç¼Æ - ÄÀ©ñ internet ±±¨î½X ªð¦^­È 1-¦¨¥\¡A0-¥¢±Ñ¡A¨ãÅé¥X¿ù­ì¦]¥i³q¹L½Õ¥Î getlasterror ±o¨ì¡C
declare integer internetclosehandle in wininet.dll ;
integer hinternet && »ÝÄÀ©ñªº±±¨î½X
*-- ¥~³¡¨ç¼Æ - ±q»·ºÝ¤å¥ó¤¤Åª¨ú¸ê®Æ ªð¦^­È ¦¨¥\¡Aªð¦^1¡C¥¢±Ñ¡Aªð¦^ 0¡A¥i½Õ¥Î internetgetlastresponseinfo Àò±o¸Ô²Ó¤º®e
declare integer internetreadfile in wininet.dll ;
integer hfile,; && »·ºÝ¤å¥ó±±¨î½X
string @lpbuffer,; && ±µ¦¬½w½Ä°Ï¦a§}
integer dwnumberofbytestoread,; && Ū¨ú¦ì¤¸²Õ¼Æ
integer @lpdwnumberofbytesread && ¹ê»ÚŪ¨ú¦ì¤¸²Õ¼Æ
*-- ¥~³¡¨ç¼Æ - ±N¸ê®Æ¼g¤J¤@­Ó¤å¥ó ªð¦^­È «D¹sªí¥Ü¦¨¥\¡A§_«hªð¦^¹s
declare integer writefile in kernel32.dll ;
integer hfile,; && ¤å¥ó±±¨î½X
string @lpbuffer,; && ¸ê®Æ½w½Ä°Ï¦ì§}
integer nnumberofbytestowrite,; && ¼g¤J¦ì¤¸²Õ¼Æ
integer @lpnumberofbyteswritten,; && ¹ê»Ú¼g¤J¦ì¤¸²Õ¼Æ
integer lpoverlapped && ¸Ó°Ñ¼ÆÀ³¸m爲¹s
_________________
§Q¥Î>>·j´M<<ªº¥\¯à·|¤ñ°ÝªºÁÙ­n§Ö±o¨ìµª®×.
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§ µo°e¹q¤l¶l¥ó
±q¤§«eªº¤å³¹¶}©lÅã¥Ü:   
µoªí·s¥DÃD   ¦^ÂÐ¥DÃD    VFP ·R¥ÎªÌªÀ°Ï ­º­¶ -> VFP °Q½×°Ï ©Ò¦³ªº®É¶¡§¡¬° ¥x¥_®É¶¡ (GMT + 8 ¤p®É)
²Ä1­¶(¦@1­¶)

 
«e©¹:  
±z µLªk ¦b³o­Óª©­±µoªí¤å³¹
±z µLªk ¦b³o­Óª©­±¦^ÂФ峹
±z µLªk ¦b³o­Óª©­±½s¿è¤å³¹
±z µLªk ¦b³o­Óª©­±§R°£¤å³¹
±z µLªk ¦b³o­Óª©­±¶i¦æ§ë²¼
±z µLªk ¦b³o­Óª©­±ªþ¥[ÀÉ®×
±z µLªk ¦b³o­Óª©­±¤U¸üÀÉ®×


Powered by phpBB © 2001, 2005 phpBB Group
¥¿Å餤¤å»y¨t¥Ñ phpbb-tw ºûÅ@»s§@