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µÈµÄ״̬£¬ÌṩһÖÖÓÐЧµÄ°ïÖú¹¦ÄÜ¡£
$?Èç ºÎ ÅÐ ¶Ï ij Ò» ¸ö 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)
Ò³ÃæÖ´ÐÐʱ¼ä£º203.382ºÁÃë