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

كيف اجعل برنامجى يعمل مع بدا الوندوز

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

كيف اجعل برنامجى يعمل مع بدا الوندوز

ملحوظة انا اعلم انه يوجد موضوع فى المنتدى بنفس السؤال لكن لا اعلم لماذا البحث لا يظهر نتائج!!!!

Do you have dreams?

Do you think you can do anything and nothing impossibale?

Well think again , Dream less , and Never wish (Advice)!!

#2

السلام عليكم

إليك هذه الطريقة (قد لا تعتبر الأفضل لكن يمكنك الاعتماد عليها إلى حين إجاد طريقة أفضل)

بما أن طريقة عمل ذلك يكون في الـ Registry فأظن أنه من الأحسن أخذ مثال برنامج نعرف أنه يشتغل لدى بداية windows

نأخذ مثلا Yahoo Messenger

لدى الدخول إلى التشعب التالي:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg

نجد مفتاحا خاصا بـ Yahoo Messenger

نحفظ المفتاح في ملف reg

و هذا محتواه

Windows Registry Editor Version 5.00

 
  [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg\Yahoo! Pager]
  "key"="SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"
  "item"="YahooMessenger"
  "hkey"="HKCU"
  "command"="\"C:\\Program Files\\Yahoo!\\Messenger\\YahooMessenger.exe\" -quiet"
  "inimapping"="0"

و الآن يبقى تغيير الملف حسب احتياجات برنامجنا

و ليكن على سبيل المثال

 Windows Registry Editor Version 5.00

  [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg\ZiusReg]
  "key"="SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"
  "item"="ZiusProg"
  "hkey"="HKCU"
  "command"="\"C:\\Program Files\\Zius\\Zius.exe"
  "inimapping"="0"

لاحظ استعمال // للفصل بين أسماء المجلدات

و الآن double Click على الملف و من ثم أعد تشغيل الجهاز لتلاحظ النتيجة

ملاحظة: يمكنك عمل ذلك برمجيا الآن ما دمت تعرف أن يجب التغيير في registry

تم تعديل هذه المشاركة بواسطة djug في 4 يوليو 2008 في 22:35

#3

شكرا لك djug ولكن اريد الطريقة بالكود لن اطلب من عميل او صديقة اقوم بعمل برنامج له ان يفعل هذا بنفسة

Do you have dreams?

Do you think you can do anything and nothing impossibale?

Well think again , Dream less , and Never wish (Advice)!!

#4
Zius كتب:
شكرا لك djug ولكن اريد الطريقة بالكود لن اطلب من عميل او صديقة اقوم بعمل برنامج له ان يفعل هذا بنفسة

كما أشرت إليه

اقتباس
ملاحظة: يمكنك عمل ذلك برمجيا الآن ما دمت تعرف أن يجب التغيير في registry

لم أبرمج من قبل بالـ vb

لكن يتوجب عليك الآن البحث عن دوال التعامل مع الـ regitry و عمل مل تم ذكره فوق

كما أنه يوجد "نصف حل" آخر

آلا و هو مناداة ملف الـ reg المذكور فوق من برنامجك باستعمال الأمر

 regedit /s RegFilePath

أو الأمر

Reg import  RegFilePath
#5

مشكلة في بدء تشغيل البرنامج مع الويندوز

 Option Explicit
 
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
 
Private Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
 
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
Private Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As Any, phkResult As Long, lpdwDisposition As Long) As Long
 
Private Const READ_CONTROL = &H20000
Private Const KEY_QUERY_VALUE = &H1
Private Const KEY_SET_VALUE = &H2
Private Const KEY_CREATE_SUB_KEY = &H4
Private Const KEY_ENUMERATE_SUB_KEYS = &H8
Private Const KEY_NOTIFY = &H10
Private Const KEY_CREATE_LINK = &H20
Private Const KEY_READ = KEY_QUERY_VALUE + KEY_ENUMERATE_SUB_KEYS + KEY_NOTIFY + READ_CONTROL
Private Const KEY_WRITE = KEY_SET_VALUE + KEY_CREATE_SUB_KEY + READ_CONTROL
Private Const KEY_EXECUTE = KEY_READ
Private Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL
 
Private Const RunPath = "SoftwareMicrosoftWindowsCurrentVersionRun"
Private Const HKLM = &H80000002
 
' استخدم الامر التالي لالغاء التشغيل التلقائي
Public Sub DoNotRun(ProgramName As String)
Dim hKey As Long
Dim Ret As Long
 
' فتح المفتاح المطلوب
Ret = RegOpenKeyEx(HKLM, RunPath, 0, KEY_ALL_ACCESS, hKey)
 
' حذفها من مسجل النظام.
Ret = RegDeleteValue(hKey, ProgramName)
 
' إغلاق المفتاح
RegCloseKey hKey
End Sub
 
Public Sub RunWhenStartup(ProgramName As String, ProgramPath As String)
Dim hKey As Long
Dim Ret As Long
 
' فتح المفتاح المطلوب
Ret = RegOpenKeyEx(HKLM, RunPath, 0, KEY_ALL_ACCESS, hKey)
 
' إنشاء قيمة جديدة بإسم البرنامج وعنوانه.
Ret = RegSetValueEx(hKey, ProgramName, 0&, 1, ProgramPath, Len(ProgramPath)) 'LenB(StrConv(TheData, vbFromUnicode)) + 1)
 
' إغلاق المفتاح
RegCloseKey hKey
End Sub

تم تعديل هذه المشاركة بواسطة المبرمج أحمد في 4 يوليو 2008 في 23:24

سبحان الله وبحمده ... سبحان الله العظيم

#6

السلام عليكم...

حل بسيط آخر: عند إعداد معالج التركيب (Setup Wizard) أنشئ اختصاراً (Link or Shortcut) للملف التنفيذي (Exe) الخاص بالبرنامج في قائمة "بدء التشغيل" (Startup).

نرجو الاستفادة و السلام.

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#7

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

جرب المثال الموجود بالمرفقات

واذا كنت تنوي القيام بعمل حزمة تنصيب للبرنامج بتاعك لو حاتستخدم برنامج setup factory اليك صورة بالمرفقات توضح كيفية عمل ذلك

سبحان الله وبحمده - سبحان الله العظيم

StartUp.rar

post-108004-1215634279_thumb.jpg

ما زال الرجل عالما طالما يتحري العلم فان قال علمت ........ فقد جهل

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