2009-03-05 15 views
5

में मैं अपने डेल्फी अनुप्रयोग में एक TWebbrowser घटक उपयोग कर रहा हूँ, जिनकी सामग्री मैं प्रोग्राम के रूप में लोड:कष्टप्रद क्लिक ध्वनि TWebbrowser

(aWebBrowser.Document as IPersistStreamInit). 
           Load(TStreamAdapter.Create(aMemoryStream)) 

हर लोड पर घटक एक कष्टप्रद क्लिक ध्वनि पैदा करता है। क्या यह अक्षम किया जा सकता है?
टीआईए

उत्तर

18

URLMON.DLL में CoInternetSetFeatureEnabled प्रक्रिया को देखें, जैसा कि here दस्तावेज है। आपके ऐप के लिए FEATURE_DISABLE_NAVIGATION_SOUNDS को सक्षम करने से आपको वही करना होगा जो आपको चाहिए।

1

कोई भी मौका यह है कि यह विंडोज मानक "प्रारंभ नेविगेशन" ध्वनि है (देखें "नियंत्रण कक्ष" - "ध्वनि और ऑडियो डिवाइस")?

7

यह windows setting है। मुझे यकीन नहीं है कि आपके एप्लिकेशन को उस सेटिंग को बदलना चाहिए।

+0

यह मैं – Cletrix

2

ठीक है, यहाँ मैं क्या करने की कोशिश की है:

procedure TForm1.FormCreate(Sender: TObject); 
begin 
    Application.OnActivate := AppActivate; 
    Application.OnDeactivate := AppDeactivate; 
end; 

procedure TForm1.AppActivate(Sender: TObject); 
begin 
    with TRegistry.Create do 
    try 
    RootKey := HKEY_CURRENT_USER; 
    OpenKey('AppEvents\Schemes\Apps\Explorer\Navigating\.Current', False); 
    if ReadString('') <> '' then 
     RememberSoundFile := ReadString(''); 
    WriteString('', ''); 
    finally 
    Free; 
    end; 
end; 

procedure TForm1.AppDeactivate(Sender: TObject); 
begin 
    with TRegistry.Create do 
    try 
    RootKey := HKEY_CURRENT_USER; 
    OpenKey('AppEvents\Schemes\Apps\Explorer\Navigating\.Current', False); 
    WriteString('', RememberSoundFile); 
    finally 
    Free; 
    end; 
end; 

यह fugly है, लेकिन यह काम करता है। :-) जबकि मैं मूल रूप से डेवी के साथ इस समाधान से सहमत हूं, कम से कम इसका लाभ यह है कि अन्य अनुप्रयोग प्रभावित नहीं होंगे।
मैं इसे क्लिक अक्षम करने के लिए उपयोगकर्ता विकल्प के रूप में जोड़ सकता हूं, लेकिन व्यक्तिगत रूप से मैं वास्तव में इसे चाहता हूं!

+0

के लिए देख रहा था, "अन्य अनुप्रयोग प्रभावित नहीं होंगे", जबकि आपका एप्लिकेशन चल रहा है अन्य सभी एप्लिकेशन प्रभावित होंगे। इस तथ्य का जिक्र नहीं है कि यदि आपका एप्लिकेशन क्रैश हो जाता है या आपकी सेटिंग्स बिल्कुल बहाल नहीं होती है .. (इसे थोड़ा और मजबूत बनाने के लिए इसे अपने app.dpr में एक कोशिश पकड़ ब्लॉक में करें) –

+0

यह अंतर्निहित स्टोरेज सेट कर रहा है आईई सेटिंग को नियंत्रित करने के लिए उपयोग करता है। यह सभी अनुप्रयोगों को प्रभावित करता है। जबकि आपके ऐप पर ध्यान केंद्रित किया गया है, अन्य ऐप्स ध्वनि नहीं बनाएंगे। अपने ऐप के लिए इसे सेट करने के लिए प्रलेखित CoInternetSetFeatureEnabled का उपयोग करें। इसे अपने ऐप लाभ के रूप में टॉगल करने की आवश्यकता नहीं है और फोकस खो देता है। –

+1

मैंने निक के जवाब को स्वीकार किया। अन्य ऐप्स के लिए, मेरे लिए यह तब भी बेहतर होता है जब वे ध्यान न रखें, जबकि उनके पास फोकस न हो। डेवी, आप दुर्घटना की स्थिति के बारे में सही हैं, लेकिन मेरे अनुप्रयोग कभी दुर्घटनाग्रस्त नहीं हैं (हाँ, दाएं :-)) – stevenvh

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