اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

الردود الموصى بها

قام بنشر

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

اخواني الاكارم

ما يقلق المبرمج عادة عند انتهاء مشروع من مشاريعه الا الملفات التشغيلية المصاحبة للبرنامج والحصول على المساعدة اللازمة لتركيبها ثم تشغيلها

والتركيب والتسجيل اليدوي مزعج حتى للمبرمج فكيف بالمستخدم العادي

لذا فجعل البرنامج عند التنصيب هو الذي يقوم بالمهمة  مطلب ضروري ، وهو ما سنتطرق له في هذا الموضوع

علما  انه يوجد من تطرق لهذا الموضوع في هذا المنتدى وغيره ولكن لكل موضوع خصوصيته وطريقته فأتمنى ان تجدوا اضافة ومعلومة جديدة  في هذا الموضوع وبالله التوفيق

 

يتبع ...

 

  • Like 1
قام بنشر

وعليكم السلام ورحمة الله وبركاته

نعم كلامك صحيح

خاصة وأن هناك اصدارات ويندوز مختلفة وكذلك أكسس وكذلك ملفات مكتبات التشغيل

لذلك فتصميم برنامج يقوم بهذا العمل تلقائيا هو الحل الأمثل

 

قام بنشر
أولا : المعوقات
 درجة أمان windows
حيث لا يمكننا إضافة أو تسجيل ملفات حين تكون درجة امان حساب المستخدم مرتفعة
وحتى لو قمنا بتركيبها يدويا فلن يتسنى لنا ذلك الا بعد تخفيض الأمان الى الحد الأدنى ثم اعادة تشغيل النظام
وهنا يتبادر سؤال : 
ماذا لو كان الامان على الحد الأدنى ؟ كيف نعلم ذلك ؟ وهل سيختلف الاجراء ؟
إذا :
يجب اولا التأكد من درجة الامان فإن كان منخفضا حينها تتم خطوات التنصيب  
والا سيقوم البرنامج بتخفيض الامان ثم يعيد تشغيل النظام
 
وهنا يتبادر تساؤل ايضا :
هل سيبقى الامان منخفضا ؟ وهل يجب علينا اخبار المستخدم بالوضع الحالي ؟
أم انه يلزمنا اعادة الامان الى وضعه السابق ؟
 
كل هذه الامور تجعلنا _ وبالاصح تجعلني_ أفضل ان يقوم المستخدم  بالعملية  بنفسه حيث انها لا تأخذ من المستخدم سوى نقرتين فقط واحدة على زر ابدأ والثانية على صورة المستخدم ليجد أمامه اعدادات التحكم في حسابه .
 
والآن الى الخطوات :
 7 windows
قراءة حساب المستخدم ودرجة الأمان :
Dim objWShell, objReead
Set objWShell = CreateObject("WScript.Shell")
objReead = objWShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA")

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

 

If objReead = "1" Then
objWShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA", 0, "REG_DWORD"
Else
Exit Sub
End If

ويمكن عكس الوضع :

اذا كانت درجة الامان مرتفعه نقوم بتخفيضها وإلا نرفعها

If objReead = "1" Then
objWShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA", 0, "REG_DWORD"
Else
objWShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA", 1, "REG_DWORD"
End If

يأتي الآن دور تثبيت التغيير ويتحقق بإعادة تشغيل النظام

ويمكن تخيير المستخدم  بين التنفيذ من عدمه :

 

If MsgBox("سيتم إعادة تشغيل النظام" & vbCrLf & _
    "        هل تريد المتابعة؟", _
    vbQuestion + vbYesNo, _
    "اعادة تشغيل النظام") = vbNo Then
 Exit Sub
Set objWShell = Nothing
 Else
objWShell.Run "shutdown /r /t 10 /f /d P:4:2"
Set objWShell = Nothing
End If

انتهينا

 

يتبع ...

  • Like 2
قام بنشر (معدل)

أنا أرى أن البرنامج المقترح يجب أن يكون تنفيذي exe

ويقوم بكل شيئ تلقائيا دون تدخل المستخدم مطلقا

ويكون البرنامج شامل لكل المكتبات التشغيلية التي يتطلبها الأكسس

تم تعديل بواسطه amir2008amir
قام بنشر

أنا أرى أن البرنامج المقترح يجب أن يكون تنفيذي exe

ويقوم بكل شيئ تلقائيا دون تدخل المستخدم مطلقا

ويكون البرنامج شامل لكل المكتبات التشغيلية التي يتطلبها الأكسس

يسرني مشاركتك  في الدرس فالمطلب والغاية واحدة

ولكني اتلطف اليك لو منحت نفسك اسما عربيا  يسرك سماعه كي نناديك به وحتى يحسن النقاش

تفضل من هنا  http://www.officena.net/ib/index.php?showtopic=41520

قام بنشر

وعلى هذا درسنا السابق لم ينته بعد

واصبح الحديث ذو شجون

 

حتى اني فكرت بتغيير العنوان من باب حسن الدلالة والوصف

ثم اذا تطرقنا الى المكتبات وتسجيلها احيل القارىء الى هذا العنوان

قام بنشر

انا جاهز

دفتري و اقلامي وجهاز الحاسوب

أجلس أتعلم مما فتح الله به على استاذي

مهما كان الدرس ومداه ، ومهما كان الإسم ووصف الدلالة ... أنا بالانتظار

فتح الله عليك شيخي

 

بالانتظار ....

 

.....

قام بنشر

اخي و استاذي ابا خليل

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

واجهتني هذه المشكلة كثيرا و وجت الحل عند احد الاصدقاء

يتم وضع هذا الكود في نموذج بداية التشغيل

On Error GoTo ErrSub


With Access.References
.AddFromFile "C:\Windows\System32\mscomctl32.ocx"
.AddFromFile "C:\Windows\System32\wshom.ocx"
End With

MsgBox "all library was updated", vbInformation + vbMsgBoxRight

ErrSub:
If Err.Number = 32813 Then
Resume Next
ElseIf Err.Number <> 0 Then
MsgBox Err.Number & vbCrLf & Err.Description, vbCritical
End If

قام بنشر

انا جاهز

دفتري و اقلامي وجهاز الحاسوب

أجلس أتعلم مما فتح الله به على استاذي

مهما كان الدرس ومداه ، ومهما كان الإسم ووصف الدلالة ... أنا بالانتظار

فتح الله عليك شيخي

 

بالانتظار ....

 

.....

حقيقة لا اجد ما اقوله لأستاذنا وشيخنا ابي آدم  

ولكن سروري لا يوصف  انه  ينتظر :

 للتقويم .. والتقييم .. ومد يد العون

 

أخي محمد أيمن جزاك الله خير

سندرج الكود المذكور عند الحاجة الى اضافة مراجع معينة

وقلت عند الحاجة  : لان بعض المكتبات تعمل من دون اضافة مرجعها الى اكسس ( فقط يكفي تسجيلها في وندز )

ايضا هناك ملحوظة وهي ان الكود لن يعمل الا بحال وجود المكتبة داخل ملف النظام وهنا مربط الفرس

قام بنشر

أنا أرى أن البرنامج المقترح يجب أن يكون تنفيذي exe

ويقوم بكل شيئ تلقائيا دون تدخل المستخدم مطلقا

ويكون البرنامج شامل لكل المكتبات التشغيلية التي يتطلبها الأكسس

 

 

اخونا امير شكرا لاجابة الدعوة 

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

وايضا يبدو انك على جانب لا بأس به من الخبرة  فلا تبخل علينا جزيت خيرا

 

نرجع لدرسنا :

وما زلنا في المعوقات :

ذكرنا اننا نستطيع فحص الامان في وندز   فان كان منخفضا اكملنا تنصيب برنامجنا  ، وان كان مرتفعا خفضناه ثم اعدنا تشغيل النظام

وقد عرضنا الكود المسؤول عن هذه العمليات . 

 

لنفرض ان امان وندز كان مرتفعا فقمنا بخفضه ثم اعادة التشغيل

المطلوب :

وهذا الطلب منطقي _وحيث لا يحضرني منه شيء الآن _ فهو للجميع  ، كل يدلي بدلوه  

نريد ان يفتح النظام على برنامجنا حتى نستكمل التنصيب ؟

قام بنشر

 جزاك الله كل خير استاذنا الغالي و بارك الله فيك

 

 

أخي محمد أيمن جزاك الله خير

سندرج الكود المذكور عند الحاجة الى اضافة مراجع معينة

وقلت عند الحاجة  : لان بعض المكتبات تعمل من دون اضافة مرجعها الى اكسس ( فقط يكفي تسجيلها في وندز )

ايضا هناك ملحوظة وهي ان الكود لن يعمل الا بحال وجود المكتبة داخل ملف النظام وهنا مربط الفرس

 

الكود للاستاذة القديرة زهرة العبدلله

Dim SourceFile, DestinationFile
SourceFile = Application.CurrentProject.Path & "\Rockey4ND.dll"
DestinationFile = "c:\windows\system32\Rockey4ND.dll"
FileCopy SourceFile, DestinationFile
MsgBox ("تم النسخ بنجاح")

 

لنفرض ان امان وندز كان مرتفعا فقمنا بخفضه ثم اعادة التشغيل

المطلوب :

وهذا الطلب منطقي _وحيث لا يحضرني منه شيء الآن _ فهو للجميع  ، كل يدلي بدلوه  

نريد ان يفتح النظام على برنامجنا حتى نستكمل التنصيب ؟

 

لماذا لا نقوم بانهاء التنصيب ثم نخفض الأمان ثم نقوم باعادة التشغيل

  • Like 1
قام بنشر

اخي العزيز 

الكود معروف وهذا مصدره http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.filesystem.filecopy.aspx

 

وقد تكون جربته على xp  ولكن على win7 لن يعمل حتى تتمكن من تعديل حساب المستخدم وتقوم بتخفيض الأمان الى الحد الادنى

لماذا لا نقوم بانهاء التنصيب ثم نخفض الأمان ثم نقوم باعادة التشغيل

يبدو ان الامر التبس عليك 

فما دام التنصيب قد تم  فليس هناك داع لخفض الأمان  

ام تقصد ان اضافة المكتبات وتسجيلها يتم بعد التنصيب ؟  عند تشغيل البرنامج لأول مرة ؟

دعنا نسير في طريقك هذا :

عند تشغيل البرنامج لاول مرة  سيتم خفض الامان ثم اعادة تشغيل النظام 

انتبه ! حتى الآن لم نقم باضافة وتسجيل المكتبات 

ثم ماذا ؟  طبعا سنقوم بتشغيل البرنامج للمرة الثانية للتسجيل

ثم بقيت حقوق المستخدم : فمن حقه ارجاع نظامه الى ما كان عليه 

  وبهذه الطريقة ينقطع الحبل لاننا في مطلبنا اعلاه نريد النظام ان يقلع من برنامجنا

قام بنشر

كنت وقفت عند اعادة تشغيل النظام  

وما دام خط سيرنا اخذ وجهة  اخرى فسأوجز هنا العناصر والخطوات التي  نسير عليها  وأسأل ربي العون على ذلك

1- قراءة حساب المستخدم ودرجة الأمان

2- ان كان الامان منخفضا  فسنكمل تنصيب برنامجنا  .. وكفينا.. وعوفينا

3- ان كان الامان مرتفعا يقوم البرنامج بتخفيضه ثم يعيد تشغيل النظام

4- سيقلع النظام بعد اعادة التشغيل على برنامجنا  ويفتح النموذج الهدف  

5- يتم اضافة المكتبات وتسجيلها واكمال تنصيب البرنامج

6 - اعادة الامان الى وضعه السابق

7- اعادة تشغيل النظام ( اختياري )

 

بقي شيء صغير جدا بحاجة الى تصور ، حتى نمسك خطام البعير ونسير

قام بنشر
أبـوخليل : جزيت خيرا ، وأنا أتعلم منكم في هذا المنتدى

خاصة هذه المعلومة الهامة :

"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA", "0", "REG_DWORD"

 

فمنذ فترة صممت برنامجا لتسجيل المكتبات التشغيلية وكان يعمل بامتياز عندي لكن في أجهزة أخرى كانت هناك رسائل خطأ

ولم أكن أعلم موضوع EnableLUA

 

حسب فهمي للموضوع أعتقد أنكم تريدون برنامج تنفيذي exe بأي لغة من اللغات

يكون مثلا في صورة إعداد لقاعدة البيانات على جهاز المستخدم

ويحتوى على قاعدة البيانات

 

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

 

 

أبـوخليل

وما دام خط سيرنا اخذ وجهة  اخرى فسأوجز هنا العناصر والخطوات التي  نسير عليها  وأسأل ربي العون على ذلك

1- قراءة حساب المستخدم ودرجة الأمان

2- ان كان الامان منخفضا  فسنكمل تنصيب برنامجنا  .. وكفينا.. وعوفينا

3- ان كان الامان مرتفعا يقوم البرنامج بتخفيضه ثم يعيد تشغيل النظام

4- سيقلع النظام بعد اعادة التشغيل على برنامجنا  ويفتح النموذج الهدف  

5- يتم اضافة المكتبات وتسجيلها واكمال تنصيب البرنامج

6 - اعادة الامان الى وضعه السابق

7- اعادة تشغيل النظام ( اختياري )

 

 

الخطوات من 1 إلى 6 منطقية التسلسل ورائعة وتنفيذها متاح برمجيا

لكن احب اسجل بعض المقترحات للنقاش :

- الخطوة السابعة أعتقد غير ضرورية للتقليل من رسائل اعادة التشغيل للمستخدم

- بطريقة ما يكون هناك مكان داخل البرنامج لا يدخله سوى المبرمج ويحدد فيه المكتبات التشغيلية المطلوبة التي سوف يتم اعدادها تلقائيا عند جهاز المستخدم

 

 

قام بنشر

حسب فهمي للموضوع أعتقد أنكم تريدون برنامج تنفيذي exe بأي لغة من اللغات

يكون مثلا في صورة إعداد لقاعدة البيانات على جهاز المستخدم

ويحتوى على قاعدة البيانات

 

 

بل التحكم من برنامجنا

لان معظم برامج التحزيم تشتمل على خاصية تشغيل نموذج البداية

ولا بأس في اقتراحك حول النقطة السابعة ، علما ان الكود سيكون موجودا في مكانه لمن اراد تشغيله او تعطيله

قام بنشر

على بركة الله وهو المستعان

 

... جزيت خيراً ...

شكرا ابا آدم على المتابعة والمساندة 
 
بقي شيء صغير جدا بحاجة الى تصور

 

 

وهو تسجيل بعض النتائج المهمة في الحدث . ويهمنا هنا  درجة الامان ، فلا بد من شاهد او دليل على درجة الامان الابتدائية
فحين يغلق النظام تذهب جميع البيانات العالقة في الذاكرة ، وهذه لا بد من اخذ حسابها من اجل ضبط العملية
لذا سيكون من ضمن الكائنات المساعدة حقل في جدول نودع فيه درجة الامان قبل اغلاق النظام 
لذا سننشء جدولا باسم tblTemp  به حقل رقمي باسم  tmp  
 
دعونا الآن نعرض الاجراءات الاخرى  التي سنستخدمها في العملية غير ما تم ذكره اعلاه
 
 
1- وحدة نمطية عامة وهي المسؤولة عن تسجيل المكتبات :
Option Compare Database
Option Explicit
Private Declare Function LoadLibraryA Lib "kernel32" (ByVal lLibFileName As String) As Long
Private Declare Function CreateThread Lib "kernel32" (lThreadAttributes As Any, ByVal lStackSize As Long, ByVal lStartAddress As Long, ByVal larameter As Long, ByVal lCreationFlags As Long, lThreadID As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal lMilliseconds As Long) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lProcName As String) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function GetExitCodeThread Lib "kernel32" (ByVal hThread As Long, lExitCode As Long) As Long
Private Declare Sub ExitThread Lib "kernel32" (ByVal lExitCode As Long)


'Purpose   :    This function registers and Unregisters OLE components
'Inputs    :    sFilePath                       The path to the DLL/OCX or ActiveX EXE
'               bRegister                       If True Registers the control, else unregisters control
'Outputs   :    Returns True if successful
'Author    :    Andrewb
'Date      :    04/09/2000
'Notes     :    This is the API equivalent of RegSvr32.exe.
'Example   :
'               If RegisterComponent("C:\MyPath\MyFile.dll") = True Then
'                   Msgbox "Component Successfully Registered"
'               Else
'                   Msgbox "Failed to Registered Component"
'               End If
'Revisions :    1/Jan/2002. Updated to include code for registering ActiveX Exes.


Function RegisterComponent(ByVal sFilePath As String, Optional bRegister As Boolean = True) As Boolean
    Dim lLibAddress As Long, lProcAddress As Long, lThreadID As Long, lSuccess As Long, lExitCode As Long, lThread As Long
    Dim sRegister As String
    Const clMaxTimeWait As Long = 20000     'Wait 20 secs for register to complete
    
    On Error GoTo ErrFailed
    If Len(sFilePath) > 0 And Len(Dir(sFilePath)) > 0 Then
        'File exists
        If UCase$(Right$(sFilePath, 3)) = "EXE" Then
            'Register/Unregister ActiveX EXE
            If bRegister Then
                'Register EXE
                Shell sFilePath & " /REGSERVER", vbHide
            Else
                'Unregister ActiveX EXE
                Shell sFilePath & " /UNREGSERVER", vbHide
            End If
            RegisterComponent = True
        Else
            'Register/Unregister DLL
            If bRegister Then
                sRegister = "DllRegisterServer"
            Else
                sRegister = "DllUnRegisterServer"
            End If
            
            'Load library into current process
            lLibAddress = LoadLibraryA(sFilePath)
            
            If lLibAddress Then
                'Get address of the DLL function
                lProcAddress = GetProcAddress(lLibAddress, sRegister)
                If lProcAddress Then
                    lThread = CreateThread(ByVal 0&, 0&, ByVal lProcAddress, ByVal 0&, 0&, lThread)
                    If lThread Then
                        'Created thread and wait for it to terminate
                        lSuccess = (WaitForSingleObject(lThread, clMaxTimeWait) = 0)
                        If Not lSuccess Then
                            'Failed to register, close thread
                            Call GetExitCodeThread(lThread, lExitCode)
                            Call ExitThread(lExitCode)
                            RegisterComponent = False
                        Else
                            'Successfully registered component
                            RegisterComponent = True
                            Call CloseHandle(lThread)
                        End If
                    End If
                    Call FreeLibrary(lLibAddress)
                Else
                    'Object doesn't expose OLE interface
                    Call FreeLibrary(lLibAddress)
                End If
            End If
        End If
    End If
    Exit Function


ErrFailed:
    Debug.Print Err.Description
    Debug.Assert False
    On Error GoTo 0
End Function

2- وحدة نمطية لقراءة نوع النظام  32بت أو 64بت

 

Public Function IsWin32OrWin64() As String
    Dim proc_query As String
    Dim proc_results As Object
    Dim info As Object
    
    proc_query = "SELECT * FROM Win32_Processor"
    Set proc_results = GetObject("Winmgmts:").ExecQuery(proc_query)
    For Each info In proc_results
        IsWin32OrWin64 = info.AddressWidth & "-bit"
    Next info
End Function

 

3- وحدة نمطية للتأكد من وجود الملف قبل النسخ واللصق :

Public Function DoesFileExist(vPathAndFile As String) As Boolean
     If Len(Dir$(vPathAndFile)) > 0 Then DoesFileExist = True Else DoesFileExist = False
End Function
 

 

4- وحدة نمطية تقوم بنسخ الملفات من برنامجنا الى المكان الذي نحدده 
Function CopyFile(vPathSource As String, vPathDestination As String) As Boolean
    FileCopy vPathSource, vPathDestination
    CopyFile = True
End Function
 

 

5- عملية النسخ والتسجيل وتم وضعها في وحدة نمطية عامة :

Public Function tsjeelMktbat()
Dim sjel As Variant
 sjel = IsWin32OrWin64()
    If sjel = "32-bit" Then
     If Not DoesFileExist("C:\Windows\System32\Barcodex.ocx") Then 'للتأكد من عدم وجود الملف
     CopyFile CurrentProject.Path & "\Barcodex.ocx", "C:\Windows\System32\Barcodex.ocx" 'نسخ الملف في المكان المحدد
     RegisterComponent ("C:\Windows\System32\Barcodex.ocx") 'تسجيل الملف
      Else
     RegisterComponent ("C:\Windows\System32\Barcodex.ocx") ' وان كان الملف موجود سجله
       End If                    'يمكن اضافة اكثر من ملف اعلاه
      ElseIf sjel = "64-bit" Then
     If Not DoesFileExist("C:\Windows\SysWOW64\Barcodex.ocx") Then
     CopyFile CurrentProject.Path & "\Barcodex.ocx", "C:\Windows\SysWOW64\Barcodex.ocx"
     RegisterComponent ("C:\Windows\SysWOW64\Barcodex.ocx")
      Else
     RegisterComponent ("C:\Windows\SysWOW64\Barcodex.ocx")
     End If
  End If
End Function
 

يتبع ...

  • Like 3
قام بنشر

وإياك أخي أبا عمر .. سعدت بمرورك

 

تابع الاجراءات :

نحن بحاجة الى كود يجعل النظام يقلع من برنامجنا عند اعادة التشغيل  ’ بشرط الا يعمل الا مرة واحدة 

ويوجد طريقة برمجية يستخدمها البعض وهي نسخ اختصار للبرنامج ولصقه في مجلد بدء التشغيل  ثم حذفه عند نهاية التنصيب  

ولكن يوجد طريقة أسهل من ذلك وهي موجودة ومهيأة  في النظام وبالتحديد في التسجيل (الريجستري)

فيمكن اعطاء امر وتسجيله ليقوم النظام بتنفيذه مرة واحدة عند بداية التشغيل

وهذا هو المكان الذي سنضع فيه الأمر

"HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce

ليصبح بعد اعداده والكتابة فيه هكذا :

objWShell.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce\tsj", "D:\tsjeel.mdb", "REG_SZ"

باعتبار برنامجنا سيتم تنصيبه على D باسم  tsjeel

 

يتبع ...

  • Like 3
قام بنشر

وهذه هي الصيغة النهائية للعمل :

 

Dim objWShell, objReead
' On Error Resume Next
Set objWShell = CreateObject("WScript.Shell")
objReead = objWShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA")
If objReead = "0" And Me.tmp = "0" Then
Call tsjeelMktbat
Set objWShell = Nothing
MsgBox "تم التنصيب واضافة ملفات النظام بنجاح"
Exit Sub
ElseIf objReead = "1" And Me.tmp = "0" Then
objWShell.RegWrite "HKLM\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA", 0, "REG_DWORD"
Me.tmp = "1"
objWShell.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce\tsj", "D:\tsjeel.mdb", "REG_SZ"
objWShell.Run "shutdown /r /t 10 /f /d P:4:2" 'visit:    http://pcsupport.about.com/od/commandlinereference/p/shutdown-command.htm
Set objWShell = Nothing
Exit Sub
Else
Call tsjeelMktbat
objWShell.RegWrite "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA", "1", "REG_DWORD"
MsgBox "تم التنصيب واضافة ملفات النظام بنجاح"
'If MsgBox("سيتم إعادة تشغيل النظام" & vbCrLf & _
'    "        هل تريد المتابعة؟", _
'    vbQuestion + vbYesNo, _
'    "اعادة تشغيل النظام") = vbNo Then
' Exit Sub
'Else
'objWShell.Run "shutdown /r /t 10 /f /d P:4:2"
Set objWShell = Nothing
'End If
End If

وهذا هو التطبيق

tsjeel.rar

  • Like 2
قام بنشر (معدل)

وهذا التطبيق لمن يريد اضافة المكتبات وتسجيلها فقط

 

ملحوظة : يجب ان تكون ملفات المكتبات بجانب البرنامج في مجلد واحد

tsjeel2.rar

تم تعديل بواسطه أبـوخليل
اصلاح المرفق حيث يوجد خلل في توقيت الحدث (شكرا لأبي آدم للتنبيه)
  • Like 2
  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information