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

البحث في الموقع

Showing results for tags 'semo.pa3x'.

  • Search By Tags

    اكتب الكلمات المفتاحيه بينها علامه الفاصله
  • Search By Author

نوع المحتوي


الاقسام

  • الترحيب
  • قسم تطبيقات و لغات مايكروسوفت
    • قنوات تعليمية شخصية و دورات تدريبية مجانية و مدفوعة
    • إعلانات شخصية بأجر للاعضاء
    • المنتدى المفتوح
    • منتدى الاكسيل Excel
    • قسم الأكسيس Access
    • دعم أنظمة الويندوز المختلفة
    • منتدي الوورد Word
    • منتدى الباوربوينت
    • منتدى الاوتلوك Outlook
    • منتدى الفيزيو Visio
    • منتدي مايكروسوفت بروجكت Ms Project
    • منتدى الفرنت بيج العام Frontpage
    • تطبيقات Power Apps
    • وان نوت One Note
    • الناشر بابليشر Publisher
    • Communicator
    • Expression Web
    • SQL Server
    • VB.net
    • C#.net
    • Asp.net
  • الغات و أدوات البرمجة الأخرى
    • حوارات الويب العامة
    • Delphi
    • PHP
    • برمجة الاندرويد
  • أقسام الإدارة و إدارة المشاريع و تطبيقاتها
    • الاستراتيجية وإدارة محافظ المشاريع
    • إدارة المشاريع
    • Scaled Agile SAFe
    • إدارة الجودة
    • القيادة و تنمية المهارات
    • Primavera Enterprise
    • Primavera 3.1
  • البحث العلمي و علوم البيانات
    • مناهج البحث العلمي
    • علم الإحصاء
    • الذكاء الإصطناعي و التنقيب فى البيانات
    • Orange
    • R
    • SPSS
    • Python
  • القسم العام
    • مشاركات المدونات
    • نرحب بزوار الموقع
    • قسم الاقتراحات و الملاحظات
    • أوفيسنا على الفيسبوك

الاقسام

  • VBA Code Library
  • قسم الإكسيل
  • قسم الأكسيس
  • قسم الوورد
  • Project Management
  • Self development التطويرالذاتي
  • EFQM & DGEP
  • معلومات مفيدة
  • أدوات عامة

مدونات

  • M-Taher's Blog
  • مدونة محمد طاهر
  • Officena
  • اا الفاروق اا
  • ‎مدونة أخبار التكنولوجيا
  • M-Taher's Blog
  • يحيى حسين's Blog
  • خبور خير's Blog
  • Dr. AbdelMalek Abu Sheikh's Blog
  • m.hindawi's Blog
  • احمدزمان's Blog
  • الحسامي
  • مدونة أ / محمد صالح
  • yahiaoui's Blog
  • عبدالله المجرب's Blog
  • صيد الخواطر
  • حمادة عمر مدونة
  • مدونة جعفر
  • مدونة عادل حنقي
  • مجدى يونس: لمسة وفاء لمنتدى اوفيسنا
  • Excel Expert Financial&Accounting
  • مدونة اعمال ايقونات الماس لمنتدى اوفيسنا
  • رقائق فى دقائق
  • Shivan Rekany

ابحث عن النتائج فى ......

ابحث عن النتائج التي تحوي ....


تاريخ الانشاء

  • بدايه

    End


اخر تحديث

  • بدايه

    End


Filter by number of...

انضم

  • بدايه

    End


مجموعه


Job Title


البلد


الإهتمامات


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype

  1. السلام عليكم ورحمة الله وبركاته.. اليوم سأشرح لكم الدالة StrConv ولأي الامور تستخدم. الدالة حصرا تتعامل مع النصوص ( String ) ووضيفتها التحويل بين الاحرف الانجليزية ( كبير , صغير ) الدالة تأخذ 3 براميترات: البراميتر القيمة الوصف vbUpperCase 1 تحويل جميع الحروف الى حروف كبيرة vbLowerCase 2 تحويل جميع الحروف الى حروف صغيرة vbProperCase 3 تحويل الحرف الاول من كل كلمة الى كبير وباقي حروف الكلمة الى حروف صغيرة vbUnicode 64 تحويل النص الى سلسلة الـ UNICODE vbFromUnicode 128 تحويل النص من سلسلة UNICODE الى تنسيقات اخرى مثال: StrConv ("officena semo pa3x", 1) Result: "OFFICENA SEMO PA3X" StrConv ("OFFICENA SEMO PA3X", 2) Result: "officena semo pa3x" StrConv ("OFFICENA SEMO PA3X", 3) Result: "Officena Semo Pa3x" الاستخدام في الاستعلام يكون: الاستخدام في داخل محرر الـ VBA يكون: StrConv([CategoryName],3) تحياتي للجميع.. SEMO.Pa3x
  2. في كثير من الاحيان، نلجأ الى استخدام الدالة IF أو غيرها من دوال الشروط للتحقق من قيم رقمية. ملاحظة: الدالة تتحقق من الارقام فقط. مثلا لو كان الحقل يتحوي القيمة 1 اظهر لي رسالة جيد واذا كان الحقل يحتوي القيمة 2 اظهرلي رسالة متوسط واذا كان الحقل يحتوي القيمة 3 اظهر لي رسالة ضعيف في الوضع الطبيعي VBA داخل النماذج يكون If txt_Status = 1 Then MsgBox "جيد" ElseIf txt_Status = 2 Then MsgBox "متوسط" ElseIf txt_Status = 3 Then MsgBox "ضعيف" Else MsgBox "لا توجد قيمة مطابقة" End If وفي الاستعلام يكون Check_Value: IIf([text_Status]=1;"جيد";IIf([text_Status]=2;"متوسط";IIf([text_Status]=3;"ضعيف";"لا توجد قيمة مطابقة"))) اما الدالة Choose مختصرة وسهلة اكثر. Nz(Choose(txt_Status, "Good", "Semi-Good", "Bad"), "No Value !") تقوم الدالة بعرض مكان القيمة الصحيحة بين القيم الموضوعه حسب الحقل الموجود txt_Status تحياتي لكم. حسنين
  3. السلام عليكم ورحمة الله وبركاته.. في الوضع الطبيعي الاكسس يعطينا فقط مجموعة الوان عند تنسيقها في الكود Constant Value Description vbBlack 0x0 Black vbRed 0xFF Red vbGreen 0xFF00 Green vbYellow 0xFFFF Yellow vbBlue 0xFF0000 Blue vbMagenta 0xFF00FF Magenta vbCyan 0xFFFF00 Cyan vbWhite 0xFFFFFF White ولكن كثيراً ما نريد ان نقوم بإختيار الواناً غير التي موجودة في الاعلى مثلا اللون الفسفسوري غير موجود في القائمة. قمنا باخذ قيمة اللون الفسفوري من احد برامج تعديل الصور وليكن مثلا الفوتوشوب لكن احيانا تواجهنا مشاكل ورسائل مزعجة من الاكسس عند وضع الالوان عن طريق VBA مثلا انا دائما ماكانت تصادفني رسالة مزعجة Expected Array عندما اقوم بوضع اللون بالصورة الاتية: txt_name.BackColor = RGB(20,30,60) تظهرلي هذه الرسالة: فكرت في تحويل اللون من HEX الى OLE ، وقد تم تغيير اللون بنجاح وبدون اي رسائل خطأ Public Function HEX2OLE(ByVal hexValue As String) As Long Dim R, G, B As Long If Left(hexValue, 1) = "#" Then hexValue = Replace(hexValue, "#", "") R = CByte("&H" & Left(hexValue, 2)) G = CByte("&H" & Mid(hexValue, 3, 2)) B = CByte("&H" & Mid(hexValue, 5, 2)) HEX2OLE = CLng(R + (G * 256) + (B * 65536)) End Function بالتوفيق للجميع. HEX_2_OLE.accdb
  4. السلام عليكم.. موديول لـ InputBox لجعل الكتابة تظهر على شكل نجوم لمساعدتك في حماية كلمات السر او ماشابه. '---------------------------------- 'API CONSTANTS FOR PRIVATE INPUTBOX '---------------------------------- Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, _ ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" _ (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long Private Declare Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" _ (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, _ ByVal lpClassName As String, ByVal nMaxCount As Long) As Long Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long 'Constants to be used in our API functions Private Const EM_SETPASSWORDCHAR = &HCC Private Const WH_CBT = 5 Private Const HCBT_ACTIVATE = 5 Private Const HC_ACTION = 0 Private hHook As Long '---------------------------------- 'PRIVATE PASSWORDS FOR INPUTBOX '---------------------------------- '//////////////////////////////////////////////////////////////////// 'Password masked inputbox 'Allows you to hide characters entered in a VBA Inputbox. ' 'Code written by Daniel Klann 'March 2003 '//////////////////////////////////////////////////////////////////// Public Function NewProc(ByVal lngCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Dim RetVal Dim strClassName As String, lngBuffer As Long If lngCode < HC_ACTION Then NewProc = CallNextHookEx(hHook, lngCode, wParam, lParam) Exit Function End If strClassName = String$(256, " ") lngBuffer = 255 If lngCode = HCBT_ACTIVATE Then 'A window has been activated RetVal = GetClassName(wParam, strClassName, lngBuffer) If Left$(strClassName, RetVal) = "#32770" Then 'Class name of the Inputbox 'This changes the edit control so that it display the password character *. 'You can change the Asc("*") as you please. SendDlgItemMessage wParam, &H1324, EM_SETPASSWORDCHAR, Asc("*"), &H0 End If End If 'This line will ensure that any other hooks that may be in place are 'called correctly. CallNextHookEx hHook, lngCode, wParam, lParam End Function Function InputBoxDK(Prompt, Title) As String Dim lngModHwnd As Long, lngThreadID As Long lngThreadID = GetCurrentThreadId lngModHwnd = GetModuleHandle(vbNullString) hHook = SetWindowsHookEx(WH_CBT, AddressOf NewProc, lngModHwnd, lngThreadID) InputBoxDK = InputBox(Prompt, Title) UnhookWindowsHookEx hHook End Function الاستدعاء بهذا الشكل: Call: InputBoxDK("Enter your Password.", "Password Required") الحقوق لاصحابها بالتوفيق للجميع حسنين
  5. السلام عليكم, هذا جدول يوضح لكم تنسيقات الارقام في الاكسس كالعملة وغيرها. ارجو ان يفيدكم. انواع التنسيقات "5" التنسيق لعدد موجب "-5" التنسيق لعدد سالب "0.5" التنسيق لعدد عشري "0" التنسيق الخاص بالصفر Zero-length string ("") 5 -5 0.5 0 0 5 -5 1 0 0.00 5.00 -5.00 0.50 0.00 #,##0 5 -5 1 0 $#,##0;($#,##0) $5 ($5) $1 $0 $#,##0.00;($#,##0.00) $5.00 ($5.00) $0.50 $0.00 0% 500% -500% 50% 0% 0.00% 500.00% -500.00% 50.00% 0.00% 0.00E+00 5.00E+00 -5.00E+00 5.00E-01 0.00E+00 0.00E-00 5.00E00 -5.00E00 5.00E-01 0.00E00 "$#,##0;;\Z\e\r\o" $5 $-5 $1 Zero بالتوفيق للجميع
  6. السلام عليكم ورحمة الله وبركاته.. آولآ نقُوم بتَسجيل عضُوية بمُوقع [ PasteBin ] رآبط آلتَسجيل [ هُنآ ] آتمآم آلتَسجيل ، ظهُور رسآلة تُخبرك بآلتُوجه نحُو بَريدك لتَفعيل آلعضُوية بَعد عَملية آلتَفعيل ظهُور رسآلة تُخبرك بنجآح آلتَفعيل آلآن نقُوم بتَسجيل آلدخُول قم باعطاء هذا الملف الى العميل لكي يظهر لك الرقم الخاص به ثم يقوم العميل بإعطائك هذا الرقم، بعدها ستقوم انت باضافته الى المفكرة التي انشأتها في موقع pastebin ثُم نقُوم بآلضَغط عَلى كَلك يَمين عَلى كَلمة [ RAW ] ونَختآر ارجع الى برنامجك, وقم بإلصاق الرابط في المكان المخصص له Option Compare Database Private Sub Form_Current() Dim HDD, PID, MB, MAC As String PID = ProcessorId() HDD = VolumeSerialNumber() MAC = MACAddress() MB = MotherBoardID() Dim PHMB As String PHMB = Strings.UCase(MD5Hex(PID & HDD & MB & MAC)) On Error Resume Next Dim objHttp As Object Set objHttp = CreateObject("MSXML2.ServerXMLHTTP") Call objHttp.Open("GET", "ضع الرابط هنا", False) Call objHttp.Send("") For Each c In Split(objHttp.ResponseText, "|") If PHMB = c Then GoTo authed End If Next MsgBox "1 - قد تكون النسخة الحالية غير مسجلة" & ChrW(13) & ChrW(10) & ChrW(13) & ChrW(10) & "2 - تأكد من اتصالك بالانترنت" & ChrW(13) & ChrW(10) & ChrW(13) & ChrW(10) & "3 - اذا لم تكن واحدة من تلك المشاكل قم بالاتصال بالمبرمج" & ChrW(13) & ChrW(10) & ChrW(13) & ChrW(10) & "www.facebook.com/Nisr.Aln3jaf", vbCritical, "ERROR" DoCmd.Close DoCmd.CloseDatabase DoCmd.Quit Exit Sub authed: MsgBox "تم تفعيل النسخة بنجاح" & ChrW(13) & ChrW(10) & ChrW(13) & ChrW(10) & "شكرا لإستخدامك هذه النسخة", vbInformation, "عملية ناجحة" End Sub Public Function MD5Hex(textString As String) As String Dim enc Dim textBytes() As Byte Dim bytes Dim outstr As String Set enc = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider") textBytes = textString bytes = enc.ComputeHash_2((textBytes)) For pos = 1 To LenB(bytes) outstr = outstr & LCase(Right("0" & Hex(AscB(MidB(bytes, pos, 1))), 2)) Next MD5Hex = outstr Set enc = Nothing End Function Public Function MACAddress() On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration", , 48) For Each objItem In colItems MACAddress = objItem.MACAddress Next End Function Public Function ProcessorId() On Error Resume Next Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor") For Each objItem In colItems ProcessorId = objItem.ProcessorId Next End Function Public Function VolumeSerialNumber() As String On Error Resume Next Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") Set oItems = oWMI.ExecQuery("Select * from Win32_DiskDrive") For Each oItem In oItems VolumeSerialNumber = oItem.SerialNumber Next End Function Public Function MotherBoardID() As String On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_BaseBoard", , 48) For Each objItem In colItems MotherBoardID = objItem.SerialNumber Next End Function في كل قواعد البيانات التي تريد حمايتها ضع نفس الرابط، لا تقم بإنشاء مفكرة جديدة في موقع pastebin آلآن آلسؤآل كَيف سآقُوم بآضآفة آكثر مَن رَقم عَميل بنفس المفكرة ؟ آلجوُآب بَين كُل عَميل وآخر آفصل بَينهم بآلـ [ | ] مثآل بَسيط عَلى آلعَملية .. تم بحمد الله ، SEMO.Pa3x GET_INFO.accdb Protection.accdb
  7. السلام عليكم,, اضف الكود في Module Public Function MsgBox2(ByVal Prompt As Object, Optional ByVal Buttons As MsgBoxStyle = MsgBoxStyle.OkOnly, Optional ByVal Title As Object = Nothing) As MsgBoxResult Dim Background As New Form Background.FormBorderStyle = FormBorderStyle.None Background.WindowState = FormWindowState.Maximized Background.ShowInTaskbar = False Background.BackColor = Color.Black Background.Opacity = 0.6 Background.TopMost = True Background.Show() Dim x As New MsgBoxResult x = MsgBox(Prompt, Buttons, Title) Background.Close() Return x End Function الاستدعاء , اكتب مثلا في الزر MsgBox2("Hello World !", MsgBoxStyle.Critical, "ERROR") الحقوق لصاحبها HASAN6.0
  8. Public Class CenteredComboBox Inherits ComboBox Sub New() Me.DrawMode = Windows.Forms.DrawMode.OwnerDrawFixed Me.DropDownStyle = ComboBoxStyle.DropDownList End Sub Private Sub CenteredComboBox_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles Me.DrawItem e.DrawBackground() Dim txt As String = "" If e.Index >= 0 Then txt = Me.Items(e.Index).ToString TextRenderer.DrawText(e.Graphics, txt, e.Font, e.Bounds, e.ForeColor, TextFormatFlags.HorizontalCenter) e.DrawFocusRectangle() End Sub End Class ضع الاكواد في كلاس واعمل كومبايل، وستظهر لك اداة كومبوبوكس جديدة قم بإستخدامها وستجد ان النص اصبح في الوسط بالتوفيق للجميع.
  9. السلام عليكم ورحمة الله وبركاته. كنت قد طرحت سابقا موضوع لتشغيل ملفات الصوت في الاكسس وكان الموضوع يتناول تشغيل الملفات التي تكون بصيغة WAV حصرا رابط الموضوع: درس اليوم هو حول تشغيل ملفات الصوت بصيغة MP3 في الاكسس. الدوال المستخدمة: mciSendStringA GetShortPathNameA بعض الحقوق لأصحابها اتمنى منكم الدعاء لي ولوالدي. حسنين Mp3Sounds_SEMO_Pa3x.accdb
  10. السلام عليكم, في السابق كنت استخدم خطوط معينة في برامجي وعند اعطاء البرنامج للعميل لاتظهر الخطوط التي قمت باستخدامها بل يظهر بمكانها الخط ( Arial ) وهذه مُشكلة. كت في وقتها الجأ الى ان اضع الخط بجانب قاعدة البيانات وفي داخل قاعدة البيانات اقوم بعمل تحقق لمجلد Fonts والبحث عن الخط في بداية تشغيل القاعدة, فإن لم يجده يعي رسالة للعميل بان الط مفقود وعليه ان يقوم بتثبيته من جانب البرنامج. بحثت طويلاً في الانترنت عن تثبيت خط من الاكسس فقط بدون مساعدة عامل خارجي ولكن لم اصل لنتيجة. اليوم بحمد الله قمت بحل المشكلة بإستخدام ( Visual .NET ) قمت بكتابة اداة بسيطة وظيفتها تثبيت الخط. يتم تمرير براميتر لها وهي بدورها ستقوم بتثبيته الدوال المستخدمة: AddFontResource CreateScalableFontResource ShellExecuteA للمزيد من المعلومات ، اضغط على اسم الدالة ارفقت لكم المصادر من MSDN شرح بسيط لمن لم يعرف ماذا اقصد بتثبيت الخط واستخدام الخط وانه لن يظهر في حال كان العميل لا يملكه. قمت بارفاق قاعدة بيانات لكم كـ مثال للشرح مع الخط المستخدم مع الاداة. شرح الاستعمال: يجب ان تكون الاداة ( SEMO_RegisterFont.exe ) هي والخط الذي سوف تستخدمه بجانب قاعدة البيانات. افتح برنامجك وضع فيه هذا الاجراء. Sub RegisterFont(nFont) Dim strExe As String Dim strArg As String strExe = CurrentProject.Path & "\" & "SEMO_RegisterFont.exe" strArg = "/SEMO/" & nFont ShellExecute 0, "runas", strExe, strArg, vbNullString, SW_SHOWNORMAL End Sub في الاستدعاء اي في الحدث Form_Current RegisterFont "DroidSansArabic.ttf" حيث ان الـ DroidSansArabic.ttf هو اسم الخط الذي قمنا بوضعه بجانب قاعدة البيانات ملاحظة مهمة جدا: في حال كان اسم الخط يتكون من اكثر من كلمة مثل ( Droid Sans Arabic.ttf ) قم بحذف المسافات بين كلمة واخرى بحيث يصبح ( DroidSansArabic.tts ) وستعمل قاعدة البيانات التي قمت بتصميمها بشكل رائع وبالخطوط التي قمت انت بأختيارها بدون الخوف من مشكلة عدم توفر الخطوط في جهاز العميل. الشرح حصري للمنتدى وغير موجود في الانترنت. لا تشكرني الا اذا وجدت انني استحق ذلك. تم بحمد الله حسنين RegisterFont_SEMO_Pa3x.rar
  11. Option Compare Database Option Explicit Const SND_ALIAS_SYSTEMASTERISK As String = "SystemAsterisk" Const SND_ALIAS_SYSTEMDEFAULT As String = "SystemDefault" Const SND_ALIAS_SYSTEMEXCLAMATION As String = "SystemExclamation" Const SND_ALIAS_SYSTEMEXIT As String = "SystemExit" Const SND_ALIAS_SYSTEMHAND As String = "SystemHand" Const SND_ALIAS_SYSTEMQUESTION As String = "SystemQuestion" Const SND_ALIAS_SYSTEMSTART As String = "SystemStart" Const SND_ALIAS_SYSTEMWELCOME As String = "SystemWelcome" Const SND_ALIAS_YouGotMail As String = "MailBeep" ' playsound Params Const SND_LOOP = &H8 Const SND_ALIAS = &H10000 Const SND_NODEFAULT = &H2 ' silence if no sound associated with event Const SND_ASYNC = &H1 ' play async (don't freeze program while sound is playing) Private Declare PtrSafe Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long Private Sub Form_Close() PlaySound vbNullString, ByVal 0&, SND_NODEFAULT End Sub Private Sub Form_Load() PlaySound CurrentProject.Path & "\" & "DB_FILES\About.wav", vbNull, SND_ALIAS Or SND_NODEFAULT Or SND_ASYNC Or SND_LOOP End Sub اي سؤال انا حاضر، اتمنى الفائدة للجميع.
  12. السلام عليكم. بعد جهد كبير وسهر ليالي كثيرة, وكلها محاولات بائت بالفشل لربط الـ Visual Studio .NET وقراءة البيانات بالاكسس وكانت متمثلة بمكتبة dll او tlb للاسف كانت هنالك عوائق ومنها لكي يتم استخدام مكتبة من نوع tlb كان يجب اعطائها صلاحيات مسؤول لكي تتمكن من تسجيل هذه المكتبة في HKEY_CLASSES_ROOT في الريجستري. وتستخدمها على شكل References وفي حال استخدام مكتبة من نوع dll كان يتطلب استخدام دالة LoadLibraryA وهذه سيعتبرها الانتي فايروس كـ ملف مريب خصوصا لانها تقوم بتحميل المكتبة في الذاكرة وبدون توقيع رقمي..الخ اليوم قمت ببرمجة شيء مختلف ومميز عبارة عن تطبيق صغير بلغة NET. يتم تمرير البيانات من الاكسس لهذه التطبيق لكي يقوم بعدها الاكسس باقتناص المخرجات من التطبيق بواسطة الي remote shell ثم عرضها في الاكسس مرة اخرى وكان التطبيق على تحويل التاريخ الميلادي الى هجري لكن هذه المرة بصورة ادق وافضل. كما نعرف جميعنا ان التاريخ الهجري يكون غير مضبوط زيادة يوم او يومين او نقصان يوم او يومين او لا يوجد زيادة او نقصان لذلك قمت بوضع ComboBox لهذا الأمر.. اكتب التاريخ الميلادي في الحقل الاول ثم اكتب فارق الايام ان وجدت زيادة او نقصان او اتركها صفر كما هي او لم يوجد تغيير السورس كود التطبيق بلغة NET. لمن يريده. Module SEMO_Pa3x '-------------------------------------------------------- 'c0ded bY : SEMO.Pa3x 'skype : security.najaf 'facebook : https://www.facebook.com/Nisr.Aln3jaf 'gmail : isec2090@gmail.com 'last edit : 26/4/2019 '-------------------------------------------------------- Sub Main() For Each arg As String In My.Application.CommandLineArgs If arg.StartsWith("/SEMO/") Then Dim rep As String Dim splt() As String rep = arg.Replace("/SEMO/", "") splt = Split(rep, ",") Dim GET_date, GET_args As String GET_date = splt(0) GET_args = splt(1) Dim ConvertToDate As DateTime ConvertToDate = DateTime.Parse(GET_date) DateFormating(ConvertToDate.AddDays(GET_args)) DateConvert(ConvertToDate.AddDays(GET_args)) Console.WriteLine(ArabicWeekdayString(Weekday(GET_date)) & "," & LongDateString) End If Next End Sub Public LongDateString As String = String.Empty '#Region " DateConverter (dateValue As String) As String " #Region " DateConverter (dateValue As String) As String " Public Function DateConvert(ByVal dateValue As String) As String LongDateString = "" ' الاحتفاظ بالإعدادت الحالية Dim currentCulture As Globalization.CultureInfo = Threading.Thread.CurrentThread.CurrentCulture Dim con As String = "" If DateFormating(dateValue) <> "" Then dateValue = DateFormating(dateValue) '---------------------------------- Dim y As String = IIf(dateValue <> "", dateValue.Split("/")(2), "") Dim mmm() As String If y > "1300" And y < "1451" Then con = GetGregorianDate(dateValue) mmm = Split(GetGregorianDate(dateValue), "/") LongDateString = ArabicWeekdayString(Weekday(GetGregorianDate(dateValue))) & " " & mmm(0) & " " & GregorianMonthString(Val(mmm(1))) & ", " & mmm(2) End If If y > "1883" And y < "2029" Then con = GetHijriDate(dateValue) mmm = Split(con, "/") LongDateString = mmm(0) & "," & HiriMonthString(Val(mmm(1))) & "," & mmm(2) & "H" End If End If ' إستعادة الإعدادت Threading.Thread.CurrentThread.CurrentCulture = currentCulture Return con End Function #End Region #Region " GetHijriDate(GregorianDate As String) As String " Private Function GetHijriDate(ByVal GregorianDate As String) As String Try Threading.Thread.CurrentThread.CurrentCulture = New Globalization.CultureInfo("ar-eg") Dim hijriDate As String = String.Empty 'Start Date is 10-31-1883 Dim DaysPan As Integer = DateDiff(DateInterval.Day, New System.DateTime(1883, 10, 31), CDate(GregorianDate)) + 1 Dim i As Integer = 0 Do While (DaysPan > 29 + Val(UmmUlquraHijriMonths.Chars(i))) DaysPan = DaysPan - 29 - Val(UmmUlquraHijriMonths.Chars(i)) i = i + 1 Loop hijriDate = Format$(DaysPan, "00") + "/" + Format((i Mod 12) + 1, "00") + "/" + CStr(1301 + (i \ 12)) Return hijriDate Catch ex As Exception ' MessageBox.Show("تأكد من التاريخ الميلادي.", "خطأ في التاريخ الميلادي", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign Or MessageBoxOptions.RtlReading) Return Nothing End Try End Function #End Region #Region " GetGregorianDate(HijriDate As String) As Date " Private Function GetGregorianDate(ByVal HijriDate As String) As String Try Threading.Thread.CurrentThread.CurrentCulture = New Globalization.CultureInfo("ar-eg") Dim gregorianDate As String = String.Empty Dim MonthsPan As Integer MonthsPan = (12 * (CInt(Mid(HijriDate, 7, 4)) - 1301)) + CInt(Mid(HijriDate, 4, 2)) Dim TempDaysPan As Integer Dim i As Integer For i = 0 To MonthsPan - 2 TempDaysPan = TempDaysPan + 29 + Val(UmmUlquraHijriMonths.Chars(i)) Next i If CInt(Mid(HijriDate, 1, 2)) > 29 + Val(UmmUlquraHijriMonths.Chars(i)) Then ' MessageBox.Show("رقم اليوم لهذا الشهر يجب أن لا يتجاوز 29", "خطأ اليوم الشهري للتاريخ الهجري", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign Or MessageBoxOptions.RtlReading) Return Nothing Else TempDaysPan = TempDaysPan + CInt(Mid(HijriDate, 1, 2)) End If 'Start Date is 10-31-1883 gregorianDate = CStr(DateAdd(DateInterval.Day, TempDaysPan - 1, New System.DateTime(1883, 10, 31))) Return gregorianDate Catch ex As Exception ' MessageBox.Show("تأكد من التاريخ الهجري.", "خطأ في التاريخ الهجري", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign Or MessageBoxOptions.RtlReading) Return Nothing End Try End Function #End Region #Region " UmmUlquraHijriMonths " 'UmmUlquraHijriMonths Private Function UmmUlquraHijriMonths() As String Dim HijriMonthSequence As String = "" 'Create the Months data from 1301H to 1450H - (150years) HijriMonthSequence += "111010010011" 'Year 1301H HijriMonthSequence += "011101001001" 'Year 1302H HijriMonthSequence += "011101100100" 'Year 1303H HijriMonthSequence += "101101101010" 'Year 1304H HijriMonthSequence += "010101110101" 'Year 1305H HijriMonthSequence += "010010110110" 'Year 1306H HijriMonthSequence += "101001010110" 'Year 1307H HijriMonthSequence += "101101001010" 'Year 1308H HijriMonthSequence += "110110100100" 'Year 1309H HijriMonthSequence += "110111010010" 'Year 1310H HijriMonthSequence += "010111011001" 'Year 1311H HijriMonthSequence += "001011011100" 'Year 1312H HijriMonthSequence += "100101011101" 'Year 1313H HijriMonthSequence += "010010101101" 'Year 1314H HijriMonthSequence += "101001010101" 'Year 1315H HijriMonthSequence += "101101001010" 'Year 1316H HijriMonthSequence += "101101101001" 'Year 1317H HijriMonthSequence += "010101110100" 'Year 1318H HijriMonthSequence += "100101110110" 'Year 1319H HijriMonthSequence += "010010110111" 'Year 1320H HijriMonthSequence += "001001010111" 'Year 1321H HijriMonthSequence += "010100101011" 'Year 1322H HijriMonthSequence += "011010010101" 'Year 1323H HijriMonthSequence += "011011001010" 'Year 1324H HijriMonthSequence += "101011010101" 'Year 1325H HijriMonthSequence += "010101011011" 'Year 1326H HijriMonthSequence += "001001011101" 'Year 1327H HijriMonthSequence += "100100101101" 'Year 1328H HijriMonthSequence += "110010010101" 'Year 1329H HijriMonthSequence += "110101001010" 'Year 1330H HijriMonthSequence += "111010100101" 'Year 1331H HijriMonthSequence += "011011010010" 'Year 1332H HijriMonthSequence += "101011010101" 'Year 1333H HijriMonthSequence += "010101011010" 'Year 1334H HijriMonthSequence += "101010101011" 'Year 1335H HijriMonthSequence += "010101001011" 'Year 1336H HijriMonthSequence += "011010100101" 'Year 1337H HijriMonthSequence += "011101010010" 'Year 1338H HijriMonthSequence += "101110101001" 'Year 1339H HijriMonthSequence += "001101110100" 'Year 1340H HijriMonthSequence += "101010110110" 'Year 1341H HijriMonthSequence += "010101010110" 'Year 1342H HijriMonthSequence += "101010101010" 'Year 1343H HijriMonthSequence += "110101010010" 'Year 1344H HijriMonthSequence += "110110101001" 'Year 1345H HijriMonthSequence += "010111010100" 'Year 1346H HijriMonthSequence += "101011101010" 'Year 1347H HijriMonthSequence += "010011011101" 'Year 1348H HijriMonthSequence += "001001101110" 'Year 1349H HijriMonthSequence += "100100101110" 'Year 1350H HijriMonthSequence += "101010100110" 'Year 1351H HijriMonthSequence += "110101010100" 'Year 1352H HijriMonthSequence += "110110101010" 'Year 1353H HijriMonthSequence += "010110110101" 'Year 1354H HijriMonthSequence += "001010110110" 'Year 1355H HijriMonthSequence += "100100110111" 'Year 1356H HijriMonthSequence += "010010011011" 'Year 1357H HijriMonthSequence += "101001001011" 'Year 1358H HijriMonthSequence += "101100100101" 'Year 1359H HijriMonthSequence += "101101010100" 'Year 1360H HijriMonthSequence += "101101101010" 'Year 1361H HijriMonthSequence += "010101101101" 'Year 1362H HijriMonthSequence += "010010101101" 'Year 1363H HijriMonthSequence += "101001010101" 'Year 1364H HijriMonthSequence += "110100100101" 'Year 1365H HijriMonthSequence += "111010010010" 'Year 1366H HijriMonthSequence += "111011001001" 'Year 1367H HijriMonthSequence += "011011010100" 'Year 1368H HijriMonthSequence += "101011101010" 'Year 1369H HijriMonthSequence += "010101101011" 'Year 1370H HijriMonthSequence += "010010101011" 'Year 1371H HijriMonthSequence += "011010010101" 'Year 1372H HijriMonthSequence += "101101001001" 'Year 1373H HijriMonthSequence += "101110100100" 'Year 1374H HijriMonthSequence += "101110110010" 'Year 1375H HijriMonthSequence += "010110110101" 'Year 1376H HijriMonthSequence += "001010111010" 'Year 1377H HijriMonthSequence += "100101011011" 'Year 1378H HijriMonthSequence += "010010101011" 'Year 1379H HijriMonthSequence += "010101010101" 'Year 1380H HijriMonthSequence += "011010110010" 'Year 1381H HijriMonthSequence += "011011011001" 'Year 1382H HijriMonthSequence += "001011101100" 'Year 1383H HijriMonthSequence += "100101101110" 'Year 1384H HijriMonthSequence += "010010101110" 'Year 1385H HijriMonthSequence += "101001010110" 'Year 1386H HijriMonthSequence += "110100101010" 'Year 1387H HijriMonthSequence += "110101010101" 'Year 1388H HijriMonthSequence += "010110101010" 'Year 1389H HijriMonthSequence += "101010110101" 'Year 1390H HijriMonthSequence += "010010111011" 'Year 1391H HijriMonthSequence += "001001011011" 'Year 1392H HijriMonthSequence += "100100101011" 'Year 1393H HijriMonthSequence += "101010010101" 'Year 1394H HijriMonthSequence += "101101001010" 'Year 1395H HijriMonthSequence += "101110100101" 'Year 1396H HijriMonthSequence += "010110101010" 'Year 1397H HijriMonthSequence += "101010110101" 'Year 1398H HijriMonthSequence += "010101010110" 'Year 1399H HijriMonthSequence += "101010010110" 'Year 1400H HijriMonthSequence += "110101001010" 'Year 1401H HijriMonthSequence += "111010100101" 'Year 1402H HijriMonthSequence += "011101010010" 'Year 1403H HijriMonthSequence += "011011101001" 'Year 1404H HijriMonthSequence += "001101101010" 'Year 1405H HijriMonthSequence += "101010101101" 'Year 1406H HijriMonthSequence += "010101010101" 'Year 1407H HijriMonthSequence += "101010100101" 'Year 1408H HijriMonthSequence += "101101010010" 'Year 1409H HijriMonthSequence += "101110101001" 'Year 1410H HijriMonthSequence += "010110110100" 'Year 1411H HijriMonthSequence += "100110111010" 'Year 1412H HijriMonthSequence += "010011011011" 'Year 1413H HijriMonthSequence += "001001011101" 'Year 1414H HijriMonthSequence += "010100101101" 'Year 1415H HijriMonthSequence += "101010100101" 'Year 1416H HijriMonthSequence += "101011010100" 'Year 1417H HijriMonthSequence += "101011101010" 'Year 1418H HijriMonthSequence += "010101101101" 'Year 1419H HijriMonthSequence += "010010111101" 'Year 1420H HijriMonthSequence += "001000111101" 'Year 1421H HijriMonthSequence += "100100011101" 'Year 1422H HijriMonthSequence += "101010010101" 'Year 1423H HijriMonthSequence += "101101001010" 'Year 1424H HijriMonthSequence += "101101011010" 'Year 1425H HijriMonthSequence += "010101101101" 'Year 1426H HijriMonthSequence += "001010110110" 'Year 1427H HijriMonthSequence += "100100111011" 'Year 1428H HijriMonthSequence += "010010011011" 'Year 1429H HijriMonthSequence += "011001010101" 'Year 1430H HijriMonthSequence += "011010101001" 'Year 1431H HijriMonthSequence += "011101010100" 'Year 1432H HijriMonthSequence += "101101101010" 'Year 1433H HijriMonthSequence += "010101101100" 'Year 1434H HijriMonthSequence += "101010101101" 'Year 1435H HijriMonthSequence += "010101010101" 'Year 1436H HijriMonthSequence += "101100101001" 'Year 1437H HijriMonthSequence += "101110010010" 'Year 1438H HijriMonthSequence += "101110101001" 'Year 1439H HijriMonthSequence += "010111010100" 'Year 1440H HijriMonthSequence += "101011011010" 'Year 1441H HijriMonthSequence += "010101011010" 'Year 1442H HijriMonthSequence += "101010101011" 'Year 1443H HijriMonthSequence += "010110010101" 'Year 1444H HijriMonthSequence += "011101001001" 'Year 1445H HijriMonthSequence += "011101100100" 'Year 1446H HijriMonthSequence += "101110101010" 'Year 1447H HijriMonthSequence += "010110110101" 'Year 1448H HijriMonthSequence += "001010110110" 'Year 1449H HijriMonthSequence += "101001010110" 'Year 1450H Return HijriMonthSequence End Function #End Region ' Function DateFormating(ByVal _Date As String) As String #Region " DateFormating( _Date As String) As String " Public Function DateFormating(ByVal _Date As String) As String ' / تجزئة نص التاريخ من الفاصل Dim dt() As String = Split(_Date, "/") '------------------------------------------------------ ' في حالة عدم وجود فاصل تاريخ أصلا فيتم المغادرة If dt.Length <> 3 Then Return "" '------------------------------------------------------ ' التأكد أن أجزاء التاريخ هي أرقام فعلا For i = 0 To dt.Length - 1 If Not IsNumeric(dt(i)) Then Return "" End If Next i '------------------------------------------------------ ' ترتيب التاريخ بحيث يبدأ باليوم وينتهي السنة If Val(dt(0)) > 999 And Val(dt(2)) < 99 Then Dim a As String = Val(dt(0)) Dim b As String = Val(dt(2)) dt(0) = b : dt(2) = a End If '------------------------------------------------------ ' التأكد من عدم تجاوز كل جزء الحدود المسموح له If Val(dt(2)) < 1301 Or Val(dt(2)) > 2029 Then Return "" ' عدم تجاوز الشهر عن 12 If Val(dt(1)) < 1 _ Or Val(dt(1)) > 12 Then Return "" End If ' عدم تجاوز اليوم الهجري عن 30 If Val(dt(2)) >= 1301 _ And Val(dt(2)) <= 1450 Then If Val(dt(0)) < 1 Or Val(dt(0)) > 30 Then Return "" End If '------------------------------------------------------ Dim y As Integer, m As Integer, d As Integer d = Val(dt(0)).ToString("00") m = Val(dt(1)).ToString("00") y = Val(dt(2)).ToString("0000") Return Val(dt(0)).ToString("00") _ & "/" & Val(dt(1)).ToString("00") _ & "/" & Val(dt(2)).ToString("0000") End Function #End Region '#End Region #Region " ArabicWeekdayString " Private Function ArabicWeekdayString(ByVal weekdayValue As Integer) Dim w As String = String.Empty Select Case weekdayValue Case 7 w = "Saturday" Case 1 w = "Sunday" Case 2 w = "Monday" Case 3 w = "Tuesday" Case 4 w = "Wednesday" Case 5 w = "Thursday" Case 6 w = "Friday" End Select Return w End Function #End Region #Region " HiriMonthString " Private Function HiriMonthString(ByVal hijriMonthValue As Integer) Dim m As String = String.Empty Select Case hijriMonthValue Case 1 m = "Muharram" Case 2 m = "Safar" Case 3 m = "Rabi al-Awwal" Case 4 m = "Rabi ath-Thani" Case 5 m = "Jumada al-Ula" Case 6 m = "Jumada al-Akhirah" Case 7 m = "Rajab" Case 8 m = "Shaaban" Case 9 m = "Ramadan" Case 10 m = "Shawwal" Case 11 m = "Dhu al-Qaadah" Case 12 m = "Dhu al-Hijjah" End Select Return m End Function #End Region #Region " GregorianMonthString " Private Function GregorianMonthString(ByVal gregorianMonthValue As Integer) Dim m As String = String.Empty Select Case gregorianMonthValue Case 1 m = "January" Case 2 m = "February" Case 3 m = "March" Case 4 m = "April" Case 5 m = "May" Case 6 m = "June" Case 7 m = "July" Case 8 m = "August" Case 9 m = "September" Case 10 m = "October" Case 11 m = "November" Case 12 m = "December" End Select Return m End Function #End Region End Module ملاحظة: حقوق بعض الاكواد من google ارجو ان ينال موضوعي اعجابكم. حسنين Hijri_SEMO_Pa3x.rar
  13. السلام عليكم، مشروع بسيط كتبتة بلغة NET. واحبب طرحه لكم وهو جلب التاريخ والوقت والطقس لمدينتك الحالية مع امكانية ضبط وقت الحاسوب وتاريخه من خلال البرنامج تحميل السورس كود https://hostr.co/s24IHIYOiLmF تم بحمد الله ، SEMO.Pa3x
  14. [ فهرسة الدورة ، Contents Of The Session ] [ الدرس الاول ] دورة تعلم البرمجة " المستوى المتوسط " الدرس الاول [ الادوات ] [ الدرس الثاني] دورة تعلم البرمجة " المستوى المتوسط " الدرس الثاني [ المتغيرات ] [ الدرس الثالث] دورة تعلم البرمجة " المستوى المتوسط " الدرس الثالث [ الدوال ] [ الدرس الرابع] دورة تعلم البرمجة " المستوى المتوسط " الدرس الرابع [ الفضاءات ] [ الدرس الخامس] دورة تعلم البرمجة " المستوى المتوسط " الدرس الخامس [ الريجستري ] [ الدرس السادس] دورة تعلم البرمجة " المستوى المتوسط " الدرس السادس [ الريسورس ] تم بحمد الله ، SEMO.Pa3x
  15. السلام علكيم. الاغلب يعاني من مشكلة تصدير البيانات كان تكون جداول او استعلامات او تقارير..الخ الى اكسل ولكن! مع بقاء مسميات الحقول العربية ( Caption ) الان لنفرض لدي الجدول اسمة Customers وهذه الاعمدة الخاصة به واما المسميات فهي هذه الان عند محاول تصدير هذا الجدول الى اكسل بإستخدام VBA يتم تصديره ولكن لا تظهر المسميات العربية مثل اسم الموظف, الرقم الوظيفي..الخ بل تظهر اسماء الحقول باللغة الانكليزية , وهذه مشكلة. الان قم بأنشاء ماكرو جديد ثم طبق كما موجود بالصورة, اختر نوع الكائن الذي تريد تصديره جدول استعلام ... الخ واسم الكائن ، واهم شي تنتبه للتنسيق اختار كما قمت انا بأختياره وسيتم تصدير الجدول بالمسميات العربية. ارفقت لكم قاعدة بيانات كـ مثال للشرح لمن واجه صعوبة في شيئ ما. حسنين export_to_excel_semo_pa3x.accdb
  16. السلام عليكم، اقدم لكم طريقة بسيطة لإستغلال HttpWebRequest في تخطي الجدار الناري في بعض صفحات الويب لكي تمكنك من التعامل من الموقع الهدف بدون اي اعاقة وصعوبة صورة الجدار لمن لم يفهم قصدي Dim USER As String = "" Dim PASS As String = "" Dim LINK As String = "http://www." Dim request As HttpWebRequest = HttpWebRequest.Create(LINK) request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0" request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" request.Headers.Add("Accept-Language: ar,en-US;q=0.7,en;q=0.3") Dim AuthHeader As String = "Authorization: Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(Convert.ToString(USER & Convert.ToString(":")) & PASS)) & vbCr & vbLf request.Headers.Add(AuthHeader) Dim response As HttpWebResponse = request.GetResponse() Dim DataStream As Stream = response.GetResponseStream() Dim Reader As New StreamReader(DataStream) Dim responsefromserver As String = Reader.ReadToEnd Reader.Close() DataStream.Close() response.Close() MsgBox(responsefromserver) املئ البيانات التالية: USER, PASS, LINK تم بحمد الله ، SEMO.Pa3x
  17. يمكنك التحقق اذا كان النظام حقيقي او وهمي عن طريق مكتبة Management الاستغلال مكتوب بnet. Public Function antiVMBOX() As Boolean '----------------------------------- ' C0ded bY : SEMO.Pa3x ' Date writing : 28/4/2014 :) ' Skype : security.najaf '----------------------------------- Using VM = New System.Management.ManagementObjectSearcher("Select * from Win32_ComputerSystem") Using BOX = VM.Get() For Each xx In BOX Dim x As String = xx("Manufacturer").ToString().ToLower() If x = "microsoft corporation" OrElse x.Contains("vmware") OrElse xx("Model").ToString() = "VirtualBox" Then MessageBox.Show("Detected using delusional environment", "ERR", MessageBoxButtons.OK, MessageBoxIcon.Stop) End End If Next xx End Using End Using Return False End Function الاستدعاء: ضع في Form_Load antiVMBOX بعد التشغيل: لو كان النظام حقيقي لن يحدث شي وسيتابع البرنامج عمله، اما اذا كان النظام وهمي ستظهر رسالة خطأ + سيغلق البرنامج نفسه هذا التخطي كتبته في 28/4/2014 ملاحظة: لا تنسو اضافة مكتبة system.management.dll في net. بالتوفيق، SEMO
  18. السلام عليكم، كثير من الاخوة لا يعرفون كيفية توزيع الitems بالlistview توضيح الفكرة اكثر: مثال بسيط عبارة processes informations توزيع معلومات العمليات على الجدول شرحت الكم الاكواد حتى يسهل عليكم '---------------------------- ' c0ded bY: SEMO.Pa3x ' Skype : security.najaf '---------------------------- On Error Resume Next Dim NumColum(3) As String ' number colum in your listview Dim LVI As ListViewItem Dim PRC() As Process = Process.GetProcesses For Each xGet In PRC NumColum(0) = xGet.ProcessName ' first colum NumColum(1) = xGet.Id ' second colum NumColum(2) = xGet.MainModule.FileName.ToString ' third colum LVI = New ListViewItem(NumColum) '-------------------------------------------------- ' if you want make ForColor or BackColor just use: '-------------------------------------------------- ' LVI.ForeColor = Color.Black ' LVI.BackColor = Color.Purple ListView1.Items.Add(LVI) Next تم بحمد الله ، SEMO.Pa3x
  19. Protected Overloads Overrides Sub WndProc(ByRef m As Message) Const WM_NCLBUTTONDOWN As Integer = 161 Const WM_SYSCOMMAND As Integer = 274 Const HTCAPTION As Integer = 2 Const SC_MOVE As Integer = 61456 If (m.Msg = WM_SYSCOMMAND) AndAlso (m.WParam.ToInt32() = SC_MOVE) Then Exit Sub End If If (m.Msg = WM_NCLBUTTONDOWN) AndAlso (m.WParam.ToInt32() = HTCAPTION) Then Exit Sub End If MyBase.WndProc(m) End Sub ضع الاكواد في اي مكان في المشروع تم بحمد الله ، SEMO.Pa3x
  20. Public Sub RemoveDuplicates(ByVal lstView As ListView) Dim itemI, itemJ As ListViewItem Dim progress, count As Integer For i As Integer = lstView.Items.Count - 1 To 0 Step -1 itemI = lstView.Items(i) progress = progress + 1 ' start one after hence +1 For z As Integer = i + 1 To lstView.Items.Count - 1 Step 1 itemJ = lstView.Items(z) If itemI.Text = itemJ.Text Then 'duplicate found, now delete duplicate lstView.Items.Remove(itemJ) count = count + 1 Exit For End If Next z Next (i) End Sub الاستدعاء RemoveDuplicates(ListView1) طريقة اخرى Function remover(l As ListView) As Boolean Dim str As String = " " For i As Integer = 0 To l.Items.Count - 1 Try Select Case str.IndexOf("0" & l.Items(i).SubItems(0).Text) = -1 Case False : l.Items(i).Remove() Case True : str &= "0" & l.Items(i).SubItems(0).Text End Select Catch : End Try Next Return True End Function الاستدعاء remover(listview1) تم بحمد الله ، SEMO.Pa3x
  21. [ الموضوع ] ، [ الدرس السادس ، الريسورس، ماهو ، ماهي اقسامة ؟ ، كيف نتعامل معه ؟ ] [ في سلسلة دروس البرمجة ] [ Vb.Net ] [ المستوى المتوسط ] - الريسورس ( Resource ) ماهو ؟ الريسورس / هو عبارة عن حاوية كبيرة لخزن كل شي بداخل برنامجك واستدعائه عن الحاجة مثال ، الثلاجة يوضع فيها الطعام وعندما تحتاج اليه تذهب للثلاجة وتاكلة بمعنى ان الريسورس يوضع فيه اي شيئ" صور ، فيديو ، صوت ، تكست .. الخ " يوجد شيئان مشابهان لعمل الريسورس هما " Settings " + " Registry " كلاهما يستخدم لتخزين القيم واستيرادها عند الحاجة ، والريسورس نفس الشيئ الا هنالك اختلافات بسيطة من اهمها ان الريسورس ، هو لتخزين الملفات بشكل عام لكن بعد التخزين لا يمكنك التعديل عليه ، اي انه بصلاحية " Read Only " قراءة فقط ، فقط يمكنك التعديل عليه اذا امتلكت الكود المصدري " Source Code " هذا هو شرح ، الريسورس بابسط صورة .. " شكل الريسورس " يحتوي على اهم النوافذ وهي " Strings " التي من خلالها نحدد نوع الشيء الذي نريد ادراجة " صورة ، فيديو ، ملف .. الخ " بعدها نضغط على القسم الثاني المسمى " Add Resource " الذي من خلاله نقوم باستيراد الملفات من خلال الامر " Add Existing File " مثال بسيط نقوم باستيراد صورة ، عند الضغط على الامر " Add Existing File " راقبو نافذة " الامتدادات " من هنا يمكننا تغييرها وادراج اي ملف يخطر ببالنا ، كما في الصورة .. اذا حددنا الخيار " All Files " يمكننا ادراج اي نوع من الملفات .. الان ننتقل الى كيفية استدعاء الملفات من الريسورس " ملاحظة " سؤعطي امثلة صغيرة فقط لكي احثكم على متابعة مصادر كثيرة تخص الريسورس " اولا ، استدعاء صورة من الريسورس " حيث المحدد باللون الاصفر ، يكون اسم الصورة التي استوردناها داخل الريسورس " ثانيا ، استدعاء ملف تنفيذي من الريسورس " حيث المحدد باللون الاصفر ، يكون اسم الملف التنفيذي الذي استوردناه داخل الريسورس " لاحظو في المثالين كلمة " ، " WriteAllByte " اي انه يقوم بكتابة الملف من الريسورس الى خارج الريسورس ثم يشغله ، " ثالثا ، استدعاء ملف تكست من الريسورس " حيث المحدد باللون الاصفر ، يكون اسم ملف التكتس الذي استوردناه داخل الريسورس " لاحظو تغير الوضع من ، WriteAllByte الى WriteAllText لانه نص " " رابعا ، استدعاء ملف صوتي من الريسورس " شرط ان يكون الصوت بصيغة " Wav " " خامسا ، استدعاء ملف مضغوط من الريسورس " يقوم بانشاء مجلد بالمسار " \:C " باسم " Security-Najaf " ثم يكتب فيه الملف من الريسورس للمجلد الذي انشاءه بمسار " \:C " هذا شرح بسيط عن التعامل مع الريسورس ، ويمكنكم قراءة المزيد من المصادر ان احببتم تم بحمد الله ، SEMO.Pa3x
  22. [ الموضوع ] ، [ الدرس الخامس، الريجستري ، ماهو ؟ ، ماهي اجزاءه ، كيف نتعامل معه ؟ ] [ في سلسلة دروس البرمجة ] [ Vb.Net ] [ المستوى المتوسط ] - الريجستري ( Registry ) ماهو ؟ الريجستري / هو سجل كبير جدا يحتوي على اعداد كبيرة جدا من المفاتيح والقيم لذا كان لا بد ان يكون منظما بشكل يشبه السجل ، يستعمل الريجستري في تخزين قيم البرامج ، ليسترجعها عند الحاجة ، كيف نحرره ؟ عن طريق اداة تاتي مع النظام تسمى " Regedit " لتشغيلها نذهب الى قائمة " Start " ونكتب " Regedit " [ صورة محرر الريجستري عند التشغيل ] - اجزاء الريجستري ( Parts Registry ) ماهي اجزاءه ؟ اجزاء الريجستري هي التي تظهر على القسم اليمين المتمثلة بالمجلدات ، كما في الصورة 1 - HKEY_CLASSES_ROOT ، يرمز له بـ " ClassesRoot للتعديل عليه كـ حذف ، اضافة ، تعديل .. الخ فانه يحتاج صلاحيات " Adminstrion " 2 - HKEY_CURRENT_USER ، يرمز له بالرمز " CurrentUser " وهو الذي يكون العمل عليه بكثره ، علما يمكنك التعديل على باقي المجلدات لكنها بعضها بشروط والتي ذكرناها ابسطها ، صلاحيات " Adminstrion " 3 - HKEY_LOCAL_MACHINE ، يرمز له بالرمز " LocalMachine " 4 - HKEY_USERS ، يرمز له بالرمز " Users " 5 - HKEY_CURRENT ، يرمز له بالرمز " CurrentConfig " هام جدا / عند التعامل مع الـ " Registry " يجب في بداية الامر ان نكتب في الفضاء [ الان ننتقل الى امور التعديل على الريجستري ] 1 - انشاء مجلد جديد في الجزء الذي اسمه " HKEY_CURRENT_USER " لندرس الكود بصورة ابسط ، نجد انه يتكون من " My " كل كلمة يكون لونها ازرق تسمى كلمة محجوزة اي لا يمكن التعديل عليها " Registry " اشرنا له ان يقوم بالتوجه نحو المحرر ، ثم الى المجلد الثاني الذي يسمى " HKEY_CURRENT_USER " لاحظو لم نكتب الاسم الطويل بل كتبنا رمز المجلد " CurrentUser " ثم كتبنا " CreateSubKey " بمعنى انشا لي مفتاح رايسي اي " Folder " وهنا بين القوسين وضعنا اسم المجلد " DEV-POINT " " آلنَتيجة " - حذف مجلد من الريجستري في الجزء الذي اسمه " HKEY_CURRENT_USER " اضن الامر واضح ، فقد اوضحت تجزءة الاكواد بالجزء الاعلى - انشاء قيمة جديدة داخل مجلد من مجلدات الريجستري داخل الجزء المسمى " HKEY_CURRENT_USER " في عملية انشاء القيم سنتحاج الى ، اسماء اجزاء الريجستري وليس الرموز ، اي سنكتب " HKEY_CURRENT_USER " وليس " CurrentUser " لاحظو كيف انشئ قيمة بداخل المجلد الذي قمنا بانشاءة الذي سميناه " DEV-POINT " - التحقق من قيمة موجودة او لا " تحقق من المجلد " تم بحمد الله ، SEMO.Pa3x
  23. [ الموضوع ] ، [ الدرس الرابع ، الفضاء ، ماهو ؟ ، على ماذا يحتوي ؟ ، كيف نستخدمه ؟ ] [ في سلسلة دروس البرمجة ] [ Vb.Net ] [ المستوى المتوسط ] - المكتبات ( NameSpaces ) ماهي ؟ الفضاء / هو عبارة عن مستودعات كبيرة لخزن الدوال البرمجية التي تساعدنا في بناء مشاريعنا البرمجية ، ماهو " الفضاء البرمجي " من المعروف ان في الحياة اليومية ، توجد مكتبة يقصدها الشخص لكي يستعمل الكتب اذن فالمكتبة تحتوي على الكتب ، اما الفضاء البرمجي يقصدهه المبرمج لكي يستعمل الدوال التي يحتويها ، لماذا وجد الفضاء ؟ لكي تسهل على المبرمج كتابة الاكواد بسهولة واختصارا للوقت ، لو كان العمل بدون فضاء لشائعت الاخطاء الاملائية في الاكواد ولاصبح العمل طويل واصعب ، مثال على الفضاء ، ماهو هذا الفضاء ؟ فضاء عادي حاله كـ حال باقي الفضاءات يحتوي على دوال عديدة من ضمنها دالة " IO " التي تستخدم ، في القراءة .. الكتابة .. الخ اين يمكننا استدعاء الفضاءات ؟ فوق الـ وسنتعرف على الفضاءات اكثر بالدروس القادمة ، والممارسات الكثيرة ان شاء الله تم بحمد الله ، SEMO.Pa3x
  24. [ الموضوع ] ، [ الدرس الثاني ، الثوابت والمتغيرات ، ماهي ؟ ، ما انواعها ؟ ، كيف نحددها ] [ في سلسلة دروس البرمجة ] [ Vb.Net ] [ المستوى المتوسط ] - المتغيرات ( Variables ) ماهي ؟ المتغير / سمي باسم المتغير لانه ياخذ قيمة متغيرة وهي التي تساعدنا في بناء الاكواد البرمجية مثال بسيط للمتغير " عندما تريد ان تحتفظ بالماء فلا بد لك ان تضعه بانية او كاس " اعتبر الكاس متغير ، لانه حجمة ، شكلة ... الخ غير ثابت يسمى متغير والماء هو القيمة التي توضع في المتغير ، وانت تعرف ان اشكال الاواني والكؤوس متغيرة وايضا انواع السؤائل متغيرة ايضا لذا فالمتغيرات تختلف ، بحسب النوع وحجم القيم ، التي تضع فيها ، هذه كـ فكرة عامة عن معنى كلمة " متغير " - انواع المتغيرات ( Type Variables ) ماهي انواعها ؟ - للمتغيرات انواع كثيرة لكننا سنتحاج فقط الاشياءالمتداولة او كثيرة الاستعمال ان صح التعبير ، وتتمثل بـ - النوع الاول [ Integer ] ، وهو متغير ياخذ قيمة رقميه فقط ، تتراوح اعداد الارقام بين " - 2.147.483.648 " الى " 2.147.483.647 " - النوع الثاني [ Long ] ، وهو متغير ياخذ الاعداد الكبيرة جدا - النوع الثالث [ Double ] ، وهو متغير ياخذ قيم كسرية اي تحتوي على الفاصلة " 1,7 x 10308 " الى" 5,0 x 10-324" - النوع الرابع [ String ] ، وهو متغير ياخذ قيم عبارة عن كلمات او جمل او رموز - النوع الخامس [ Date ] ، وهو متغير ياخذ قيم عبارة عن تواريخ و اوقات - النوع السادس [ Boolean ] ، وهو متغير ياخذ قيمتين " نعم او لا " " True Or False " الان بعد ان اخذنا فكرة عامة عن المتغيرات وشرحنا لماذا سميت متغيرات ، وشرحنا ايضا عن انواع المتغيرات ، وتطرقنا الى اكثرها شيوعا ، الان السؤال المهم هو ، كيف نستخدم هذه المتغيرات او كيف نقوم بالتصريح عنها ؟ عالميا كل بداية متغير تكتب قبلها كلمة [ Dim ] اي بداية تعريف السطر ، مثال بسيط سنستخدم به نوع من المتغيرات ليكن مثلا [ String ] لاحظو ماذا كتبت صرحت بداية السطر بالـ [ Dim ] ثم كتبت اسم المتغير [ najaf ] ثم كتبت كلمة [ As ] بمعنى انني اخبرت الفيجوال ان هنالك متغير اسمه [ najaf ] وهذه القيمة تكون [ As ] ، تكون من نوع [ String ] اي تاخذ قيمة كتابية فقط وليس رقميه ، بعدها وضعنا قيمة المتغير [ najaf ] انها [ = ] ، [ Dev-Point ] الان عند محاولة استدعاء المتغير ، ناخذ اسم المتغير وليس قيمة المتغير مثلا بعد ان صرحنا المتغير [ najaf ] انه يحتوي على قيمة نصية [ String ] ويكون اسم القيمة [ Dev-Point ] الان عند الاستدعاء نستدعي فقط المتغير [ najaf ] فيعرض لنا القيمة التي بداخله ، ناخذ مثال ابسط لدينا الان صندوق اسمة [ G ] الصندوق يحتوي على اسم [ najaf ] فعندما نطلب منه ان يعرض لنا قيمة [ G ] يعرض لنا [ najaf ] ، النتيجة بعد استدعاء المتغير [ najaf ] قد عرض لنا القيمة [ Dev-Point ] هذه نتيجة الاستدعاء ، استدعينا القيمة التي تكون بداخل المتغير ستتعرف اكثر على انواع المتغيرات بالتمرن الكثير والممارسة ، ستتقنها جميعها تم بحمد الله ، SEMO.Pa3x
  25. [ الموضوع ] ، [ الدرس الاول ، قائمة الادوات ، ماهي ؟ ، كيف نستخدم ادواتها ؟ ، ماهي الادوات المهمة ؟ ] [ في سلسلة دروس البرمجة ] [ Vb.Net ] [ المستوى المتوسط ] - قائمة الادوات ( ToolBox ) ، ماهي ؟ هي عبارة عن قائمة ، توجد في الجانب الايسر للبرنامج ، تحتوي على " الادوات " التي يتم من خلالها اختيار الادوات التي نحتاجها لانشاء مشروعنا البرمجي ، بعض الاشخاص يقومون باغلاق النافذة بغير قصد فكيف نقوم بارجاعها ؟ نضغط من الكيبورد على [ Ctrl + Alt + X ] - قائمة الادوات ( ToolBox ) ، كيف نستخدم ادواتها ؟ لوضع اي اداة في مشروعنا نقوم بالضغط عليها نقرتان ، او نقوم بالنقر المستمر عليها ومن ثم سحبها الى المشروع - قائمة الادوات ( ToolBox ) ، ماهي الادوات المهمة ؟ من اهم واكثر الادوات شيوعا بالاستخدام لدى كل او اغلب المبرمجين ، تتمثل بالتالي [ Button ] [ زر لتنفيذ الاوامر ] [ TextBox ] [ اداة تكتب فيها معلومات وارقام وحروف ] [ ComboBox ] [ قائمة منسدلة تتحكم بعناصرها ] [ Label ] [ لاظهار النصوص ] [ CheckBox ] [ تستخدم للتحقق ] [ ListView ] [ لعرض البيانات باسلوب متطور ] [ PictureBox ] [ اداة عرض الصور ] [ ProgressBar ] [ شريط الحالة ] [ RadioButon ] [ لتحديد خيار واحد من بين عدة خيارات ] [ Timer ] [ مؤقت ، الزمن ] " ملاحظة " كل اداة عند اختيارها ، يمكن التحكم بخصائصها من النافذة [ Properties ] بالنسبة لباقي الادوات فهي لا تختلف عن هذه الادوات التي شرحناها ، فقط اختلاف بسيط تم بحمد الله ، SEMO.Pa3x 
×
×
  • اضف...

Important Information