2012-04-22 10 views
10

मैं एक ऐप विकसित करना चाहता हूं जो उपयोगकर्ता को खोलने या खोलने के दौरान किसी अन्य एप्लिकेशन पर जाने की अनुमति नहीं देगा। यह Visual Basic में होना चाहिए। उदाहरण के लिए, यदि मेरा एप्लिकेशन खुला है (चल रहा है) और उपयोगकर्ता "मीडिया प्लेयर" जैसे किसी भी अन्य विंडोज़ एप्लिकेशन को खोलने का प्रयास करता है तो इसे खोलना नहीं चाहिए। ऐप को "टास्क मैनेजर" को चलाने की इजाजत नहीं देनी चाहिए। एप्लिकेशन चलने के दौरान विंडोज वातावरण को पूरी तरह अवरुद्ध कर देना चाहिए।एक ऐसा एप्लिकेशन विकसित करें जो इसका ध्यान न खोएं?

+2

अच्छा, –

+2

के साथ अच्छी किस्मत यदि आप कई इलेक्ट्रॉनिक स्टोरों में पाए गए कियोस्क एप्लिकेशन बना रहे हैं, तो आपको अपने स्वयं के एप्लिकेशन में प्रतिबंधों की तुलना में विंडोज 7 में समूह नीति पर भरोसा करना होगा। Google, "विंडोज 7 में कार्य प्रबंधक अक्षम करें" –

+0

इसे "सिस्टम मोडल विंडो" कहा जाता था। मैं कहता हूं "प्रयोग किया जाता है" क्योंकि Win32 के बाद से, माइक्रोसॉफ्ट द्वारा ऐसा करने के लिए कोई अंतर्निहित तरीका प्रदान नहीं किया गया है, और वे इसे करने की कोशिश करने से भी हतोत्साहित करते हैं। (हालांकि वे कभी-कभी अपने उत्पादों के लिए ऐसा करने का प्रयास करते हैं)। तार्किक सोच के लिए – RBarryYoung

उत्तर

14

एक बहुत अच्छा सवाल है। :)

वीबी में इसे हासिल करना संभव है?

उत्तर हाँ है!

क्या यह आसान है?

निश्चित रूप से नहीं!

हालांकि समस्या से संपर्क करने के तरीके पर कुछ सुझाव दिए गए हैं।

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

+0

+1। –

+0

+1 भयानक सामान –

+0

धन्यवाद प्रदीप/जेएफसी :) –

0

अपनी खुद की "सैंडबॉक्स" लेकिन बहुत सावधान बनाने के लिए Desktop APIi पर एक नजर डालें के रूप में यह बहुत आसान है प्राथमिक डेस्कटॉप से ​​खुद को लॉक करने के लिए।

कुछ और जानकारी के लिए this question भी देखें।

संबंधित मुद्दे