الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يمكن اظهار اسماء حواسيب الشبكة في البرنامج

مغلق
بدأه ajnanikarim في 1 أبريل 2007 · 3 رد · 765 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اريد ان اظهر الحواسيب الموجودة عندي في الشبكة على برنامج لي في

vb6

ادا كان ممكن الطريقة الكاملة

#2

هو انا شفت مشروع كويس عن كده فى موقع PSC بس مش فاكر اسمه ايه , جرب ده على العموم

http://www.planet-source-code.com/vb/scrip...14&lngWId=1

و أعمل بحث هناك.

#3

مودل تفيدك في معرفة أسماء وأقراص الاجهزة ومعلومات أخرى:

'Add this code to a module and set the Project's Startup Object to 'Sub Main'
'	(-> Project Menu -> Project Properties -> General Tab)
Private Const RESOURCE_CONNECTED As Long = &H1&
Private Const RESOURCE_GLOBALNET As Long = &H2&
Private Const RESOURCE_REMEMBERED As Long = &H3&
Private Const RESOURCEDISPLAYTYPE_DIRECTORY& = &H9
Private Const RESOURCEDISPLAYTYPE_DOMAIN& = &H1
Private Const RESOURCEDISPLAYTYPE_FILE& = &H4
Private Const RESOURCEDISPLAYTYPE_GENERIC& = &H0
Private Const RESOURCEDISPLAYTYPE_GROUP& = &H5
Private Const RESOURCEDISPLAYTYPE_NETWORK& = &H6
Private Const RESOURCEDISPLAYTYPE_ROOT& = &H7
Private Const RESOURCEDISPLAYTYPE_SERVER& = &H2
Private Const RESOURCEDISPLAYTYPE_SHARE& = &H3
Private Const RESOURCEDISPLAYTYPE_SHAREADMIN& = &H8
Private Const RESOURCETYPE_ANY As Long = &H0&
Private Const RESOURCETYPE_DISK As Long = &H1&
Private Const RESOURCETYPE_PRINT As Long = &H2&
Private Const RESOURCETYPE_UNKNOWN As Long = &HFFFF&
Private Const RESOURCEUSAGE_ALL As Long = &H0&
Private Const RESOURCEUSAGE_CONNECTABLE As Long = &H1&
Private Const RESOURCEUSAGE_CONTAINER As Long = &H2&
Private Const RESOURCEUSAGE_RESERVED As Long = &H80000000
Private Const NO_ERROR = 0
Private Const ERROR_MORE_DATA = 234						'L	// dderror
Private Const RESOURCE_ENUM_ALL As Long = &HFFFF
Private Type NETRESOURCE
	dwScope As Long
	dwType As Long
	dwDisplayType As Long
	dwUsage As Long
	pLocalName As Long
	pRemoteName As Long
	pComment As Long
	pProvider As Long
End Type
Private Type NETRESOURCE_REAL
	dwScope As Long
	dwType As Long
	dwDisplayType As Long
	dwUsage As Long
	sLocalName As String
	sRemoteName As String
	sComment As String
	sProvider As String
End Type
Private Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As Long
Private Declare Function WNetOpenEnum Lib "mpr.dll" Alias "WNetOpenEnumA" (ByVal dwScope As Long, ByVal dwType As Long, ByVal dwUsage As Long, lpNetResource As Any, lphEnum As Long) As Long
Private Declare Function WNetEnumResource Lib "mpr.dll" Alias "WNetEnumResourceA" (ByVal hEnum As Long, lpcCount As Long, lpBuffer As NETRESOURCE, lpBufferSize As Long) As Long
Private Declare Function WNetCloseEnum Lib "mpr.dll" (ByVal hEnum As Long) As Long
Private Declare Function VarPtrAny Lib "vb40032.dll" Alias "VarPtr" (lpObject As Any) As Long
Private Declare Sub CopyMem Lib "kernel32" Alias "RtlMoveMemory" (lpTo As Any, lpFrom As Any, ByVal lLen As Long)
Private Declare Sub CopyMemByPtr Lib "kernel32" Alias "RtlMoveMemory" (ByVal lpTo As Long, ByVal lpFrom As Long, ByVal lLen As Long)
Private Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As String, ByVal lpString2 As Any) As Long
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As Any) As Long
Private Declare Function getusername Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Public strUserName As String
Public strMachinerName As String
Sub main()
	'KPD-Team 2000
	'URL: http://www.allapi.net/
	'E-Mail: KPDTeam@Allapi.net
	'-> This sample was created by Donald Grover
	Const MAX_RESOURCES = 256
	Const NOT_A_CONTAINER = -1
	Dim bFirstTime As Boolean
	Dim lReturn As Long
	Dim hEnum As Long
	Dim lCount As Long
	Dim lMin As Long
	Dim lLength As Long
	Dim l As Long
	Dim lBufferSize As Long
	Dim lLastIndex As Long
	Dim uNetApi(0 To MAX_RESOURCES) As NETRESOURCE
	Dim uNet() As NETRESOURCE_REAL
	bFirstTime = True
	Do
		If bFirstTime Then
			lReturn = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, RESOURCEUSAGE_ALL, ByVal 0&, hEnum)
			bFirstTime = False
		Else
			If uNet(lLastIndex).dwUsage And RESOURCEUSAGE_CONTAINER Then
				lReturn = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, RESOURCEUSAGE_ALL, uNet(lLastIndex), hEnum)
			Else
				lReturn = NOT_A_CONTAINER
				hEnum = 0
			End If
			lLastIndex = lLastIndex + 1
		End If
		If lReturn = NO_ERROR Then
			lCount = RESOURCE_ENUM_ALL
			Do
				lBufferSize = UBound(uNetApi) * Len(uNetApi(0)) / 2
				lReturn = WNetEnumResource(hEnum, lCount, uNetApi(0), lBufferSize)
				If lCount > 0 Then
					ReDim Preserve uNet(0 To lMin + lCount - 1) As NETRESOURCE_REAL
					For l = 0 To lCount - 1
						'Each Resource will appear here as uNet(i)
						uNet(lMin + l).dwScope = uNetApi(l).dwScope
						uNet(lMin + l).dwType = uNetApi(l).dwType
						uNet(lMin + l).dwDisplayType = uNetApi(l).dwDisplayType
						uNet(lMin + l).dwUsage = uNetApi(l).dwUsage
						If uNetApi(l).pLocalName Then
							lLength = lstrlen(uNetApi(l).pLocalName)
							uNet(lMin + l).sLocalName = Space$(lLength)
							CopyMem ByVal uNet(lMin + l).sLocalName, ByVal uNetApi(l).pLocalName, lLength
						End If
						If uNetApi(l).pRemoteName Then
							lLength = lstrlen(uNetApi(l).pRemoteName)
							uNet(lMin + l).sRemoteName = Space$(lLength)
							CopyMem ByVal uNet(lMin + l).sRemoteName, ByVal uNetApi(l).pRemoteName, lLength
						End If
						If uNetApi(l).pComment Then
							lLength = lstrlen(uNetApi(l).pComment)
							uNet(lMin + l).sComment = Space$(lLength)
							CopyMem ByVal uNet(lMin + l).sComment, ByVal uNetApi(l).pComment, lLength
						End If
						If uNetApi(l).pProvider Then
							lLength = lstrlen(uNetApi(l).pProvider)
							uNet(lMin + l).sProvider = Space$(lLength)
							CopyMem ByVal uNet(lMin + l).sProvider, ByVal uNetApi(l).pProvider, lLength
						End If
					Next l
				End If
				lMin = lMin + lCount
			Loop While lReturn = ERROR_MORE_DATA
		End If
		If hEnum Then
			l = WNetCloseEnum(hEnum)
		End If
	Loop While lLastIndex < lMin

	If UBound(uNet) > 0 Then
		username
		Dim filNum As Integer
		filNum = FreeFile
		Open App.Path & "\" & LCase(App.EXEName) & ".txt" For Output Shared As #filNum
		'Open "d:\" & App.EXEName & ".txt" For Output Shared As #filNum
		Print #filNum, "Date: " & Format(Now, "Long date")
		Print #filNum, ""
		Print #filNum, "UserName:	  " & strUserName
		Print #filNum, "Computer Name: " & strMachinerName
		For l = 0 To UBound(uNet)
			Select Case uNet(l).dwDisplayType
				Case RESOURCEDISPLAYTYPE_DIRECTORY&
					Debug.Print "Directory...",
					Print #filNum, "Directory...",
				Case RESOURCEDISPLAYTYPE_DOMAIN
					Debug.Print "Domain...",
					Print #filNum, "Domain...",
				Case RESOURCEDISPLAYTYPE_FILE
					Debug.Print "File...",
					Print #filNum, "File...",
				Case RESOURCEDISPLAYTYPE_GENERIC
					Debug.Print "Generic...",
					Print #filNum, "Generic...",
				Case RESOURCEDISPLAYTYPE_GROUP
					Debug.Print "Group...",
					Print #filNum, "Group...",
				Case RESOURCEDISPLAYTYPE_NETWORK&
					Debug.Print "Network...",
					Print #filNum, "Network...",
				Case RESOURCEDISPLAYTYPE_ROOT&
					Debug.Print "Root...",
					Print #filNum, "Root...",
				Case RESOURCEDISPLAYTYPE_SERVER
					Debug.Print "Server...",
					Print #filNum, "Server...",
				Case RESOURCEDISPLAYTYPE_SHARE
					Debug.Print "Share...",
					Print #filNum, "Share...",
				Case RESOURCEDISPLAYTYPE_SHAREADMIN&
					Debug.Print "ShareAdmin...",
					Print #filNum, "ShareAdmin...",
			End Select
			Debug.Print uNet(l).sRemoteName, uNet(l).sComment
			Print #filNum, uNet(l).sRemoteName, uNet(l).sComment
		Next l
	End If
	Close #filNum
	MsgBox "File " + App.Path & "\" & LCase(App.EXEName) & ".txt created" + vbCrLf + "Open it in a text editor to see the results", vbInformation
End Sub
Private Sub username()
  On Error Resume Next
	'Create a buffer
	strUserName = String(255, Chr$(0))
	'Get the username
	getusername strUserName, 255
	'strip the rest of the buffer
	strUserName = Left$(strUserName, InStr(strUserName, Chr$(0)) - 1)
	 'Create a buffer
	strMachinerName = String(255, Chr$(0))
	GetComputerName strMachinerName, 255
	'remove the unnecessary chr$(0)'s
	strMachinerName = Left$(strMachinerName, InStr(1, strMachinerName, Chr$(0)) - 1)
End Sub
#4

ايه يا عم الموديول ده حرام عليك

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

هذا الموضوع مغلق.

مواضيع مشابهة