मैं एक ऐप विकसित करना चाहता हूं जो उपयोगकर्ता को खोलने या खोलने के दौरान किसी अन्य एप्लिकेशन पर जाने की अनुमति नहीं देगा। यह Visual Basic
में होना चाहिए। उदाहरण के लिए, यदि मेरा एप्लिकेशन खुला है (चल रहा है) और उपयोगकर्ता "मीडिया प्लेयर" जैसे किसी भी अन्य विंडोज़ एप्लिकेशन को खोलने का प्रयास करता है तो इसे खोलना नहीं चाहिए। ऐप को "टास्क मैनेजर" को चलाने की इजाजत नहीं देनी चाहिए। एप्लिकेशन चलने के दौरान विंडोज वातावरण को पूरी तरह अवरुद्ध कर देना चाहिए।एक ऐसा एप्लिकेशन विकसित करें जो इसका ध्यान न खोएं?
उत्तर
एक बहुत अच्छा सवाल है। :)
वीबी में इसे हासिल करना संभव है?
उत्तर हाँ है!
क्या यह आसान है?
निश्चित रूप से नहीं!
हालांकि समस्या से संपर्क करने के तरीके पर कुछ सुझाव दिए गए हैं।
1) अक्षम कार्य प्रबंधक
Sub DisableTaskManager()
Shell "REG add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableTaskMgr /t REG_DWORD /d 1 /f", vbNormalFocus
End Sub
Sub EnableTaskManager()
Shell "REG add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableTaskMgr /t REG_DWORD /d 0 /f", vbNormalFocus
End Sub
2) सुनिश्चित करें कि आपका कार्यक्रम पर हमेशा होता है शीर्ष
क) कार्य पट्टी
Option Explicit
'~~> http://allapi.mentalis.org/apilist/FindWindow.shtml
Private Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName _
As String) As Long
'~~> http://allapi.mentalis.org/apilist/SetWindowPos.shtml
Private Declare Function SetWindowPos Lib "user32" _
(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
ByVal x As Long, ByVal y As Long, ByVal cx As Long, _
ByVal cy As Long, ByVal wFlags As Long) As Long
Private Const SWP_HIDEWINDOW = &H80
Private Const SWP_SHOWWINDOW = &H40
'~~> Show/Hide Taskbar
Sub Sample()
'~~> To show the taskbar
ShowTskBar True
'~~> To hide the taskbar
ShowTskBar False
End Sub
Sub ShowTskBar(ShouldI As Boolean)
Dim Sid As Long
Sid = FindWindow("Shell_traywnd", "")
If ShouldI = True Then
If Sid > 0 Then _
Sid = SetWindowPos(Sid, 0, 0, 0, 0, 0, SWP_SHOWWINDOW)
Else
If Sid > 0 Then _
Sid = SetWindowPos(Sid, 0, 0, 0, 0, 0, SWP_HIDEWINDOW)
End If
End Sub
छुपाएं
ख) शीर्ष
'~~> http://www.allapi.net/apilist/SetWindowPos.shtml
Private Declare Function SetWindowPos Lib "user32" _
(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
ByVal x As Long, ByVal y As Long, ByVal cx As Long, _
ByVal cy As Long, ByVal wFlags As Long) As Long
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOACTIVATE = &H10
Const SWP_SHOWWINDOW = &H40
Private Sub Form_Activate()
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, _
SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
End Sub
ख पर अपने आवेदन हमेशा दिखाएं) अधिकतम मोड
में आपके आवेदन दिखाएँ ताकि डेस्कटॉप केवल आपके प्रपत्र पता चलता है अपने रूप को अधिकतम के रूप में यह एक कियोस्क एप्लिकेशन में से पता चलता । आवश्यकता के आधार पर आप न्यूनतम बटन या शीर्षक पट्टी को भी अक्षम कर सकते हैं। ऐसे मामले में एक बटन जोड़ने के लिए याद रखें ताकि उपयोगकर्ता फ़ॉर्म से बाहर निकलने के लिए उस पर क्लिक कर सके।
3) अक्षम प्रारंभ मेनू
इस कोड को Windows संस्करण है कि आप प्रयोग कर रहे हैं पर निर्भर करता है। Google पर एक खोज करें, आपको बहुत सारे उदाहरण मिलेंगे।
इसी तरह, आपको कुछ छोटी छोटी चीजों का ख्याल रखना होगा लेकिन यह पोस्ट आपको अच्छी शुरुआत देगा। आप देख रहे हैं एक ही स्थान पर तो में एक पूर्ण समाधान के लिए मुझे शक है क्या आपने कभी यह मिल जाएगा;)
HTH
+1। –
+1 भयानक सामान –
धन्यवाद प्रदीप/जेएफसी :) –
अपनी खुद की "सैंडबॉक्स" लेकिन बहुत सावधान बनाने के लिए Desktop APIi पर एक नजर डालें के रूप में यह बहुत आसान है प्राथमिक डेस्कटॉप से खुद को लॉक करने के लिए।
कुछ और जानकारी के लिए this question भी देखें।
अच्छा, –
के साथ अच्छी किस्मत यदि आप कई इलेक्ट्रॉनिक स्टोरों में पाए गए कियोस्क एप्लिकेशन बना रहे हैं, तो आपको अपने स्वयं के एप्लिकेशन में प्रतिबंधों की तुलना में विंडोज 7 में समूह नीति पर भरोसा करना होगा। Google, "विंडोज 7 में कार्य प्रबंधक अक्षम करें" –
इसे "सिस्टम मोडल विंडो" कहा जाता था। मैं कहता हूं "प्रयोग किया जाता है" क्योंकि Win32 के बाद से, माइक्रोसॉफ्ट द्वारा ऐसा करने के लिए कोई अंतर्निहित तरीका प्रदान नहीं किया गया है, और वे इसे करने की कोशिश करने से भी हतोत्साहित करते हैं। (हालांकि वे कभी-कभी अपने उत्पादों के लिए ऐसा करने का प्रयास करते हैं)। तार्किक सोच के लिए – RBarryYoung