منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] vb.net منع ويندوز 11 من الاسبات - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [سؤال] vb.net منع ويندوز 11 من الاسبات (/showthread.php?tid=55529)



vb.net منع ويندوز 11 من الاسبات - justforit - 15-11-25

السلام عليكم ورحمة الله و بركاته
سالت قوقل السؤال التالي:
إقتباس :vb.net منع ويندوز 11 من الاسبات او الاغلاق الا بعد اتمام عمل البرنامج
 و قال لي:
كود :
Public Class MyForm
   Public Sub PreventShutdown()
       ' منع الإسبات والإغلاق تلقائيًا
       Application.CurrentCulture = New System.Globalization.CultureInfo("en-US")
       Application.CurrentCulture.DateTimeFormat.LongDatePattern = "yyyy-MM-dd HH:mm:ss"
       Application.CurrentCulture.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd"
       Application.CurrentCulture.DateTimeFormat.LongTimePattern = "yyyy-MM-dd HH:mm:ss"
       Application.CurrentCulture.DateTimeFormat.ShortTimePattern = "yyyy-MM-dd HH:mm:ss"
       Application.CurrentCulture.DateTimeFormat.TimeSeparator = ":"
       Application.CurrentCulture.DateTimeFormat.DateSeparator = "-"
       Application.CurrentCulture.DateTimeFormat.FullDateTimePattern = "yyyy-MM-dd HH:mm:ss"
       Application.CurrentCulture.DateTimeFormat.AMDesignator = ""
       Application.CurrentCulture.DateTimeFormat.PMDesignator = ""
   End Sub

   Public Sub AllowShutdown()
       ' السماح بالإسبات والإغلاق تلقائيًا
       Application.CurrentCulture = New System.Globalization.CultureInfo("ar-SA")
   End Sub
End Class
إقتباس :ملاحظات
يجب استدعاء PreventShutdown قبل أي عملية حساسة تتطلب منع الإسبات والإغلاق.
يجب استدعاء AllowShutdown بعد الانتهاء من العملية الحساسة.
مافهمت ايش دخل التاريخ ؟؟
اريد منع ويندوز من الاسبات او الاغلاق حتى يتم انهاء حلقة for لاني اريده ايضا ان يطفي الحاسوب  بكود بسيط.
كود :
If okclose Then
    My.Computer.FileSystem.WriteAllText(errorlogd, i & vbNewLine & Now & vbNewLine & "يتم التحضير لاغلاق الجهاز " & vbNewLine & "========================" & vbNewLine, True)
    Shell("shutdown /s /f /t 0", AppWinStyle.Hide)
End If



RE: vb.net منع ويندوز 11 من الاسبات - أبو خالد الشكري - 16-11-25

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

جرب الكود التالي :


كود :
Imports System.Runtime.InteropServices
Public Class Form1
   <DllImport("kernel32.dll", SetLastError:=True)>
   Private Shared Function SetThreadExecutionState(ByVal esFlags As EXECUTION_STATE) As EXECUTION_STATE
   End Function

   <Flags>
   Private Enum EXECUTION_STATE As UInteger
       ES_CONTINUOUS = &H80000000UI
       ES_DISPLAY_REQUIRED = &H2
       ES_SYSTEM_REQUIRED = &H1
   End Enum

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       'For هذا الزر الذي يحتوي على كود حلقة

       SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS Or
                               EXECUTION_STATE.ES_SYSTEM_REQUIRED Or
                               EXECUTION_STATE.ES_DISPLAY_REQUIRED)

       'For ضع هنا كود حلقة
       '=============================================





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

       ' أخيرا إعادة الإسبات لوضعه الطبيعي
       SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS)

   End Sub
End Class



RE: vb.net منع ويندوز 11 من الاسبات - justforit - 16-11-25

(16-11-25, 12:04 AM)أبو خالد الشكري كتب : وعليكم السلام ورحمة الله وبركاته

جرب الكود التالي :


كود :
Imports System.Runtime.InteropServices
Public Class Form1
   <DllImport("kernel32.dll", SetLastError:=True)>
   Private Shared Function SetThreadExecutionState(ByVal esFlags As EXECUTION_STATE) As EXECUTION_STATE
   End Function

   <Flags>
   Private Enum EXECUTION_STATE As UInteger
       ES_CONTINUOUS = &H80000000UI
       ES_DISPLAY_REQUIRED = &H2
       ES_SYSTEM_REQUIRED = &H1
   End Enum

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       'For هذا الزر الذي يحتوي على كود حلقة

       SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS Or
                               EXECUTION_STATE.ES_SYSTEM_REQUIRED Or
                               EXECUTION_STATE.ES_DISPLAY_REQUIRED)

       'For ضع هنا كود حلقة
       '=============================================





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

       ' أخيرا إعادة الإسبات لوضعه الطبيعي
       SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS)

   End Sub
End Class

شكر الله لك  و بارك فيك
ان شاء الله ساجرب بالكود.