प्रोग्रामिंग उत्पादकता: टाइप करते समय कर्सर को कैसे छिपाएं


9

जब भी मैं कुछ कोड टाइप करने के लिए कहीं पर क्लिक करता हूं, तो परिभाषा के अनुसार मेरा माउस कर्सर वही है, जो अस्पष्ट है कि मैं क्या टाइप करने की कोशिश कर रहा हूं। अक्सर, अगर मैं टाइप करना शुरू करने से पहले कर्सर को स्थानांतरित करना भूल जाता हूं, तो मैं अपने आप को अपने कीबोर्ड से वापस अपने माउस पर ले जाता हूं, बस कर्सर को रास्ते से हटने के लिए और फिर टाइपिंग पर वापस जाता हूं।

मुझे पता है कि एक ओएस-स्तर "टाइपिंग कर्सर छिपा रहा है" विकल्प है, लेकिन ऐसा लगता है कि विज़ुअल स्टूडियो में कोई प्रभाव नहीं है।

इसके अलावा, मैं उन उपयोगों के बारे में जानता हूं जो पृष्ठभूमि (Ie CursorHider ) में लगातार चल सकते हैं , लेकिन, स्थिरता के कारणों से, मैं पहले से चल रहे कई लोगों के शीर्ष पर एक और पृष्ठभूमि सेवा चलाने में संकोच कर रहा हूं।

क्या कोई हल है?


Superuser.com के लिए अच्छा सवाल है। :-)
फ्रैंकी पेनोव

ठीक है, आप एक मैक का उपयोग कर सकते हैं ...
dmckee --- पूर्व-मध्यस्थ बिल्ली का बच्चा

मेरे लिए, माउस को दूर ले जाना एक पलटा हुआ है जिसके बारे में मैंने सोचा भी नहीं था। (अर्थात, जब तक मैं नियमित रूप से संपादकों का उपयोग बंद कर दिया और vim उपयोग शुरू कर दिया)
Hasen

जवाबों:


5

आपकी तरह, मुझे भी हमेशा से यही समस्या रही है। इसलिए मैंने एक छोटी सी स्क्रिप्ट लिखी है जो माउस कर्सर को छुपाती है चाहे आप विंडोज एप्लिकेशन का उपयोग कर रहे हों।

ध्यान दें कि यदि आप विज़ुअल स्टूडियो (या कुछ भी) को उन्नत मोड में चलाते हैं, तो आपको मेरी उपयोगिता को भी उन्नत मोड में चलाने की आवश्यकता होगी।


मुझे संदेह है कि क्या इस तरह के एक शक्तिशाली तरीका सभी स्थितियों में सही है। जब भी किसी कुंजी को टाइप किया जाता है, तो कर्सर का गायब होना खेलों से बहुत परेशान हो सकता है।
ry:ry बजे

उस स्थिति में आप इसे एक गेम के दौरान अनलोड कर सकते हैं ... उस ने कहा, मेरा मानना ​​है कि अधिकांश गेम अपने स्वयं के कर्सर को लागू करते हैं
स्टीफन जेड कैमिलेरी

Windows-Cursor-Hider अब तक अच्छा काम करता है। मुझे AHK स्क्रिप्ट की तरह कुछ सरल लग रहा था। धन्यवाद @StefanZCamilleri!
russds

3

ऐसा लगता है कि टाइपिंग के दौरान "पॉइंटर पॉइंटर को टाइप करें" की कार्यक्षमता एप्लीकेशन पर निर्भर करती है।

यह विकल्प मेरे माउस के पॉइंटर विकल्पों में टिक गया है, और नोटपैड, वर्डपैड, वर्ड और विजुअल स्टूडियो 6 जैसे अनुप्रयोगों के लिए काम करता है। लेकिन यह फ़ायरफ़ॉक्स और विज़ुअल स्टूडियो 2008 जैसे अन्य अनुप्रयोगों के लिए काम नहीं करता है।

मेरा मानना ​​है कि जिन अनुप्रयोगों में यह काम नहीं करता है, वे गलत तरीके से कर्सर को बार-बार दिखाने के लिए प्रोग्राम किए जाते हैं। एक प्रोग्रामर के रूप में, मैं आपको बता सकता हूं कि विंडोज में कर्सर की प्रोग्रामिंग एक बड़ी गड़बड़ी है, जहां आखिरकार समझदारी रखने का एकमात्र तरीका कुछ घटनाओं पर कर्सर को बार-बार पुनर्गठित करना है। जाहिर है, विजुअल स्टूडियो 2008 के पीछे के प्रोग्रामर समान शॉर्टकट ले गए हैं।


यह एक गलत धारणा है, क्योंकि यदि आप कर्सर को एक ओएस स्तर पर छिपाते हैं, तो यह छिपा रहेगा, कर्सर को दिखाने के लिए मजबूर करने के विचार को शून्य कर देगा (जो इसे ओवरराइड करेगा) - pls नीचे मेरा जवाब देखें
स्टीफन जेड कैमिलर

1

मुझे पता है कि यह संभवतः आपके लिए एक व्यवहार्य समाधान नहीं है, लेकिन मुझे आईडीई के भीतर हर चीज के लिए महत्वपूर्ण बाइंडिंग करके माउस का उपयोग नहीं करना पसंद है। मैं माउस को छूने के बिना फलक से फलक, त्रुटि में त्रुटि आदि के लिए कूद सकता हूं। यदि आपकी कक्षाएं अच्छी और छोटी हैं, तो भी आपको कक्षाओं को बहुत ऊपर और नीचे स्क्रॉल करने की आवश्यकता नहीं होगी (और यदि आपके पास तीर कुंजी पर्याप्त होती तो भी)।


0

संपादन नियंत्रण की मूल विंडो के WndProc में EN_UPDATE को पकड़ने और कर्सर की स्थिति निर्धारित करने के साथ "टाइप पॉइंटर को टाइप करते हुए" से आप बच सकते हैं:

void CreateEdit( HWND hWnd )
{

    WNDCLASSEX wndClass;

    memset( &wndClass, 0, sizeof( wndClass ) );

    wndClass.cbSize = sizeof( wndClass );
    wndClass.style = CS_SAVEBITS;
    wndClass.lpfnWndProc = WndProcEditParent;
    wndClass.cbClsExtra = 0;
    wndClass.cbWndExtra = 0;
    wndClass.hInstance = GetModuleHandle( NULL );
    wndClass.hIcon = NULL;
    wndClass.hCursor = NULL;
    wndClass.hbrBackground = NULL;
    wndClass.lpszMenuName = NULL;
    wndClass.lpszClassName = L"EditParent";

    RegisterClassEx( &wndClass );

    HWND hWndEditParent = CreateWindowEx( 0
        , L"EditParent"
        , L""
        , WS_CHILD | WS_BORDER
        , 0
        , 0
        , 0
        , 0
        , hWnd
        , NULL
        , GetModuleHandle( NULL )
        , 0 );

    HWND hWndEdit = CreateWindowEx( 0
        , L"Edit"
        , L""
        , WS_CHILD
        , 0
        , 0
        , 0
        , 0
        , hWndEditParent
        , NULL
        , GetModuleHandle( NULL )
        , 0 );

    ...
}


LRESULT CALLBACK Edit::WndProcEditParent( HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam )
{
    switch( iMessage )
    {
        ...
        case WM_COMMAND:
            if( HIWORD( wParam ) == EN_UPDATE )
            {
            // this is the hack to avoid "hide pointer while typing"
                POINT point;

                GetCursorPos( &point );
                SetCursorPos( point.x, point.y );
            }
            break;
        ...
    }

    return DefWindowProc( hWnd, iMessage, wParam, lParam );
}

1
यह एक बहुत अच्छा जवाब हो सकता है, लेकिन मुझे नहीं पता कि इसका उपयोग कैसे करना है। कृपया एक स्पष्टीकरण जोड़ें। टिप्पणियों में प्रतिक्रिया न करें;  इसे स्पष्ट और अधिक पूर्ण बनाने के लिए अपना उत्तर संपादित करें।
जी-मैन का कहना है कि 'मोनिका'
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.