طريقة لنشر و تحديث برنامجك على الشبكة المحلية عن طريق برنامج فيجوال بيزيك بسيط وبطريقة سهلة واليكم الفكرة
لدينا الان مجلد على اجهزة المستخدمين به قاعدة البيانات وملف نصي به رقم الاصدار Y
ومجلد على الشبكة المحلية به قاعدة البيانات وملف نصي به ملف الاصدار X وبرنامج صغير بالفيجوال بيزك ليس له فورم نقوم بوضع Shortcut منه على سطح مكتب جميع المستخدمين
وسيكون هذا وسيلتهم لفتح قاعدة البيانات
شرح البرنامج
يقوم البرنامج بالبحث عن مجلد قاعدة البيانات على جهاز المستخدم وان لم يجده ينشئه وينسخ به قاعدة البيانات وملف الاصدار من الشبكة المحلية ويشغل القاعدة من جهاز المستخدم ويغلق نفسه
اذا وجد المجلد يفتح ملف الاصدار على الجهاز وملف الاصدار على الشبكة ويقارن اذا لم يجد اى فرق يشغل القاعدة من جهاز جهاز المستخدم ويغلق نفسه
اذا وجد ان ملف الاصدار على الشبكة ( رقم اكبر) من ملف الاصدار على جهاز المستخدم يقوم بنسخ قاعدة البيانات ورقم الاصدار الجديد من الشبكة المحلية ويشغل القاعدة من جهاز المستخدم ويغلق نفسه
بس خلاص
الان عليك كلما قمت بتحديث ملف الاكسس ان تفتح ملف رقم الاصدار وتزيد الرقم الموجود به واترك مهمة نشره على البرنامج
كود البرنامج
Imports System.IO
Friend Class Form1
Inherits System.Windows.Forms.Form
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Integer, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Integer) As Integer
Private Sub Form1_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
Dim dd As String
Dim ff As String
Dim h As String
h = Dir("c:\datagard\y.ini")
If h = "" Then
MkDir("c:\datagard")
FileCopy((My.Application.Info.DirectoryPath & "\gard.mdb"), ("c:\datagard\gard.mdb"))
FileCopy((My.Application.Info.DirectoryPath & "\x.ini"), ("c:\datagard\y.ini"))
End If
Dim txdt As New StreamReader(My.Application.Info.DirectoryPath & "\x.ini")
ff = txdt.ReadLine
txdt.Close()
Dim txdt2 As New StreamReader("c:\datagard\y.ini")
dd = txdt2.ReadLine
txdt2.Close()
If Int(ff) > Int(dd) Then
FileCopy((My.Application.Info.DirectoryPath & "\gard.mdb"), ("c:\datagard\gard.mdb"))
FileCopy((My.Application.Info.DirectoryPath & "\x.ini"), ("c:\datagard\y.ini"))
Beep()
MsgBox("تم العثور على تحديث للبرنامج الخاص بك " & vbCrLf & "تم التحديث", MsgBoxStyle.Exclamation + MsgBoxStyle.OkOnly + MsgBoxStyle.MsgBoxRtlReading, "برامج الخشاب")
End If
Dim hWnd As Integer
Dim Ret As Integer
Ret = ShellExecute(hWnd, "Open", "c:\datagard\gard.mdb", "", "", 1)
End
End Sub
End Class