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

تصميم pcanywhere بالفيجوال بيسك

مغلق
بدأه عبدالفتاح حسن في 14 أغسطس 2005 · 5 رد · 733 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

الأخوة أعضاء المنتدى

ارجو ممن لديه الخبرة المساعدة فى هذا الموضوع فقد تعبت من البحث والمحاولات

ويتلخص الموضوع فى تصميم برنامج مكون من جزئين بهدف عمل ربط بين جهازين عن طريق الإنترنت

وقد قمت بتصميم جزء كبير من البرنامج بحيث يمكن لجهاز (Clinet) عرض محتويات الجهاز الأخر (Sever) ويمكنه ايضا النسخ والنقل منه واليه .

ويعتمد البرنامج على اداة Winsock الشهيرة ويتم تطبيق الأوامر السابقة عن طريق رسائل بين جزئى البرنامج

ولكنى توقفت عند اخر جزء فى البرنامج وهو امكانية فتح ملف على جهاز الطرف الأخر - دون نسخة - وايضا عمل مشاركة لمجلد فى جهاز الطرف الأخر بحيث يمكن التعامل معه كما لوكان على شبكة داخلية .

فأرجو ممن لديه اى فكرة عن هذا الموضوع الإسراع بالمشاركة .

كن كالنخيل عن الأحقاد مرتفعا .. يرمى بصخر فيرمى أطيب الثمر

#2
فأرجو ممن لديه اى فكرة عن هذا الموضوع الإسراع بالمشاركة .

كن كالنخيل عن الأحقاد مرتفعا .. يرمى بصخر فيرمى أطيب الثمر

#3

السلام عليكم أخ عبد الفتاح

أرجوا أن اكون قد فهمت القصد تماما

بس وجهة النظر للفكره الأولى مستحيلة تماما

لا يمكنك تشغيل ملف من جهازبعيد على جهازك إلا بنسخه أو إحضاره من ذلك الجهاز

أو كما يقوم برنامج المايكروزفت التيرمينال سيرفيس كلاينت بتشغيل الملف على الجهاز البعيد بشكل مخفي وإرسال الصور والتحكم لك على جهازك يعني المقصود الفكره مستحيله

وتشغيل الملف على جهاز الضحيه للعلم هو أمر الشيل

shell "notepad.exe

الموضوع 2

تماما الموضوع المفروض لو تعد الجهاز البعيد تماما سوف يكون بإمكانك استعماله كشبكه شرط أن يكون الجهاز fix ip

ويمكن عمل المشاركات عن طريق الدوس وأوامر ال net

أو الكود التالي لإضافة للتحكم بالمشاركات

'===================================

'start a new project and add three command buttons

'set forms AutoRedraw property to true

'ADD TO A MODULE IN YOUR PROJECT:

'====================================

Option Explicit

Public Platform As Long 'Platform ID of OS. 1 or 2

'Structure for Getversion

Public Type OSVERSIONINFO

dwOSVersionInfoSize As Long

dwMajorVersion As Long

dwMinorVersion As Long

dwBuildNumber As Long

dwPlatformId As Long

szCSDVersion As String * 128 ' Maintenance string for PSS usage

End Type

Public Const STYPE_DISKTREE As Long = 0

Public Const STYPE_PRINTQ As Long = 1

Public Const STYPE_DEVICE As Long = 2

Public Const STYPE_IPC As Long = 3

'Access types

Public Const ACCESS_READ As Long = &H1

Public Const ACCESS_WRITE As Long = &H2

Public Const ACCESS_CREATE As Long = &H4

Public Const ACCESS_EXEC As Long = &H8

Public Const ACCESS_DELETE As Long = &H10

Public Const ACCESS_ATRIB As Long = &H20

Public Const ACCESS_PERM As Long = &H40

Public Const ACCESS_ALL As Long = &H7F

Public Const WNTYPE_DRIVE As Long = 1

Public Const SHI_USES_UNLIMITED As Long = -1

'Info structures for NetShareAdd

Type SHARE_INFO_2

shi2_netname As String * 14

shi2_type As Long

shi2_remark As String 'Far pointer to string

shi2_permissions As Long

shi2_max_uses As Long

shi2_current_uses As Long

shi2_path As String 'Far pointer to string

shi2_passwd As String * 10

End Type

Type SHARE_INFO_50

shi50_netname As String

shi50_type As String

shi50_flags As Long

shi50_remark As String

shi50_path As String

shi50_rw_password As String

shi50_ro_password As String

End Type

'ACL for Security Descriptor

Public Type ACL

AclRevision As Byte

Sbz1 As Byte

AclSize As Integer

AceCount As Integer

Sbz2 As Integer

End Type

'Security Descriptor for SHARE_INFO_502

Public Type SECURITY_DESCRIPTOR

Revision As Byte

Sbz1 As Byte

Control As Long

Owner As Long

Group As Long

Sacl As ACL

Dacl As ACL

End Type

Type SHARE_INFO_502

shi502_netname As String

shi502_type As Long

shi502_remark As String

shi502_permissions As Long

shi502_max_uses As Long

shi502_current_uses As Long

shi502_path As String

shi502_passwd As String

shi502_reserved As Long

shi502_security_descriptor As SECURITY_DESCRIPTOR

End Type

Public Security As SECURITY_DESCRIPTOR

Public Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" _

(lpVersionInformation As OSVERSIONINFO) As Long

Public Declare Function lstrcpy Lib "kernel32" _

(ByVal lpString1 As Any, ByVal lpString2 As Any) As Long

'NT

Public Declare Function NetShareDelNT Lib "netapi32.dll" Alias "NetShareDel" _

(ByVal servername As Any, ByVal netname As String, ByVal reserved As Long) As Long

Public Declare Function NetShareAddNT Lib "netapi32.dll" Alias "NetShareAdd" _

(ByVal servername As Any, ByVal slevel As Long, _

buf As SHARE_INFO_502, ByVal cbbuf As Long) As Long

'9x

Public Declare Function NetShareDel9x Lib "svrapi.dll" Alias "NetShareDel" _

(ByVal servername As Any, ByVal netname As String, ByVal reserved As Long) As Long

Public Declare Function NetShareAdd9x Lib "svrapi.dll" Alias "NetShareAdd" _

(ByVal servername As Any, ByVal slevel As Long, buf As SHARE_INFO_50, ByVal cbbuf As Long) As Long

'====================

'ADD CODE TO FORM:

'====================

Option Explicit

Dim SI2 As SHARE_INFO_2

Dim SI502 As SHARE_INFO_502

Dim SI50 As SHARE_INFO_50

Dim OSVERInfo As OSVERSIONINFO

Dim ShareRemark As String

Dim SharePath As String

Dim nerr As Long

Dim nPath As String

Dim pwd As String

Dim ret As Long

Dim OS As Long

Private Sub Form_Load()

OSVERInfo.dwOSVersionInfoSize = Len(OSVERInfo)

OS = GetVersionEx(OSVERInfo)

Command1.Caption = "Create Share NT"

Command2.Caption = "Create Share Win9x"

Command3.Caption = "Delete Share"

End Sub

Private Sub Command1_Click()

'NT

On Error Resume Next

SetStrings

nerr = NetShareAddNT(0&, 2, SI502, ret)

Print nerr

End Sub

Private Sub Command2_Click()

'9x

On Error Resume Next

SetStrings

nerr = NetShareAdd9x(0&, 50, SI50, ret)

Print nerr

End Sub

Private Sub Command3_Click()

'Delete

On Error Resume Next

If OSVERInfo.dwPlatformId = 1 Then

nerr = NetShareDel9x(0&, nPath, 0&)

Else

nerr = NetShareDelNT(0&, nPath, 0&)

Print nerr

End If

End Sub

Public Sub SetStrings()

If OSVERInfo.dwPlatformId = 1 Then

'9x OS

nPath = "NewShare"

ShareRemark = "Remark for new share"

SharePath = "C:\dos"

pwd = "Share"

SI50.shi50_netname = nPath

SI50.shi50_path = SharePath

SI50.shi50_remark = ShareRemark

SI50.shi50_type = STYPE_DISKTREE

SI50.shi50_ro_password = vbNullChar

SI50.shi50_rw_password = vbNullChar

Else

'NT OS

nPath = StrConv("NewShare", vbUnicode)

ShareRemark = StrConv("Remark for new share", vbUnicode)

SharePath = StrConv("C:\dos", vbUnicode)

pwd = StrConv("Share", vbUnicode)

SI502.shi502_current_uses = 0

SI502.shi502_max_uses = 10

SI502.shi502_netname = nPath

SI502.shi502_passwd = pwd

SI502.shi502_path = SharePath

SI502.shi502_permissions = ACCESS_ALL

SI502.shi502_remark = ShareRemark

SI502.shi502_reserved = 0

SI502.shi502_security_descriptor = Security

SI502.shi502_type = STYPE_DISKTREE

End If

End Sub

بس انا للصراحة لا انصح بالحالات السابقة

ولكن أنصح بعمل آلية ftp تعمل مشاركه ftp للفولدر وبذلك تفتح الجهاز البعيد عن طريق الإكسبلورار

بالمختصر لو الجهاز البعيد نزل تحت إيدك كام يوم ممكن تجهزه للعمل وتستغني عن كثير من البرامج

وكما تعلم الأكس بي تدعم الدخول البعيد بشكل كبير

وحتى الثغرات الله يخليلنا ياها ويكتر من أمثالها حلوة جدا وكل هذا تسمح بالدخول البعيد وبدون حتى الوين سوك لول

طبعا ما أظن أن صناعة شي موجود مسبقا هو شيء جيد بس أظن أنك لو تستطيع تستفيد من الموجود هو أقوى

يعني أنت خدم برامج التحكم القويه الموجوده لك واصنع أي برنامج مو موجود من الأصل أو طور

يعني لا تعد إلى الخلف

برامج التحكم هذه موجوده بالانترنت بالكيلو بس أنت ساوي البرنامج اللي يخليك تشغل وتوقف برامج التحكم ورح تكون عملت إنجاز قوي جدا بوقت قياسي جدا

إن شاء الله كون جاوبت على سؤالك

بس أنا كنت مارر من هون ولقيت موضوع لفت انتباهي انا بحب كتير برامج الكلاينت سيرفر

وإذا بدك شي اتصل فيني :D

يالله سلام

#4

الأستاذ Yamanra

انا عاجز عن الشكر وفقك الله للمزيد

وسوف اقوم بتجريب الكود الذى أرسلته

والله انا اعرف ان الموضوع ليس سهلا كما انه محفوف بالعديد من المشاكل ولكن الضرورات تبيح المحظورات فهذا الموضوع ذو أهمية كبيرة لتدعيم برنامج بذلت فيه مجهود كبير وهو خاص بالحسابات ويعمل بكفائة لدى أكثر من منشأة وللأسف معظم البرامج التى قمت بتجريبها والموجود على النت رغم كثرة عددها لا تفى بالغرض بما فيه برنامج البى سى انى ويير .

وأخيرا اكرر شكرى لك مع خالص امنياتى لك بالتوفيق

كن كالنخيل عن الأحقاد مرتفعا .. يرمى بصخر فيرمى أطيب الثمر

#5

الأستاذ Yamanra

لو ممكن شرح الكود

وماهو الكود اللازم على جهاز الطرف الأخر حتى تتم المشاركة فى المجلد

ولك منى جزيل الشكر

كن كالنخيل عن الأحقاد مرتفعا .. يرمى بصخر فيرمى أطيب الثمر

#6

للرفع

كن كالنخيل عن الأحقاد مرتفعا .. يرمى بصخر فيرمى أطيب الثمر

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

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