VB °æ (¾«»ªÇø)

·¢ÐÅÈË: zxfsnow (Ï£ÍûµÄ´ºÌì), ÐÅÇø: VB
±ê  Ìâ: ÈçºÎÓÃVB¿ØÖÆI£¯O¿Ú£¨È«Ãæ×ÛÊö£© 
·¢ÐÅÕ¾: ¹þ¹¤´ó×϶¡Ïã (2000Äê06ÔÂ05ÈÕ12:49:27 ÐÇÆÚÒ»), ×ªÐÅ

·¢ÐÅÈË: gnim (ºßºß..ÅÂÁ˰É), ÐÅÇø: VB
±ê  Ìâ: ÈçºÎÓÃVB¿ØÖÆI£¯O¿Ú£¨È«Ãæ×ÛÊö£©
·¢ÐÅÕ¾: »¢¾áÁúó´ (Thu Apr  6 18:14:29 2000), ×ªÐÅ

±¾ÎÄдµÃ²»´í£¬ÊÇcoolknight¼¯´ó³ÉÕߣ¬¸Ðлcoolknight.

·¢ÐÅÈË: coolknight (¿áÆïÊ¿~~½ä²»µôÁË), ÐÅÇø: VB
±ê  Ìâ: $?VB±à³ÌÈçºÎ¿ØÖÆI/O¿Ú
·¢ÐÅÕ¾: Î人°×ÔÆ»Æº×Õ¾ (Tue Jan 11 17:53:38 2000), Õ¾ÄÚÐżþ

VBûÓÐÌṩֱ½Ó¶ÁдI/O¿ÚµÄ·½·¨¡£ËùÒÔÖ»ÄܽèÖúÆäËûÓïÑÔÀ´±àдDLL£¬È»ºóÔÚVBÖе÷Óá£
Èç¹ûÒªÔÚWindows 3.X϶Áд¶Ë¿Ú£¬Ò²¿ÉÒÔÏÂÔØftp://ftp.winsi Èç¹ûÄãÔÚWindowsÏÂʹ
ÓùýC/C++£¬ÄÇô±àдÕâÑùµÄDLL¿ÉÄÜûÓÐʲôÀ§ÄÑ¡£ÔÚCÓïÑÔÀï¶¼°üÀ¨inpºÍoutpº¯Êý¡£
¿ÉÒÔ°ÑÏÂÃæÕâ¶ÎCÓïÑÔ´úÂë

#include <conio.h>
#include <Windows.h>
/*×÷Ó㺴ÓÖ¸¶¨¶Ë¿Ú¶ÁÈëÒ»¸ö×Ö½Ú

²ÎÊý£ºportid¶Ë¿ÚºÅ

·µ»ØÖµ£º¶ÁÈëµÄ×Ö½Ú*/
int _stdcall Inportshort portid
return inpportid;

/*×÷ÓãºÏòÖ¸¶¨¶Ë¿ÚдÈëÒ»¸ö×Ö½Ú

²ÎÊý£ºportid¶Ë¿ÚºÅ

*/
void _stdcall outputshort portid, short byte outpportid,byte;

/*×÷Ó㺴ÓÖ¸¶¨¶Ë¿Ú¶ÁÈëÒ»¸ö×Ö½Ú

²ÎÊý£ºportid¶Ë¿ÚºÅ

·µ»ØÖµ£º¶ÁÈëµÄ×Ö½Ú*/
int _stdcall Inportwshort portid
return inpwportid;

/*×÷ÓãºÏòÖ¸¶¨¶Ë¿ÚдÈëÒ»¸ö×Ö½Ú
²ÎÊý£ºportid¶Ë¿ÚºÅ*/
void _stdcall Outportwshort portid,short word outpwportid,unsigned short word

×¢Ò⣺ÕâÖÖ·½·¨Ö»ÄÜÓÃÓÚWindows 95£¬²»ÄÜÓÃÓÚWindows NT¡£

$?ÈçºÎ¹ýÂ˼üÅ̼Èë

ÔÚ VB µÄÓ¦Óõõ½ÒÔǰ¾Í´¦Àí¼üÅ̶¯×÷£¬ ÊµÏÖ¶Ô¼üÅ̵ÄÈ«Ãæ¿ØÖÆ£¬ ¿É¹ýÂËÈÎÒâµÄ¼ü¡£
ÏÂÃæµÄÀý×Ó¹ýÂËÁË CTRL+C ¼ü£¬ ²¢°Ñ¸Ã¼üÄ£ÄâΪÔÚCommand1 Éϵ¥»÷¡£

Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, _
        ByVal nCode As Long, ByValwParam As Long, ByVal lParam As Long) _
        As Long
Public Declare Function UnhookWindowsHookEx Lib "user32" _
       (ByVal hHook As Long) As Long
Public Declare Function SetWindowsHookEx Lib "user32" Alias _
        "SetWindowsHookExA" (ByVal idHook As Long, ByVal lfn As Long, _
        ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" _
        (ByVal hwnd As Long, ByVal wMsg As Long,ByVal wParam As Long, _
         ByVal lParam As Long) As Long
Public Const WH_KEYBOARD = 2
Public Const KBH_MASK = &H2000
0000
Public Const WM_LBUTTONDOWN =&H201
Public Const WM_LBUTTONUP = &H202
Global hHook As Long
Global hHook As Long

'KeyboardProc ÔÚ VB Ó¦Óö¯×÷ǰ·¢Éú
Public Function KeyboardProc(ByVal nCode As Long, ByVal wParam As Long, _
        ByVal lParam As Long) as long
If nCode >= 0 Then
 '´¦ÀíÄãÏ£Íû¹ýÂ˵ļü
 If wParam = Asc("C") And lParam And KBH_MASK Then
  If lParam And &HC0000000 = 0 Then
    'Ä£ÄâÔÚCommand1 Öе¥»÷
    Form1.Command1.SetFocus
    Call PostMessageForm1.Command1.hwnd, WM_LBUTTONDOWN, 0, &H20002
    Call PostMessageForm1.Command1.hwnd, WM_LBUTTONUP, 0, &H20002
    KeyboardProc = 1
    Exit Function
  End If
 End If
End If
KeyboardProc = CallNextHookExhHook, nCode, wParam, lParamhHook, _
               nCode, wParam, lParam
End Function

Private Sub Form_Load
'½« KeyboardProc Á¬½Óµ½ÖжÏÉÏ
 hHook = SetWindowsHookExWH_KEYBOARD, AddressOf KeyboardProc, 0&, App.ThreadID
End Sub

Private Sub Form_UnloadCancel() As Integer
 Call UnhookWindowsHookExhHook
End Sub

$?´òÓ¡»ú¼¼ÇÉ

ÓàAPI ´ò¿ª´òÓ¡¶Ô»°¿ò
ʹÓÃͨÓöԻ°¿ò¿Ø¼þµ±È»¿ÉÒÔ´ò¿ª´òÓ¡¶Ô»°¿ò£¬ ²»¹ýÒªÀ˷Ѹü¶àµÄ×ÊÔ´ºÍÔö¼ÓÁËÒ»¸ö
OCX ²¿¼þ¡£ ¶øÓàAPI »á¸ßЧ¡£
ÉùÃ÷:
Declare Function PRINTDLG Lib "comdlg32.dll" Alias "PrintDlgA" _
        (pPrintdlg As PRINTDLG)

Type PRINTDLG
  lStructSize As Long
  hwndOwner As Long
  hDevMode As Long
  hDevNames As Long
  hdc As Long
  flags As Long
  nFromPage As Integer
  nToPage As Integer
  nMinPage As Integer
  nMaxPage As Integer
  nCopies As Integer
  hInstance As Long
  lCustData As Long
  lpfnPrintHook As Long
  lpfnSetupHook As Long
  lpPrintTemplateName As String
  lpSetupTemplateName As String
  hPrintTemplate As Long
  hSetupTemplate As Long
End Type

ʹÓãº
Private Sub Command1_Click
  Dim p As PRINTDLG
  p.lStructSize = Lenp
  p.hwndOwner = Me.hWnd
  p.nFromPage = 1
  p.nToPage = 1
  p.nMinPage = 1
  p.nMaxPage = 1
  p.nCopies = 1
  x = PRINTDLGp
  Printer.Print Text1.Text
End Sub

ÔÚ´òÓ¡×Ö·û´®Ê±×Ô¶¯»»ÐÐ
¸Ðл shijia µÄ´úÂë²âÊÔ¡£
ÆäÖРlen1 Îª´òÓ¡µÄ¿í¶È£¬ Str Îª´òÓ¡µÄÎı¾¡£

Do While LenStr > 0
 str1 = Str
 Do While len1 > 0 And Printer.
  TextWidthstr1 > len1
  str1 = Leftstr1, Lenstr1 - 1
 Loop
 Printer.Print str1 '´òÓ¡
 Printer.Print str1 '´òÓ¡
 If Lenstr1 = 0 Then Exit Do
 '²»Æ¥Åä
 Str = MidStr, LenStr1+1
 '½Ø¶Ï£¡
Loop


ÈôòÓ¡»úÖ»´òÓ¡Ò»ÐÐ

ÔÚ Win95 Ï£¬Ö»ÓÐÔÚʹÓàEndDoc »ò NewPa
ge Ê±£¬´òÓ¡»ú²Å¿ªÊ¼´òÓ¡£¬¶øÇÒÿ´Î¶¼Òª»»Ò³¡£Ê¹ÓÃÒÔÏµķ½·¨£¬¿ÉÒÔÖ»´òÓ¡Ò»
ÐУ¬²¢ÇÒÒ»¸öDragDropʼþÌṩÈýÌõÐÅÏ¢£­£­

DragDrop£¨Source as Control£¬X as Single£¬Y as Single£©Source

ÊÇÒѾ­·Å¿ªµÄͼƬ£¬Í¼±ê»ò¿Ø¼¡XºÍYÖµ£¬ÊÇ·Å¿ªÊ¼þËùÔÚÄ¿±í¶ÔÏóµÄˮƽºÍ´¹Ö±·½Ïò
λÖá£È磺

Sub pictrue1_DragDrop£¨Source as Control£¬X as Single£¬Y as Single£©
  Pictrue1£®DrawWidth£½6
  picture1£®pset£¨x£¬y£©£¬QBcolor£¨4£©
End Sub

µ±Ò»¸ö¿Ø¼þÍ϶¯µ½ÁíÒ»¸öÖ®ÉÏʱ£¬·¢ÉúÒ»¸öDragOverʼþ£¬
ÒÔ¾¯¸æ±»ÈëÇֵĿؼþ»ò´°Ìå·¢ÉúÁËÍ϶¯¡£Ò»¸öDragOverʼþÌṩËÄÌõÐÅÏ¢£º
DragOver£¨Source as control£¬X as Single£¬Y as Single£¬State as Integer£©
¡°Source¡±ÎªÈëÇÖÕß±êÖ¾¡£ÈëÇÖÕßÔÚ±»ÈëÇֵĿؼþ»ò´°ÌåÄڵĵ±Ç°Î»ÖÃÓÉX£¬YÀ´È·¶¨
ÈëÇÖÕßµÄ״̬£¬ÈçÊÇ·ñ¸Õ¸Õ½øÈë¡£ÈÔÔÚÆäÄÚ»ò½«ÒªÀ뿪µÈÓÉState±ä»¯±¨¸æ¡£
ͨ¹ýÔÊÐíÓû§Í϶¯Ò»¸öÖ¸ÕëÔÚÆÁÄ»ÉÏÒÆ¶¯£¬½Ó´¥´°¿ÚÄڵIJ»Í¬ÇøÓòÒýÆðÊÂÇé·¢Éú¡£Ò»
ÖÖ³£Óõıà³Ì¼¼ÊõÊǺÍһ״̬À¸Ò»Í¬Ê¹Óá£×´Ì¬À¸Ëæ³ÌÐòÔËÐÐʱµÄÇé¿ö¶ø¸±£¬±¨¸æ¹â
±êµÄµ±Ç°Î»Ö㬱äÁ¿ÈçFontµÈµÄ״̬£¬ÌṩһÖÖÓÐЧµÄ°ïÖú¹¦ÄÜ¡£

$?È砺ΠÅР¶Ï Ä³ Ò» ¸ö Drive ÊÇ ·ñ Îª ¹â µú »ú £¿

Ðë µ÷ ÓàWindows API µÄ GetDriveType £¬Ê×ÏÈ Éù Ã÷ ÒÔ Ï API :

Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" _
        (ByVal nDrive As String)
È» ºó ½« ÒÔ ÉÏ µÄ Éù Ã÷ ·Å ÔÚ .bas µÄ Ò» °ã Ä£ ¿é ÖР£¬Èç ¹û ·Å ÔÚ Form Ö®
ÖУ¬ Ðë ÔÚ Declare Ö® Ç° ÔÙ ¼Ó ÉÏ Private¡£ È» ºó Ê¹ ÓàÒÔ Ï Ðð Êöµ÷ Óࣺ

ret = GetDriveType  "D:\"

Èô ´« »Ø Öµ ret µÈ ÓÚ 5 , ¼´ ±í Ê¾ "D:\" Îª ¹â µú »ú £¬ ÖÁ ÓÚ Æä Ëû ´« »Ø
Öµ µÄ Òâ Òå Ôò ÊÇ £º2:Èíµú, 3:Ó²µú, 4:Server¶Ë´Åµú, 6:RAMDISK¡£

$?È砺ΠÈàµã Õó ´ò Ó¡ »ú Ã¿ ´Î Ó¡ ³ö Ò» ÐУ¿

VB µÄ Printer Ê ¼þ ±Ø Ðë µ÷ ÓàEndDoc »ò NewPage£¬ ²Å »á ½« ÁРӡµÄ ×Ê ÁÏ
Êä ³ö µ½ ´ò Ó¡ »ú £¬ µ« Ã¿ Ó¡ ¾Í ÊÇ Ò» Ò³£¬ÎҠϣ Íû Ã¿ Êä ³öÒ» ÐР×Ê ÁÏ ¾Í
Á¢ ¿Ì Ó¡ ÔÚ µã Õó ´ò Ó¡ »ú ÉÏ Ãæ £¬ ¸Ã È砺Π½ø ÐÐ ÄØ £¿

ÎÄ ¼þ Ãû ³Æ "PRN" ¶Ô DOS ¶ø ÑÔ £¬ Ö¸ µÄ ÊÇ ´ò Ó¡ »ú £¬ ¶Ô Windows ¶ø ÑÔ ÈÔ
È» ÊÇ ÊÊ ÓàµÄ £¬ Òò ´Ë ÏÈ Àû ÓàÒÔ Ï Ðð Êö¿

¿ª Æô "PRN"Ó¡±í »ú £º
Open "PRN" For Output As #1
È» ºó ÔÙ Àû ÓàÒÔ Ï µÄ Print Ðð Êö ±ã ¿É ÒÔ Öð ÐРӡ ³ö ×Ê ÁÏ £º
        Print #1, ×Ê ÁÏ
×¢ £º Èç ¹û Ïë Êä ³ö ÖРÎÄ £¬ ±Ø Ðë Ê¹ ÓàÖРÎÄ´ò Ó¡ »ú £¬ Òò Îª ÒÔ ÉÏ µÄ
ÁРӡ ·½ ·¨ ²¢ Î´ Í¨ ¹ý Windows µÄ ´ò Ó¡ »ú Çý ¶¯ ³Ì Ðò £¬ Ëù ÒÔ ÎÞ ·¨ ÔÚ
Ó¢ ÎÄ ´ò Ó¡ »ú ÉÏ Ãæ Êä ³ö ÖРÎÄ ×Ö ¡£

$?ÈçºÎ¸Ä±ä Windows Ô¤ÉèµÄ´òÓ¡»ú£¿

ÔÚ VB ÀïÃæ£¬ Ô­±¾¸Ä±äÔ¤Éè´òÓ¡»úµÄ·½·¨ÊÇ£º¼ÙÉè°²×°ÓÐÁ½ÖÖ´òÓ¡»úÇý¶¯³ÌÐò
Set Printer = Printers0 ' ½«Ô¤Éè´òÓ¡»úÉ趨³ÉµÚÒ»ÖÖ´òÓ¡»ú
Set Printer = Printers1 ' ½«Ô¤Éè´òÓ¡»úÉ趨³ÉµÚ¶þÖÖ´òÓ¡»ú
µ«Êµ¼ÊÉÏÒÔÉÏÐðÊöÓÐʱºò²»»á³É¹¦Ô­Òò²»Ï꣬ ÎªÁËÄܹ»³É¹¦µØ¸Ä±äÔ¤Éè´òÓ¡»ú£¬ÒÔÏÂ
Êǵ÷ÓàWindows API µÄ·½·¨£º²¹³ä˵Ã÷: ´ËÒ»½â¾ö·½°¸ÊÊÓÃÓÚ Winows 95, ÖÁÓÚ NT
É趨ԤÉè´òÓ¡»úµÄ·½·¨ÇëÈþ¿¼ 98/04/05 µÄÿÖÜС¼¼ÇÉ
1. API µÄÉùÃ÷£º
Const HWND_BROADCAST = &HFFFF&
Const WM_WININICHANGE = &H1A
Private Declare Function GetProfileString Lib "kernel32" Alias _
        "GetProfileStringA" (ByVal lpAppName As String, _
        ByVal lpKeyName As String, ByVal lpDefault As String, _
        ByVal lpReturnedString As String, ByVal nSize As Long) As Long
Private Declare Function WriteProfileString Lib "kernel32" Alias _
        "WriteProfileStringA" ByVal lpszSection As String, _
        ByVal lpszKeyName As String, ByVal lpszString As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
        (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
         lParam As Any) As Long
×¢£ºÈç¹ûÒÔÉϵÄÉùÃ÷·ÅÔÚ¡¸Ò»°ãÄ£¿é¡¹µ×Ï£¬ Ó¦ÔÚ Const Ö®Ç°¼ÓÉÏ Public ±£Áô×Ö£¬
²¢ÇÒ½« Private ±£Áô×ÖÈ¥µô¡£

2. ³ÌÐò·¶Àý£º
PrinterName = "ÄúÏëÉ趨µÄ´òÓ¡»úÃû³Æ"
Dim S As String, length As Lon
g, hKey As Long
S = String80, Chr0
length = GetProfileString"devices", PrinterName, "", S, LenS
S = LeftS, length
Call WriteProfileString"windows", "device", PrinterName & "," & S
Call SendMessage (HWND_BROADCAST, WM_WININICHANGE, &H7FFF&, ByVal "windows")

ÒÔ±ÊÕßµÄËù°²×°µÄ´òÓ¡»úΪÀý£¬ º¬ÓР"HP LaserJet 4L" ¼° "HP LaserJet 5L
Traditional" Á½ÖÖ£¬ ÈôÏ뽫ԤÉè´òÓ¡»úÉ趨³É "HP LaserJet4L"£¬ ÔòÐ뽫ÒÔÉϳÌÐòµÄ
¡¸PrinterName = "ÄúÏëÉ趨µÄ´òÓ¡»úÃû³Æ"¡¹¸Ä³É£º
PrinterName = "HP LaserJet 4L"

$?ÈçºÎ¸Ä±ä NT Ô¤ÉèµÄ´òÓ¡»ú£¿

Ç°Ãæ½éÉܵġ¸ÈçºÎ¸Ä±ä Windows Ô¤ÉèµÄ´òÓ¡»ú£¿¡¹£¬Ö»ÊÊÓÃÓÚ Windows£¬ ¶Ô NT Ôòû
ÓÐЧÓ㬠ÆäʵÔÚ NT µ×ÏÂÏëÒª¸Ä±ä VB ³ÌÐòÁÐÓ¡µÄ´òÓ¡»ú£¬ÇëʹÓÃ:
Set Printer = Printers0
Set Printer = Printers1
µ«ÒÔÉÏÐðÊöÈ´¶Ô Windows 95 Ã»ÓÐЧÓ㬠ËùÒԲŻáÓÐ98/03/01 Ëù½éÉܵġ¸ÈçºÎ¸Ä±ä
Windows Ô¤ÉèµÄ´òÓ¡»ú£¿¡¹¡£

ÖÁÓڸıä NT Ô¤Éè´òÓ¡»úµÄ·½·¨£¬ ÔòÊǸıäµÇ¼×ÊÁÏ¿âRegistry
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows subkey
µÄ Device value

ÒÔ±ÊÕß»úÆ÷µÄÉ趨ΪÀý£¬ ½« "HP LaserJet 4L" É趨ΪԤÉè´òÓ¡»ú£¬Ôò
Device = "HP LaserJet 4L,winspool,LPT1:"£¬
¼ÙÉè±ÊÕßÏ뽫ԤÉèÓ¡»ú¸Ä³É "HP LaserJet 4M"ÏȾöÌõ¼þÊǰ²×°ÓР"HP LaserJet 4M" µÄ
´òÓ¡»úÇý¶¯³ÌÐò£¬98/03/01 Ëù½éÉܵġ¸ÈçºÎ¸Ä±ä Windows Ô¤ÉèµÄ´òÓ¡»ú£¿¡¹¡£·½·¨ÊÇ
°Ñ Device µÄ value ¸Ä³É "HP LaserJet 4M,winspool,LPT1:"¡£

ÖÁÓÚÔÚ³ÌÐòÖиıäµÇ¼×ÊÁÏ¿âµÄ·½·¨£¬ ÔòÇëÈþÔÄ Run!PC50 ÆÚ3 Ôºš¸Windows µÄµÇ¼
×ÊÁϿ⡹¡£


--
»¶Ó­·ÃÎÊÏÂÃæµÄÖ÷Ò³£º
http://asp.gbsource.net/home/coolknight   ÐéÄâÉçÇø2000(½ÌÓýÍøÄÚ)
(ÍøÕ¾Ð¿ªÕż±Ðè´óÁ¿°ßÖñ£¬¾­ÑéÖµ´ïµ½100¼´¿Ì×ö°ßÖñ!)
http://202.114.3.124/coolknight/index.htm  VB°®ºÃÕß(½ÌÓýÍø»ª¹¤¾µÏñ)
http://coolvb.163.net                      VB°®ºÃÕß(163Íø)


--
¡ù ÐÞ¸Ä:¡¤gnim ì¶ Apr  8 10:49:49 Ð޸ı¾ÎÄ¡¤[FROM: 202.119.27.47]

--

 ÒԿƼÆÎª±¾,ÒÔ²úÒµ±¨¹ú!
  ³¬Ô½×ÔÎÒ,·ÉÔ¾ÎÞÏÞ!
  

¡ù À´Ô´:¡¤¹þ¹¤´ó×϶¡Ïã bbs.hit.edu.cn¡¤[FROM: 202.118.235.249]
[°Ù±¦Ïä] [·µ»ØÊ×Ò³] [Éϼ¶Ä¿Â¼] [¸ùĿ¼] [·µ»Ø¶¥²¿] [Ë¢ÐÂ] [·µ»Ø]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
Ò³ÃæÖ´ÐÐʱ¼ä£º216.068ºÁÃë