PDA

View Full Version : مشکل با api



chargen
جمعه 22 مهر 1384, 21:47 عصر
سلام به همگی. من سوالی دارم که اگه لطف کنید جواب بدید خییلی ممنون میشم :

1. اگه میشه کمی در باره این برنامه کوچیک توضیح بدید .اشکال اصلی من در استفاده از توابع ای پی آی هست. مثلا همین تابع getcomputername دو تا ارگومان ورودی یکی از نوع string و اون یکی از نوع long میگیره . حاالا من سوالم اینه که این string و long رو از کجا بیارم؟و منظورش چیه؟! کد :

Private Const MAX_COMPUTERNAME_LENGTH As Long = 31
Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private Sub Form_Load()
Dim dwLen As Long
Dim strString As String
'Create a buffer
dwLen = MAX_COMPUTERNAME_LENGTH + 1
strString = String(dwLen, "X")
'Get the computer name
GetComputerName strString, dwLen
'get only the actual data
strString = Left(strString, dwLen)
'Show the computer name
MsgBox strString
End Sub

dr_g
شنبه 23 مهر 1384, 11:09 صبح
با سلام
دوست عزیز نرم افزاری واسه استفاده از توابع API وجود داره. که بیشتر توابع API رو با مثال داره.که این مثالها به دو زبان VB و VB.NET هستن.این نرم افزار توی وبلاگم هستش یه سری بزن

http://www.gware.co.sr

alireza_CBoy
شنبه 23 مهر 1384, 16:37 عصر
سلام
در مورد پارامترهای تابع getcomputername :
1- lpBuffer : نام کامپیوتر را بر میگرداند .
2- nSize : اندازه نام کامپیوتر رابر میگرداند .

در مورد سوالتون که " این string و long رو از کجا بیارم؟ "
شما باید یک بافر برای قرار گرفتن نام کامپیوتر در آن ، درست کنید و اندازه آن را تا حدی بزرگ بگیرید تا برای نام کامپیوتر کم نیاید . در کدی که گذاشتین به خطهای زیر دقت کنید :

Private Const MAX_COMPUTERNAME_LENGTH As Long = 31 : در این خط بزرگترین مقداری که اسم کامپیوتر می تواند داشته باشد یعنی 31 را به متغیر MAX_COMPUTERNAME_LENGTH داده است .

dwLen = MAX_COMPUTERNAME_LENGTH + 1
strString = String(dwLen, "X") : در این دو خط نیز بافر را ساخته است dwLen همان اندازه است که صحبت شد
("اندازه آن را تا حدی بزرگ بگیرید تا برای نام کامپیوتر کم نیاید") و strString هم بافر است ، که در اینجا تعریف شده است به اندازه dwLen بوده و با حرف X پر شود .

GetComputerName strString, dwLen : در این خط تابع فراخوانی شده و نام کامپیوتر در strString و اندازه آن در dwLen قرار می گیرد .

موفق باشید .

chargen
شنبه 23 مهر 1384, 18:45 عصر
سلام. واقعا لطف کردین و خییل از اشکالاتم رفع شده.
در ضمن آقای dr_g فکر کنم منظورتون api_guide هست که دارمش بله خییلی خوبه ولی من کلا در مورد استفاده از توابع سوال کردم. بازم از هروی شما تشکر میکنم.