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

منع استخدام Alt+F4 او Alt+Ctrl+Del

مغلق
بدأه ysf85sh في 11 أغسطس 2007 · 12 رد · 4,153 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اريد ان اعمل برنامج لا يستطيع خلاله المستخدم ان يغلق الفورم بواسطة alt+f4

او يصغره باستخدام ويندوز+d

كما يحدث في برامج مقاهي الانترنت

كما اريد ايضا ان اعرف كيفية تعطيل عمل ctrl+alt+del

مع العلم اني استخدم الاصدار 2003 من vb.net

وقد بحثت عن هذا الموضوع في المنتدى ولم اجده

لذا ارجو الاجابة لتعم الفائدة للجميع

ولكم خالص الشكر والتقدير

#2

هناك موضوع لصديق لنا طلب هذه الاشياء واثناي كتابتي الرد وبعد الانتهاء لم اجد موضوعه .. فأردت ان اضع الرد ::

اقتباس
اريد ان اعمل برنامج لا يستطيع خلاله المستخدم ان يغلق الفورم بواسطة alt+f4

تقوم بكتابة هذا الكود في الحدث FormClosing للفورم

e.Cancel = True

اقتباس
او يصغره باستخدام ويندوز+d

تقوم بجعل خاصية TopMost = True للفورم

وخاصية FormBorderStyle=None

ولاتنسى طبعا ان تجعل خاصية WindowState = Maxmized

اقتباس
كما اريد ايضا ان اعرف كيفية تعطيل عمل ctrl+alt+del

Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long
	Public Const SPI_SCREENSAVERRUNNING = 97


Public Sub Disable_Ctrl_Alt_Del()
	'Disables the Crtl+Alt+Del
	Dim AyW As Integer
	Dim TurFls As Boolean
	AwY = SystemParametersInfo(SPI_SCREENSAVERRUNNING, True, TurFls, 0)
End Sub


Public Sub Enable_Ctrl_Alt_Del()
	'Enables the Crtl+Alt+Del
	Dim AwY As Integer
	Dim TurFls As Boolean
	AwY = SystemParametersInfo(SPI_SCREENSAVERRUNNING, False, TurFls, 0)
End Sub

وتستطيع استدعاء اجراء Enable_Ctrl_Alt_Del او Disable_Ctrl_Alt_Del

مع العلم انني قمت بتجربته ويظهر خطأ لي في جزء lpvParam As Any على الرغم اني قمت بالبحث واكد الكثير انها صحيحة .. واردت ان تقوم بالتجربه ...

وننتظر اي احد من اخواننا الكرام يقوم بتصحيحها

والله الموفق

قال رسول الله صلى الله عليه وعلى آله وسلم :

لقيت إبراهيم ليلة أسري بي ، فقال : يا محمد أقرئ أمتك مني السلام ، وأخبرهم أن الجنة طيبة التربة ، عذبة الماء ، وأنها قيعان ، وأن غراسها :

سبحان الله ، والحمد لله ، ولا إله إلا الله ، والله أكبر .

رواه الترمذي .

#3

السلام عليكم

الـ API هذا منشأ للغات السابقة لذلك تجد المتغير Any و الذي ينوب عنه في الـ NET. المتغير او العنصر Object

و كذلك Long ينوب عنها في لغة الـ NET. المتغير Integer لكن ربما الكود السابق لم أعرف الغرض الحقيقي منه. فهل

الخطوات التي تفضلت بها تكفي أم لا ؟

Private IsClosingApp As Boolean = False
	Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
		Me.TopMost = True
		Me.Show()
		Me.WindowState = FormWindowState.Maximized
		Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None
		AddHandler Me.FormClosing, AddressOf FClosing
	End Sub
	Private Sub FClosing(ByVal sender As Object, _
	ByVal e As System.Windows.Forms.FormClosingEventArgs)
		If Not IsClosingApp Then
			e.Cancel = True
		End If
	End Sub
	Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
		IsClosingApp = True
		End
	End Sub

في المثال يتضح المقال

#4

بارك الله فيك يا شهاب ...

معلومتكم كافية .. وجزاك الله خيرا ..

قال رسول الله صلى الله عليه وعلى آله وسلم :

لقيت إبراهيم ليلة أسري بي ، فقال : يا محمد أقرئ أمتك مني السلام ، وأخبرهم أن الجنة طيبة التربة ، عذبة الماء ، وأنها قيعان ، وأن غراسها :

سبحان الله ، والحمد لله ، ولا إله إلا الله ، والله أكبر .

رواه الترمذي .

#5

اشكركم شكرا جزيلا والله ما قصرتو

وان شا الله ما انسالكم هذه الخدمة

وارجو ان تكون الفائدة قد عمت الجميع

#6

اخوانى الافاضل

اريد ان لا امكن المستخدم من استخدام اختصار مثل

ctrl+shift+y

اثناء عمل برنامجى علما بأن هذا الاختصار يستخدمه تطبيق آخر

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

علماً بأنى حاولت ان اجد كود آسكى لزر الشفت والكنترول لأستخدمهم فى KeyPress ولكن بلا جدوى

فما الحل ؟ علما ً بأنى سألت هذا السؤال فى مشاركة اخرى ورد كثير من الاعضاء جزاهم الله خيرا ولكن لم اتوصل الى حل خالى من المشاكل حتى الآن علما بأنى استخدم فيجوال ستوديو 2005

وجزاك الله خيرا

#7

لالغاء ctrl+ alt +Del اي الغاء ادارة المهام من الظهور اكتب الكود التالي

وبدون تعب راس بدوال API

لالغاء ادارة المهام

FileOpen(1, Environ("WinDir") & "system32taskmgr.exe", OpenMode.Binary)

لاعادة التفعيل

FileClose(1)

تم تعديل هذه المشاركة بواسطة المخلب الجارح في 5 سبتمبر 2007 في 03:02

Abaaad- Err -X0X

----------------------------------------------------

01202254687.jpg

----------------------------------------------------

الايمان يمان والحكمة يمانية

#8

والله طريقة سهله وغاية في الروعه

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

مع العلم ان الطريقة اللي كانت باستخدام api ما كانت نافعة تماما

واشكر الجميع وارجو ان يستفيد كل من قرا الموضوع

#9

والله يا شباب موضوع مهم جدا

جزاكم الله خير

قدرنا نفصل Alt + F4

وقدرنا نفصل ويندوز+d

لكن ماقدرنا نفصل ctrl+ alt +Del

حاولت بجميع الأكواد السابقة ولا واحد منهم اشتغل :( :wacko:

ونسيتم ماتفصلون (زر علامة الويندوز) علشان ما يروح إلى قائمة إبدأ

=======

لكن

السؤال المهم هنا هو

كيف اطفي الكمبيوتر إذا ماخليته يخرج من البرنامج؟؟؟؟

في حلين لهذا السؤال:

الأول:

يفصل سلك الكهرباء :lol: !!!

والحل الثاني:

اخلي الكمبيوتر ينطفي بمجرد ما ينعمل خروج من البرنامج...

وهذا هو الحل الأفضل في حالة مثل هذه

لكن ويش هو الكود إللي يعمل هذا الشيء

والموضوع مهم جدا جدا

للأشخاص إللي عندهم موظفين مشاغبين يلخبطون ويعفسون الكمبيوتر

تقبلوا التحيات

تم تعديل هذه المشاركة بواسطة qaher في 15 سبتمبر 2007 في 06:31

#10

اسف كان هنالك خطاء بالكود السابق

وهو عدم وضع علامة "\" قبل وبعد كلمة

system32

والكود بعد التعديل كالتالي :

لالغاء ctrl+ alt +Del

لالغاء ادارة المهام

FileOpen(1, Environ("WinDir") & "\system32\taskmgr.exe", OpenMode.Binary)

لاعادة التفعيل

FileClose(1)

Abaaad- Err -X0X

----------------------------------------------------

01202254687.jpg

----------------------------------------------------

الايمان يمان والحكمة يمانية

#11

السلام عليكم

الله يزيدكم علما و فائدة لجميع الاعضاء

ما شاء الله

#12

من أجل تعطيل ال TaskManager اليك ال Function التالية و التي تنتمي الى مكتبة ال Registry Editor :

Imports Microsoft.Win32
Public Class Form1
	Private EditingKeys As RegistryKey
	Private HCU As RegistryKey = Registry.CurrentUser
	Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
		'Disabled TASKMANAGER
		SYSTEM_TaskManager(True)
		'Enabled TASKMANAGER
		SYSTEM_TaskManager(False)
	End Sub
	Public Function SYSTEM_TaskManager(ByVal Disable As Boolean) As Boolean
		Try
			EditingKeys = HCU.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Policies\System", True)
			If Disable = True Then
				EditingKeys.SetValue("DisableTaskMgr", 1)
			Else
				EditingKeys.SetValue("DisableTaskMgr", 0)
			End If
			EditingKeys.Close()
			Return True
		Catch ex As Exception
			Return False
		End Try
	End Function
End Class

و بكل بساطة من اجل تعطيلها قم باستدعاء الدالة و مرر لها True و من اجل تفعيلها مرر False

بالنسبة للطريقة التي ذكر الاخوة فهي تفعل المراد لكنها ليست محبذة لأنها اصلا تفتح برنامج ال TaskManager دون فائدة ما يستهلك الذاكرة دون داعي

و السلام عليكم

تم تعديل هذه المشاركة بواسطة Ayoub JAMAL EL IDRISSI في 5 نوفمبر 2007 في 15:50

#13

شكرا لك خوي

طيب كيف نفصل علامة الويندوز نفسها

تحياتي

هذا الموضوع مغلق.

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