[ ÂÛ̳ ] [ ½»Ò× ] [ ÊýÂëÓ°Ïñ ] [ ¿í´øÉ½ ] [ ²úÆ·ÅÝÅÝ ] [ ÓÊÏä ] [ µç×ÓÔÓÖ¾ ] [ ¾º²Â ] [ MYhome ] ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£ÛKDS·çÔÆÅÅÐаñ£Ý
„Ó¸ÐPP µÄ¸öÈ˿ռä

„Ó¸ÐPP [someday]
430 0
À´×Ô£º ÉϺ£
×¢²á£º 2000-09-15
·¢Ìû£º 38 £« 1365
Óû§±àºÅ£º 743
[ ·¢¶ÌÏûÏ¢ ] [ ¼ÓΪºÃÓÑ ]
[ ·â¿Ú½º ]

[ ¾ãÀÖ²¿ÓëÃÅÅÉ ]
[ Îҵļҵ± ]


[ „Ó¸ÐPPµÄ×îÈÈÌù ]
Ê×Ò³ [1] Î²Ò³  ¹²1Ò³
 ¹ØÓÚwinsockµÄÀ§»ó
·¢ÌùÈÕÆÚ£º 2002-08-19   [ 23ÈËÆÀÂÛ¹ý ]

Ò»Ö±ÒÔÀ´£¬ÎÒ·¢ÏÖÓÃwinsockµÄÆæ¹ÖµÄµØ·½



µ±´«ËÍÎı¾Îļþʱ£¬½ÓÊܶ˽ÓÊÜÕý³£



µ«ÊÇ´«ËͶþ½øÖÆÎļþʱ(jpg¡¢zipµÈµÈ)£¬Îļþ²»Äܱ»ÍêÈ«½ÓÊÕ£¬Ò»°ãÖ»µ½75%µÄÑù×ӾͽáÊøÁË



²»ÖªµÀ¸÷λÊÇ·ñÓÐÕâ¸öÎÊÌ⣿



ÇëÖ¸½Ì!ллÀ²



 tlbÎļþÊÇʲôÀàÐ͵ÄÎļþ°¡£¿
·¢ÌùÈÕÆÚ£º 2002-06-03   [ 5ÈËÆÀÂÛ¹ý ]

ÔõôÉú³ÉµÄ£¿ºÍdllÓÐÊ²Ã´Çø±ð?




 Ôõô³ö´íÁË£¿£¿
·¢ÌùÈÕÆÚ£º 2002-05-24   [ 1ÈËÆÀÂÛ¹ý ]

ÎÒΪºÎ¿´²»µ½·¢ÌùµÄÄÚÈÝÁË£¿£¿




 Visual BasicͨÐųÌÐòÉè¼Æ£¨×ªÕª£©
·¢ÌùÈÕÆÚ£º 2002-05-24   [ 1ÈËÆÀÂÛ¹ý ]

Visual BasicͨÐųÌÐòÉè¼Æ





×÷Õß: Ëﺣ½¡ ÅËÎÄ Ç®ÓáÊÙ ¡¡





¡¡¡¡Visual Basic ÖÐͨÐſؼþ¼°ÆäÔÚwindowsƽ̨ϵÄͨÐÅÈí¼þÉè¼Æ·½·¨£¬²¢½áºÏ¾ßÌåʵÀý¸ø³öÁË»ù±¾µÄͨÐųÌÐò¡£





¡¡¡¡1992Äêcrescent software inc.¹«Ë¾×¨ÎªvbÉè¼ÆÁËmscomm.vbxÓû§Í¨Ðſؼþ£¬ËüÌṩÁËͨ¹ý´®¿Ú·¢ËͺͽÓÊÕÊý¾ÝµÄ´®ÐÐͨÐÅÄÜÁ¦£¬²»µ«°üÀ¨ÁËÈ«²¿windows apiÖйØÓÚ´®ÐÐͨÐŵÄ16¸öº¯ÊýËùÍê³ÉµÄ¹¦ÄÜ£¬¶øÇÒ¿ªÍØÁ˸ü¶àµÄʹÓû§Éè¼Æ·½±ãµÄ¶ÔÏóÊôÐÔÀ´Âú×㲻ͬÓû§²»Í¬ÒµÎñµÄÐèÇó¡£Ä¿Ç°¹úÄÚÖÚ¶àµÄvb×ÊÁÏÖкÜÉÙÉæ¼°¸ÃͨÐſؼþµÄ½éÉÜ£¬±¾ÎĽ«Ïêϸ½éÉÜmscomm.vbxͨÐſؼþ¼°±à³Ì·½·¨£¬²¢½áºÏ¹¤×÷ÖеÄÒ»¸öʵÀý¸ø³ö»ù±¾Í¨ÐųÌÐò¡£





1 mscomm.vbxͨÐſؼþÃèÊö





mscomm.vbxͨÐſؼþ¿ÉÖ±½Ó´ÓvbµÄtoolboxÖмÓÈë´°Ìåform£¬¼´¿ÉÓÃÆä½øÐÐͨÐÅ¡£ÈôtoolboxÖÐÎ޴˿ؼþ£¬ÔòÓÃtoolsµÄcustom controls ½«mscomm.vbx´ÓwindowsµÄsystem×ÓĿ¼ÖмÓÈëvbµÄtoolboxÖС£





1.1 ͨÐÅ·½Ê½





mscomm.vbxÓÐ2ÖÖ²»Í¬µÄ·½Ê½À´´¦ÀíºÍ½â¾ö¸÷ÀàͨÐÅÈí¼þµÄ¿ª·¢ºÍÉè¼ÆÎÊÌâ





1¡¢Ê¼þÇý¶¯¡£ËüÓëc/c++дwindows Èí¼þʱµÄ´°¿Ú»Øµ÷º¯ÊýÀàËÆ£¬ÊÇ1ÖÖ¹¦ÄÜÇ¿´óµÄ´¦ÀíÎÊÌâµÄ·½·¨¡£ÔÚʵ¼Ê¹¤×÷ÖУ¬ÍùÍùÒª´¦ÀíÐí¶àͨÐÅÖеÄÏà¹ØÊ¼þ£¬ÀýÈ磺µ±Ïß·Êý¾Ýµ½´ï±¾¶Ë»òcdÏߺÍrtsÐźÅÏß״̬·¢Éú±ä»¯Ê±£¬ÒªÇóÎÒÃÇʹÓÃÏàÓ¦µÄʼþÀ´¸ú×ٺʹ¦Àí£¬¸Ã¿Ø¼þÊÇʹÓÃoncommʼþÀ´ÊµÏֵģ¬ËüÒ²°üÀ¨¼ì²âºÍ´¦ÀíͨÐÅ´íÎóµÈ·½ÃæµÄÎÊÌ⣬commevent Öµ·µ»Ø×î½üµÄͨÐÅʼþ»ò´íÎóµÄÊý×Ö´úÂ롣ͨÐſؼþÏêϸµÄ´íÎóºÍʼþ¾ÙÀýÓУº





mscomm-er-break ÊÕµ½1¸öbreak signal





mscomm-er-cdto cd Ðźų¬Ê±





¡­¡­





mscomm-ev-cd cdÐźŸıä





¡­¡­





2¡¢²éѯ·½Ê½¡£ÓɳÌÐòÉè¼ÆÕ߸ºÔð¶ÁÈ¡commeventµÄÖµ²¢´¦ÀíËù·¢ÉúµÄ´íÎó»òʼþ¡£Í¨³£¼òµ¥µÄÓ¦ÓóÌÐòÉè¼Æ¿É²ÉÓÃÕâÖÖ°ì·¨¡£





1.2 ͨÐſؼþµÄÊôÐÔ





ÀûÓÃͨÐſؼþ±àÖÆÍ¨ÐųÌÐò£¬¹Ø¼üÊÇ׼ȷÀí½âÉèÖÃͨÐſؼþµÄÊôÐÔ¡£mscomm.vbxÌṩÁË27¸ö¹ØÓÚͨÐſؼþ·½ÃæµÄÊôÐÔ£¬ÀýÈ磺





commport£ºÉèÖûò·µ»ØÍ¨ÐſڱàºÅ¡£





settings£ºÉèÖûò·µ»ØÒÔ×Ö·û´®ÐÎʽ³öÏÖµÄÊý¾ÝͨПñʽ£º²¨ÌØÂÊ¡¢Ð£Ñé¡¢Êý¾ÝλºÍÍ£ ֹλ¡£





portopen£ºÉèÖûò·µ»ØÍ¨ÐÅ¿Ú״̬£¨°üÀ¨´ò¿ªºÍ¹Ø±Õ1¸öͨÐſڣ©





¡­¡­





3¡¢ ʵÀý





±¾³ÌÐòÓ¦Óñ³¾°Îªdcc95Ð;²µç³ý³¾Æ÷×Ô¶¯¼à¿ØÏµÍ³Èí¼þ£¬½â¾ö1¸öpc¹¤¿Ø»ú£¨Ö÷Õ¾£©Óë32¸öµ¥Æ¬»ú£¨×ÓÕ¾£©Ö®¼äµÄͨÐÅÎÊÌâ¡£Ö÷Õ¾Óë×ÓÕ¾Ö®¼äÕâ×ÜÏßÊ½ÍøÂç½á¹¹£¬²ÉÓÃrs-485ͨÐűê×¼£¬ÒÔÎÊ´ð·½Ê½½øÐÐÊý¾ÝͨÐÅ¡£ÓÉÓÚ32¸ö×ÓÕ¾ÓëÖ÷Õ¾·¢ËÍͨÐÅÃüÁÏÂÐÐÃüÁ£¬Ö÷Õ¾ÔÚ½ÓÊÕ×ÓÕ¾·¢»ØµÄÏàÓ¦»Ø´ðÃüÁÉÏÐÐÃüÁºó¼ÌÐø·¢ËÍÏÂÐÐÃüÁîµÄͨÐÅÐÎʽ¡£¸ù¾Ýϵͳ¹¦ÄܵÄÒªÇó£¬Ö÷Õ¾Ðè·¢ËÍ2ÖÖÀàÐ͵ÄÃüÁ£¨1£©Í¬ÆÚÃüÁËüÓɶ¨Ê±Æ÷´¥·¢ÒýÆð£¬Ã¿¸ôlsÖÜÆÚ·¢ËÍ1´Î£»£¨2£©·ÇÖÜÆÚÐÔÃüÁËüÓɲÙ×÷Õß°´¶¯ÏàÓ¦ÃüÁî°´Å¥ÒýÆð£¬·ÇÖÜÆÚÐÔ·¢ËÍ¡£×Ô¶¯¼à¿ØÏµÍ³Èí¼þ°²×°ÔÚÖ÷Õ¾ÉÏ£¬¶øÍ¨ÐųÌÐò×÷Ϊ×Ô¶¯¼à¿ØÏµÍ³Èí¼þµÄÒ»²¿·ÖÒ²°²×°ÔÚÖ÷Õ¾ÉÏ¡£





±¾ÎĽöÁгöµ÷ÊÔͨÐųÌÐòʱ½øÐÐÊÔÑéÓõĻù±¾ÑÝʾ³ÌÐòÇåµ¥¡£ÊÔÑéʱ£¬ÓÃ1̨pc»ú×÷ΪÖ÷Õ¾£¬Áíһ̨pc»úÄ£Äâ32¸ö×ÓÕ¾µÄ¹¤×÷£¬Á½Ì¨pc»úÖ®¼ä²ÉÓÃrs232c´®¿ÚͨÐÅ¡£ÍùÖ÷Õ¾µÄͨÐÅÑÝʾ³ÌÐò´°Ì壨form£©ÖмÓÈë1¸öͨÐſؼþ¡¢2¸ö¶¨Ê±Æ÷¿Ø¼þºÍ1¸öÃüÁî°´Å¥¿Ø¼þ£¬Í¨Ðſؼþ£¨mscomm1£©ÓÃÓÚ·ÃÎÊ´®¿Ú£¬·¢ËͺͽÓÊÕÊý¾Ý£»periodic¶¨Ê±Æ÷¿Ø¼þ£¨periodic£©ÓÃÓÚ¿ØÖÆÃ¿ÃëÓÉÖ÷Õ¾Ïò¸÷×ÓÕ¾·¢ËÍÖÜÆÚÐÔÃüÁÃüÁî°´Å¥¿Ø¼þ(nonperiodic-command)Óënonperiodic¶¨Ê±Æ÷¿Ø¼þ£¨nonperiodic£©ÓÃÓÚ·¢ËÍ·ÇÖÜÆÚÐÔÃüÁî¡£Êý¾Ý´«ËͲÉÓÃʼþÇý¶¯µÄͨÐÅ·½Ê½£¬¸ù¾Ý²»Í¬µÄ·¢ËÍÃüÁîÉèÖÃrtreshlodÊôÐÔ£¬´Ó¶øÒýÆðoncommʼþÒÔ½ÓÊÕÊý¾Ý¡£





2.1 ´°Ìå¸÷¿Ø¼þ³õʼ»¯³ÌÐò





ÉèÖÃͨÐÅ´®¿Ú¹¤×÷²ÎÊý£¬ÉèÖÃperiodic¶¨Ê±Æ÷µÄÔڶϼä¸ôΪls, nonperiodic¶¨Ê±Æ÷µÄÖжϼä¸ôΪ0.5s¡£





sub form-load ()





mscomm1.commport=2 ¡¯Ñ¡ÓÃcom2´®ÐпÚ





mscomm1.settings="9600£¬n8£¬1" ¡¯²¨ÌØÂÊ9600£¬ÎÞÆæÅ¼Ð£Ñé룬8λÊý¾Ýλ1λֹͣλ





mscomm1.inputlen=0 ¡¯input½«¶ÁÈ¡½ÓÊÕ»º³åÇøµÄÈ«²¿ÄÚÈÝ





mscomm1.inbuffersize=1024 ¡¯ÉèÖýÓÊÕ»º³åÇøµÄ×Ö½Ú³¤¶È





mscomm1.portopen=true ¡¯´ò¿ªÍ¨ÐÅ¿Ú





mscomm1.inbuffercount=0 ¡¯Çå³ý·¢ËÍ»º³åÇøÊý¾Ý





mscomm1.outbuffercount=0 ¡¯Çå³ý½ÓÊÕ»º³åÇøÊý¾Ý





periodic.inteval=100 ¡¯ÉèÖÃls¶¨Ê±¼ä¸ô£¬Ê¹Ò£²âÃüÁîÿ¸ôls·¢ËÍ1´Î





nonperiodic.inteval=500 ¡¯ÉèÖÃ0.5s¶¨Ê±¼ä¸ô£¬²éѯÃüÁî°´Å¥ÊÇ·ñ´¦ÓÚ¼¤»î״̬ÒÔÈ·¶¨ÊÇ·ñ·¢ËÍÖÜÆÚÐÔÃüÁî





command-pressed=false ¡¯ÃüÁťΪδ¼¤»î״̬





during- periodic=false ¡¯ÖÜÆÚÐÔÃüÁîÊý¾Ý´«ÊäÉÐδ¿ªÊ¼





during- nonperiodic=false ¡¯·ÇÖÜÆÚÐÔÃüÁîÊý¾Ý´«ÊäÉÐδ¿ªÊ¼





end sub





2.2 ·ÇÖÜÆÚÐÔÃüÁî·¢ËͳÌÐò





¸ù¾ÝÃüÁť״̬¼°ÖÜÆÚÐÔÃüÁîÊý¾Ý´«Êä״̬£¬ÔÚnonperiodic¶¨Ê±Æ÷µÄÖжϳÌÐòÖз¢ËÍ·ÇÖÜÆÚÐÔÃüÁî¡£





sub nonperiodic-command-click ()





command-pressed=true ¡¯ÃüÁî°´Å¥¼¤»î





end sub





sub nonperiodic-timer ()





if during- periodic=true or command-pressed=false





then exit sub ¡¯ÈôÖÜÆÚÐÔÃüÁîÊý¾Ý´«ÊäÉÐδ½áÊø»òÃüÁî°´Å¥´¦ÓÚ¼¤»î״̬£¬ÔòÍ˳ö·¢ËÍ·ÇÖÜÆÚÐÔÃüÁî³ÌÐò¡£





command-pressed=false ¡¯ÃüÁî°´Å¥»Ö¸´ÎªÎ´¼¤»î״̬





call senddata (nonperiodic-command) ¡¯·¢ËÍ·ÇÖÜÆÚÐÔÃüÁî





mscomm1.rthreshold=r-nonperiodic-byte¡¯·¢ËÍ·ÇÖÜÆÚÐÔÃüÁîºó£¬ÉèÖÃrthresholdÊôÐÔ£¬Ê¹Ö÷Õ¾½ÓÊÕËùÉ趨µÄ×Ö½ÚÊýºóÒý·¢oncommʼþ





end sub





2.3 periodic¶¨Ê±Æ÷³ÌÐò





ÔÚperiodic¶¨Ê±Æ÷µÄÖжϳÌÐòÖз¢ËÍÖÜÆÚÐÔÃüÁ





sub periodic-timer ()





if during- nonperiodic=true then exit sub ¡¯Èô·ÇÖÜÆÚÐÔÃüÁîÊý¾Ý´«ÊäÉÐδ½áÊø£¬ÔòÍ˳ö·¢ËÍ·ÇÖÜÆÚÐÔÃüÁî³ÌÐò¡£





during-periodic=true ¡¯ÉèÖÃÖÜÆÚÐÔÃüÁîÊý¾Ý´«Êä״̬ΪÕýÔÚ½øÐÐÖÐ





call senddata (periodic-command) ¡¯·¢ËÍÖÜÆÚÐÔÃüÁî





mscomm1.rthreshold=r-periodic-byte ¡¯·¢ËÍÖÜÆÚÐÔÃüÁîºó£¬Ö÷Õ¾½ÓÊÕr-remot- edata-byte¸ö×Ö½Ú£¬¿ÉÒý·¢oncomm ʼþ





end sub





2.4 oncommʼþ³ÌÐò





¸ù¾ÝrthresholdÊôÐÔÉèÖÃÖµ£¬µ±½ÓÊÕ»º´æÇøÄÚ½ÓÊÕµ½ÏàÓ¦×Ö½ÚµÄ×Ö·ûʱ£¬Òý·¢oncommʼþ£¬ÔÚÖжϳÌÐòÖнÓÊÕÊý¾Ý¡£





sub mscomm1-oncomm ()





select case mscomm1.commevent ¡¯Ôڴ˿ɲåÈë´¦Àí¸÷ÖÖ²»Í¬´íÎó»òʼþµÄ´úÂë





case mscomm-ev-receive





receivestring$=mscomm1.input





select case mscomm1.rthreshold





case r-periodic-byte ¡¯ÖÜÆÚÐÔÃüÁîµÄÓ¦´ðÊý¾Ý





call disposedata(periodic-command) ¡¯´¦Àí½ÓÊÕÊý¾Ý





during periodic=false ¡¯ÉèÖÃÖÜÆÚÐÔÃüÁîÊý¾Ý´«Êä״̬Ϊ½áÊø





case r-nonperiodic-byte ¡¯·ÇÖÜÆÚÐÔÃüÁîµÄÓ¦´ðÊý¾Ý





call disposedata(nonperiodic-command) ¡¯´¦Àí½ÓÊÕÊý¾Ý





during-nonperiodic=false ¡¯ÉèÖ÷ÇÖÜÆÚÐÔÃüÁîÊý¾Ý´«Êä״̬Ϊ½áÊø





end select





end select





end sub





Ëæ×Åvb°æ±¾µÄ²»¶ÏÉý¼¶£¬vb½«³ÉΪ×î¿ìËÙ¡¢Ò×Óá¢Ç¿¾¢µÄÓ¦Óÿª·¢¹¤¾ß£¬ÊÇÆóÒµ¼¶¿Í»§/·þÎñÆ÷Ó¦ÓÃÈí¼þ¿ª·¢µÄÊ×Ñ¡¹¤¾ßÖ®Ò»¡£




 ÀûÓÃVisual BasicʵÏÖÎÞÏßͨѶ£¨×ªÕª£©
·¢ÌùÈÕÆÚ£º 2002-05-24   [ 2ÈËÆÀÂÛ¹ý ]

ÀûÓÃVisual BasicʵÏÖÎÞÏßͨѶ





×÷Õß: ½ªé¦ÕÑ¡¡





¡¡¡¡Ò»¡¢¸ÅÊö

¡¡¡¡Visual Basic ÊÇMcrosoft¹«Ë¾ÍƳöµÄÇ¿ÓÐÁ¦µÄϵÁпª·¢Èí¼þÖ®Ò»£¬¶øÇÒÒÔÆäʵÓᢷ½±ã¡¢¿ì½Ý¡¢¿ª·¢ÖÜÆÚ¶Ì¡¢¹ã·º¶øÇ¿´óµÄ¹¦ÄÜÔ½À´Ô½±»¹ã´ó±à³ÌÈËÔ±ËùÇ×Àµ£¬¹ãΪÁ÷´«£¬ËƺõÓÐЩרҵµÄ±à³ÌÈËÔ±·ÅÆúÁËVisaul C++ ¶ø¸ÄÓÃÁËVisaul BasicÖ®ÀàµÄRAD±à³Ì¹¤¾ß£¬¾¡¹ÜVisaul C++ÔÚÁé»îÐÔ¡¢´úÂë½ô´Õ¡¢ÔËÐÐËٶȿ켰µ×²ã¿ª·¢µÈ·½ÃæVisaul BasicÎÞ·¨±ÈÄâµÄ£¬µ«±àдC++Ó¦ÓóÌÐò¹ý³¤µÄµ÷ÊԺͿª·¢ÖÜÆÚȷʵÓе㲻ÊÊÓ¦µ±½ñµÄÓ¦ÓóÌÐò¿ª·¢»·¾³¡£

¡¡¡¡ÔÚVisaul Basic¿ª·¢¹¤¾ßÖÐÌṩÁË´óÁ¿µÄ¿Ø¼þ£¨»ò³Æ¿ØÖÆ¡¢×é¼þ£©¹©±à³ÌÈËԱʹÓ㬿ÉÒÔ·½±ãµÄÀûÓÃÕâЩ×é¼þÖеÄÊôÐÔ¡¢·½·¨¡¢ÓïÑÔµÈÒÔʼþÇý¶¯·½Ê½¿ª·¢Ó¦ÓóÌÐò£¬»¹¿ÉÒÔÀûÓÃWINDOWS SDKÖеÄAPIÖеÄÓ¦ÓóÌÐò½Ó¿ÚµÈ¹¤¾ß¿ª·¢Ó¦ÓóÌÐò¡£VB»¹×Ô´øÒ»¸ö¿Ø¼þ¿ª·¢Èí¼þ°üCDK£¬ÀûÓÃCDK¿ÉÒÔ¿ª·¢×Ô¼ºÐèÒªµÄControls ¡£ÔÚͨѶÎÊÌâÖÐÎÒÃÇ¿ÉÒÔʹÓÃVBÌṩµÄͨѶ¿Ø¼þ»òµ÷ÓÃWINDOWS APIͨѶº¯Êý¡£



¡¡¡¡¶þ¡¢ VB´®ÐÐͨѶ

¡¡¡¡ÀûÓÃVB¿ª·¢Í¨ÐųÌÐòÖ÷ÒªµÄ·½·¨ÓÐÁ½ÖÖ£¬Ò»ÊÇÀûÓÃVB±¾ÉíÌṩµÄ¿Ø¼þ£¨CONTRALS£©£¬ÁíÒ»ÖÖ·½·¨ÊÇÀûÓÃWINDOWS APIÓ¦ÓóÌÐò½Ó¿Ú£¬WINDOWS API Ö÷ÒªÌṩÁËÈý¸ö¶¯Ì¬Á¬½Ó¿âKERNEL.EXE¡¢USER.EXE¡¢GDI.EXE¹©¿ª·¢ÈËÔ±µ÷Óã¬ÆäÖÐKERNEL.EXE Ö÷Òª°üÀ¨Ò»Ð©µ×²ã²Ù×÷º¯Êý£¬Íê³ÉһЩ×ÊÔ´¹ÜÀí¡¢ÈÎÎñ¡¢ÄÚ´æµÈ²Ù×÷£¬USER.EXE°üº¬ÁËһЩÓëWINDOWS¹ÜÀíÓйصĺ¯Êý£¬ÈçͨѶ¡¢²Ëµ¥¡¢ÏûÏ¢¡¢¹â±ê¡¢²åÈë·û¡¢¼ÆÊ±Æ÷ÒÔ¼°¾ø´ó¶àÊý·ÇÏÔʾº¯Êý£¬GDI.EXEͼÐÎÉ豸½Ó¿Ú¿â£¬Ö÷ÒªÄÚÈÝΪÓëÉ豸Êä³öÓйصĺ¯Êý¡£ºÍ´®¿ÚͨѶÓйØÏµµÄº¯ÊýBuilidCommDCB¡¢ClearCommBreak¡¢SetCommBreak¡¢FlushComm¡¢GetCommError¡¢GetCommState¡¢WriteComm¡¢ReadComm¡¢SetCommState¡¢CloseCommµÈ¾ùÔÚ \\\\Windows\\\\system ×ÓĿ¼ÏµÄUSER.EXE¶¯Ì¬Á¬½Ó¿âÖУ¬ÔÚVBµ÷ÓÃ֮ǰӦ¸ÃÏÈÔÚÈ«¾Ö±äÁ¿¶¨Òå´¦ÉùÃ÷APIͨѶº¯Êý¡¢¶¨Òå³£Á¿¡£

¡¡¡¡ÔÚÎÒÃǵÄʵ¼ùÖУ¬ÓÃVB ¿Ø¼þʵÏÖͨѶµÄ·½·¨±Èµ÷ÓÃSDKµÄAPI¶¯Ì¬Á¬½Ó¿âµÄ·½·¨¸ü¼Ó·½±ã¡¢¿ì½Ý£¬¶øÇÒÓýÏÉٵĴúÂë¿ÉÒÔʵÏÖÏàͬµÄ¹¦ÄÜ£¬Õâ¾ÍÊÇÓÃVB ¿Ø¼þʵÏÖͨѶµÄÓŵãËùÔÚ£¬ÏÂÃæÖ÷Òª½éÉÜÒ»ÏÂÀûÓÃVB ¿Ø¼þʵÏÖÎÞÏßͨѶµÄÎÊÌâ¡£

¡¡¡¡ÔÚVBµÄ¿Ø¼þ¹¤¾ßÏäÖУ¬ÌṩÁËÒ»¸öʹÓ÷dz£·½±ãµÄ´®ÐÐͨѶ¿Ø¼þMSComm£¬ËüÈ«ÃæµÄÌṩÁËʹÓÃRS-232´®ÐÐͨѶÉϲ㿪·¢µÄËùÓÐϸÔò£¬Ëü¼È¿ÉÒÔʹÓòéѯ·½Ê½ÓÖ¿ÉÒÔʹÓÃʼþÇý¶¯·½Ê½À´Íê³É´®ÐÐͨѶ¡£

¡¡¡¡ÔÚMSCOMM¿Ø¼þÖÐÌṩÁËһϵÁеıà³ÌÒªËØ£¬ÕâЩ±à³ÌÒªËØÓÐÊôÐÔ¡¢Ê¼þºÍº¯Êý£¬ÀûÓÃÕâÐ©ÒªËØ±à³Ì£¬¿ÉÒÔʵÏÖ¼¸ºõÈ«²¿µÄ´®ÐÐͨѶ¹¦ÄÜ¡£ÔÚVBÖÐÌṩÁË30¶à¸öÊôÐÔ¡¢Ò»¸öʼþºÍÁ½¸öº¯Êý£¬ÆäÖÐÖ÷ÒªµÄÊôÐÔΪCommPort¡¢Settings¡¢PortOpen¡¢InBufferSize¡¢OutBufferSize¡¢InBufferCount¡¢OutBufferCount¡¢Break¡¢InputLen¡¢SThreshold¡¢Rthreshold¡¢RTSEnable¡¢CommEvent¡¢ParityReplace¡¢NullDiscardµÈ¡£

¡¡¡¡¿Ø¼þMSCommÌṩÁËÒ»¸öʼþOnComm£¬¸Ãʼþ¿ÉÒÔ½ØÈ¡´®¿ÚµÄÈκÎÏûÏ¢£¬×ªÈëʼþ´¦Àí³ÌÐò¡£WINDOWS²Ù×÷ϵͳµÄÔËÐлúÖÆÎªÊ¼þÇý¶¯£¬ÔÚVB±à³ÌÖÐʼþÇý¶¯·½Ê½Í¬ÑùÊÇÈí¼þÔËÐеÄÖ÷Òª·½Ê½Ö®Ò»£¬µ±Ã»ÓÐʼþ·¢Éúʱ³ÌÐò¿ÉÄÜ´¦ÓÚijһѭ»·¡¢µÈ´ý»òÈÎÎñ״̬µ±Ê¼þ·¢Éúʱ£¬³ÌÐòתÈëʼþ´¦Àí³ÌÐò¡£Ã¿¸ö¿Ø¼þ϶¼ÓÐһЩʼþ¹©³ÌÐòԱʹÓã¬MSCOMM¿Ø¼þÖÐOnCommʼþÊÇΨһµÄ£¬OnComm¿ÉÒÔÆË»ñͨѶʱ·¢ÉúµÄ´®¿ÚʼþºÍ´íÎóÐÅÏ¢£¬µ±Óд®¿Úʼþ»ò´íÎó·¢Éúʱ£¬VB»áÁ¢¿Ì´¥·¢Ò»¸öOnCommʼþ£¬³ÌÐò¾Í»á×Ô¶¯×ªÈëOnCommʼþ´¦Àí³ÌÐòÖС£CommEventÊôÐÔÊÇOnCommʼþµÄָʾÆ÷£¬¸ÃÊôÐÔÔÚÉè¼ÆÊ±²»ÄÜʹÓã¬ÔÚ³ÌÐòÔËÐÐʱΪֻ¶Á£¬CommEvent ÊôÐÔ´æÓÐ×î½üµÄʼþ»ò´íÎóµÄÊýÖµ´úÂ룬¿ÉÒÔÔÚ³ÌÐòÖÐËæÊ±¶ÁÈ¡CommEvent ÊôÐÔÖµÀ´Á˽âͨѶµÄ×´¿ö£¬OnCommʼþÊǺÍCommEventÊôÐÔÃÜÇÐÏà¹Ø¡¢Ò»ÆðʹÓ㬵±ÈκÎÒ»¸öOnComm ʼþ»ò´íÎó·¢Éúʱ£¬¶¼»áʹµÃCommEventÊôÐÔÖµ¸Ä±ä£¬ÔÚOnCommʼþ´¦Àí¹ý³ÌÖУ¬¿ÉÒÔͨ¹ýÅжÏCommEventÊôÐÔÖµ£¬¶ÔÓÚ²»Í¬µÄÊôÐÔֵתÈ벻ͬµÄʼþ´¦Àí¹ý³Ì£¬Ò»°ã²ÉÓõİ취ÊÇSELECT CASE¡­¡­.END SELECT¡£ÓÉÓÚÔÚÎÞÏßͨѶÖÐûÓÐʹÓÃÓÐÏßMODEM£¬CommEvent ÊôÐÔÉæ¼°µ½µÄÓÐÏßMODEMµÄÊôÐÔÊýÖµ´úÂëºÍ±¾ÏîÄ¿Î޹ء£



¡¡¡¡Èý¡¢ ÎÞÏß´«Êä½Ó¿ÚºÍЭÒé

¡¡¡¡ÔÚÎÒÃǵÄÏîÄ¿ÖÐÓÃIntel 586/120µÄPC»úΪÉÏλ»ú£¬Í¨Ñ¶³ÌÐòʹÓÃVB¿ª·¢µÄ£¬ÓÃ8031µ¥Æ¬»ú×öCPU¡¢ AD574×÷Êý¾Ý²É¼¯µÄÏÂλ»ú£¬ÉÏλ»ú×÷Êý¾Ý½ÓÊÕºÍÊý¾Ý´¦ÀíÖÐÐÄÕ¾£¬ÏÂλ»úʵʱ²É¼¯Êý¾ÝÖ®ºó£¬½øÐмòµ¥µÄÊý¾Ýƽ¾ù¼ÆË㣬µ±ÊÕµ½ÉÏλ»ú·¢À´µÄ·¢ËÍÖ¸ÁîÖ®ºó£¬¿ªÊ¼ÏòÉÏλ»ú·¢ËÍÊý¾Ý¡£

¡¡¡¡ÉÏλ»úÎÞÏßͨѶ½Ó¿ÚʹÓõÄÊÇÒ»¿é²åÔÚISAÀ©Õ¹²ÛÖеÄÎÞÏßMODEM ZX-02£¬ÎÞÏßMODEMÓëKENWOOD¹«Ë¾µÄTK-378ÎÞÏß¶Ô½²»úÏàÁ¬£¬Êý×ÖÐźÅͨ¹ýÎÞÏßMODEMµ÷ÖÆ³ÉΪÒôƵÐźÅÖ®ºó£¬Ë͵½TK-378ÎÞÏß¶Ô½²»úÉϵÄMIC¿Ú¡£

¡¡¡¡ÏÂλ»úÓÐһ̨ÍâÖÃÎÞÏßMODEM ZX-01£¬µ¥Æ¬»úµÄÊý×ÖÐźž­¹ý´®¿ÚËÍÈëÎÞÏßMODEM£¬MODEM¶ÔÐźŽøÐе÷ÖÆºóËÍÈëKENWOOD TK-378ÎÞÏß¶Ô½²»úÉÏ£¬½ÓÊÕÊý¾ÝµÄ·½Ê½ÓëÉÏÊöÏàͬ£¬ÓÉTK-378ÊÕµ½Ðźź󣬾­ÎÞÏßMODEM½«ÒôƵÐźŽâµ÷ΪÊý×ÖÐźŽøÈë¼ÆËã»ú»òµ¥Æ¬»ú´¦Àí¡£

¡¡¡¡ÓÉÓÚÔÚÎÒÃǵÄÍ¨Ñ¶ÍøÂçÖУ¬²¢·Çµã¶ÔµãµÄͨѶ£¬¶øÊÇÒ»µã¶Ô¶àµãµÄ¹ã²¥Ê½µÄͨѶ·½Ê½£¬Òò´Ë£¬ÎÒÃÇÔÚͨѶЭÒéÖÐÔø¼ÓÕ¾µãʶ±ðÂ룬ÿ¸öÕ¾ÓÐ×Ô¼ºÌض¨µÄʶ±ðÂ룬¸øÏÂλ»ú±àÂë¿ÉÒÔ±£Ö¤ÍøÂçͨѶµÄÓÐÐòÐÔ¡£

¡¡¡¡ÓÉÓÚÎÞÏßͨѶ¿ÉÄÜ»áÓпռäµÄÔïÉù¸ÉÈÅ£¬Òò´Ë£¬ÎÒÃDzÉÈ¡Á˶àÏ¸ÉÈÅ´ëÊ©£¬Ê×ÏÈÊǰüͷʶ±ðÂ룬ÔÚ·¢ËÍÁË´«ÊäÃüÁîÖ®ºó£¬ÏÂλ»ú¿ªÊ¼ÒÔ´ò°üµÄÐÎʽ´«ÊäÊý¾Ý£¬Ã¿Ò»°ü¶¼ÓÐÒ»¸ö°üÍ·ºÍ°üβʶ±ðÂ룬¼ÙÈçʶ±ðÂëÓÐÎó£¬ÕâÒ»´ÎµÄ´«ÊäΪ²»Õý³£Êý¾Ý´¦Àí¡£´ò°ü·¢ËÍÁíÍâÒ»¸öÔ­ÒòÊÇTK-270¶Ô½²»úÁ¬Ðø·¢ËÍÊý¾ÝµÄʱ¼ä²»Äܳ¬¹ýÒ»·ÖÖÓ£¬³¬¹ýÒ»·ÖÖӾͻá×Ô¶¯ÖжϷ¢ËÍ£¬Òò´Ë£¬µ±Êý¾Ý½Ï¶àʱ²»´ò°üÁ¬Ðø·¢Ë͵Äʱ¼ä¾Í»á³¬¹ýÒ»·ÖÖÓ£¬·¢ËÍÊý¾ÝÖжϡ£

¡¡¡¡ÔÚÏÂλ»úÖÐÓÐ32KBµÄNVRAM£¬¿ÉÒÔ±£´æ32KBµÄÊý¾Ý¸ÃÊý¾Ý¿ÉÒÔÓÉÉÏλ»ú·¢ËÍÇå³ýÃüÁîµÄ·½·¨Çå³þµô£¬µ±32KBÂúÁËÒÔºó£¬×îÔç·ÅÈëµÄÊý¾Ý¾Í»á¶ªµô£¬ÓÉÓÚÎÒÃǵIJÉÑùËÙÂʲ»¸ß£¬ÔÚÂý²ÉµÄÇé¿öÏ£¬Á½ÌìµÄʱ¼ä²ÅÄÜ´æÂú£¬ÕâÑù²»ÂÛÉÏλ»ú»òÏÂλ»ú³öÏֶϵ硢ËÀ»úµÈÎÊÌ⣬Êý¾Ý²»»á¶ªÊ§µô¡£

¡¡¡¡ÔÚ·¢Ë͹ý³ÌÖУ¬ÓÉÓÚ¸ÉÈŵÄÔ­ÒòÊý¾Ý´«Êä³öÏÖ´íÎó£¬ÉÏλ»ú²»¸øÏÂλ»ú·¢ËÍÇå³þÃüÁÊý¾Ý±£´æÔÚNVRAMÖУ¬Ï´ÎÉÏλ»ú·¢ËÍ´«ÊäÃüÁîÖ®ºó£¬ÕâЩÊý¾Ý»¹»áÖØÐ·¢Ë͵½ÉÏλ»úÀ´£¬ÕâÑù¿ÉÒÔ±ÜÃâÁËÏß·´øÀ´µÄÊý¾ÝËðʧ£¬

´ÓÏÂλ»úÏòÉÏλ»ú´«Ë͵ĴúÂëÓÐASCIIÂëºÍBCDÂ룬²âÁ¿Êý¾Ý²¿·ÖÓõÄÊÇBCDÂëÖ÷ÒªÊÇΪÁ˽ÚÊ¡×ÊÔ´£¬ÓÉÉÏλ»úÏòÏÂλ»ú·¢Ë͵ÄÃüÁî¾ùΪASCIIÂë¡£

¡¡¡¡ÎÒÃÇ»¹¶Ô×ֶγ¤¶ÈºÍ°üµÄ³¤¶È×÷Á˹涨£¬Ò»¸ö×Ö¶ÎÓжàÉÙ¸ö×Ö½Ú£¬Ò»°üÓжàÉÙ¸ö×Ö¶Î×é³É£¬Èç¹ûÊý¾Ý×îºó²»¹»Ò»Õû°ü£¬Ò²°´ÕÕÕû×ֶεĸñʽ×÷Ϊ°ë°ü·¢Ë͹ýÀ´¡£

¡¡¡¡¿¼Âǵ½ÏÂλ»úµÄ·ÖÉ¢ÐÔ£¬¿ÉÄ̶ܹ¨ÔÚÆ«Ô¶¡¢²»Ò˽ӽüµÄµØ´ø£¬ÓÃÉÏλ»ú¶ÔÏÂλ»ú·¢ËÍУʱÃüÁУʱµÄ·½·¨À´Í³Ò»ÍøÂçʱ¼ä¡£

¡¡¡¡ÓÉÓÚÎÒÃÇʹÓõÄÎÞÏßMODEM ËùÏÞ£¬´«ÊäËÙÂÊÖ»ÄÜ´ïµ½2400BPS£¬¶øÔÚÎÒÃǵÄʹÓÃÖÐ1200BPS¡¢N PARITY¡¢8 DATA¡¢1 STOPΪ½ÏÎȶ¨×´Ì¬¡£

¡¡¡¡ÉÏλ»úÏòÏÂλ»ú·¢Ë͵ÄÃüÁîÓÐУʱÃüÁУʱ¡¢ÇëÄÚ´æÃüÁî¡¢·¢ËÍÊý¾ÝÃüÁî¡¢¿ì²ÉÃüÁîºÍÂý²ÉÃüÁîµÈ¡£·¢ËÍÃüÁîÓÐÁ½ÖÖ·¢ËÍ·½Ê½£¬¼´ÊÖ¶¯·½Ê½ºÍ×Ô¶¯·½Ê½£¬×Ô¶¯·½Ê½ÊÇÓɶ¨Ê±Æ÷À´Íê³ÉµÄ¡£

¡¡¡¡ÔÚÎÞÏßͨѶ¹ý³ÌÖУ¬³ýÁ˹涨ºÏÀíµÄЭÒéÖ®Í⣬ΪÁ˱£Ö¤Í¨Ñ¶µÄÕýÈ·ÐÔ£¬ÔÚÊý¾Ý·¢ËÍʱÊʵ±µÄÔö¼ÓÑÓʱÊDZØÒªµÄ£¬µ±ËٶȽÏÂýµÄ¼ÆËã»úÏòËٶȽϿìµÄ¼ÆËã»ú·¢ËÍÊý¾ÝʱӦÊʵ±µÄÔö¼ÓÑÓʱ¡£




 VB´¦ÀíÊý¾Ý¿âʱÇóÊý¾Ý±í¼Ç¼×ÜÊýµÄ×î¼Ñ·½·¨(תÌù),Ï£Í
·¢ÌùÈÕÆÚ£º 2002-05-23   [ 10ÈËÆÀÂÛ¹ý ]

---- ---- VBÖ÷Òª´¦ÀíµÄÊÇMDB¸ñʽµÄÊý¾Ý¿â£¬µ«¾ÍÔÚÕâ·½Ãæ£¬Ëü¾Íƫƫ³öÁ˲î´í£¬ÏÈ¿´¿´ÏÂÀý£º



Dim db As Database

Dim rs As Recordset

Set db = OpenDatabase(App.Path & "\zzr.mdb")

Set rs = db.OpenRecordset("test")

Debug.Print rs.RecordCount



---- ---- ´ËÀý¼ÙÉèÔÚÓ¦ÓóÌÐòĿ¼ÏÂÓÐÒ»¸öÃûΪ"zzr.mdb"µÄÊý¾Ý¿â£¬¶øÇÒËüÀï±ßÓÐÒ»¸öÃûΪ"test"µÄ±í£¬´Ë³ÌÐòµÄÄ¿µÄ¾ÍÊÇÇó³ö¸Ã±íÖеļǼµÄ×ÜÊý¡£´Ë´¦Óõ½µÄÊÇ"±í"¶ÔÏóµÄRecordCountÊôÐÔ£¬ÕâÑùÓÃÔÚÒ»°ãÐÔ¿öÏÂÊÇÕýÈ·µÄ£¬µ«²¢²»Äܱ£Ö¤ÔÚËùÓеÄÇé¿ö϶¼ÄܵóöÕýÈ·µÄ½á¹û£¬±ÈÈç˵±íÖеÄÊý¾ÝÁ¿ºÜ´ó£¬»òÕßÊÇÊý¾Ý¿âÊܵ½¹ýʲôË𺦵ȵȡ£Èç¹ûÅöµ½ÕâÖÖÇé¿ö£¬ÎÒÃÇ¿ÉÒÔ»»Ò»¸ö½Ç¶ÈÀ´´¦Àí¡£Çë¿´ÏÂÃæµÄ³ÌÐò£º

Dim db As Database

Dim rs As Recordset

Dim Num As Long

Set db = OpenDatabase(App.Path & "\zzr.mdb")

Set rs = db.OpenRecordset("test")

Num = 0

rs.MoveFirst

Do While Not rs.EOF()

Num = Num + 1

rs.MoveNext

Loop

Debug.Print Num



---- ---- ÕâÑù£¬×îºóµÃµ½µÄNum¼´ÎªÕý½â½á¹û£¬ÕâÖÖ·½·¨µÄ˼·ÊÇ´Ó±íµÄ¿ªÊ¼´¦Ò»Ö±Ë³Ðò×ßµ½½á⣬¾Í¿ÉÒÔ"Êý"³ö±íÖе½µ×ÓжàÉÙÌõ¼Ç¼¡£ÕâÖÖ·½·¨¿´ÆðÀ´ºÜ±¿£¬µ«ÊÇËüÈ´ÊÇÒ»¸öÏ൱׼ȷµÄ·½·¨£¬´ó¼Ò²»·À¿ÉÒÔÊÔһϡ£

---- ÔÙ¿´±ÊÕßµÄ˵·¨£º



---- ÏÈ¿´ÉÏÃæÒ»ÐгÌÐò£ºDebug.Print rs.RecordCount£¬VB5ÔÚ¶ÁÈ¡Êý¾Ý±íʱ²¢·ÇÒ»´ÎÐÔ½«È«²¿¼Ç¼¾ù¶ÁÈëÄڴ棨ÏëÏë¿´Èç¹ûÓÐÒ»¸ö±í£¬ÀïÃæÓÐÒ»°ÙÍò¸ö¼Ç¼ÉõÖÁÒ»ÒÚ¸ö»ò¸ü¶à£¬ÒªÏëÈ«²¿¶ÁÈëÄڴ棬ÄãµÄ»úÆ÷ÄܳÐÊܵÃÁËÂ𣿣©£¬Ö»ÊÇÏȶÁÈëÒ»²¿·Ö£¨ÔÚÏÂÈÏΪÕâÊÇVBµÄÓÅÒìÕâ´¦£©£¬recordset¶ÔÏ󲢷DZíµÄÈ«²¿¼Ç¼£¬Ö»ÊÇÒѶÁÈëÄÚ´æµÄ²¿·Ö£¬¹ÊÓÃrs.recordcountµÃµ½µÄ²»ÊDZíµÄ¼Ç¼×ÜÊý¡£



---- ÔÙ¿´ÉÏÃæ³ÌÐòµÄ¸ÄÁ¼²¿·Ý£º





Do While Not rs.EOF()

Num = Num + 1

rs.MoveNext

Loop

Debug.Print Num



---- ÔÚÏÂÓÃÊ®Íò¸ö¼Ç¼µÄ±í¶ÔÉÏÃæÕâ¶Î³ÌÐò×öÁ˸ö²âÊÔ£¬½á¹û»¨ÁËÁù·Ö°ëÖÓ£¨intel 166,32MÄڴ棩£¬Èç´ËµÄµÈ´ý£¬¸óÏÂÓÐÄÍÐÄÎÞ£¿Çë¿´ÔÚϵĶԲߣº

---- ¼ÙÉèÊý¾Ý±íÒÑ´ò¿ª£¬ÓÃ



rs.Recordset.MoveLast '½«Ö¸ÕëÒÆµ½±íµÄ×îºóÒ»±Ê¼Ç¼

debug.print rs.Recordset.RecordCount

¼´¿ÉµÃ³öÕýÈ·½á¹û¡£



»òÕßÓÃÏÂÒ»ÖÖ·½·¨Òà¿É



rs.Recordset.MoveLast

debug.print rs.Recordset.AbsolutePosition+1

'µ÷Óþø¶ÔλÖÃ,ÒòvbµÄµÚÒ»±Ê¼Ç¼ÊÇÓÉÁãËãÆð£¬¹ÊÒª+1¡£




Ê×Ò³ [1] Î²Ò³  ¹²1Ò³
¹ØÓÚÎÒÃÇ - ÁªÏµÎÒÃÇ - ¼ÓÈëÎÒÃÇ - ÓªÏú·þÎñ - ÓÑÇéÁ´½Ó - ƵµÀºÏ×÷- PChome Widget
Copyright © 1996-2008 PChome.net All rights reserved. µçÄÔÖ®¼Ò °æÈ¨ËùÓÐ