2008-10-09 24 views
57

में समाधान एक्सप्लोरर का पृष्ठभूमि रंग बदलें क्या थीम का उपयोग कर विजुअल स्टूडियो में समाधान एक्सप्लोरर के पृष्ठभूमि रंग को बदलने का कोई तरीका है? - या उस मामले के लिए कोई और तरीका?विजुअल स्टूडियो

मैं इसे विंडोज-व्यापी रंग सेटिंग्स बदलकर बदल सकता हूं, लेकिन जाहिर है कि बहुत अधिक प्रभावित करता है।

उत्तर

35

बस एक घंटे से भी कम समय में वीएस एक्सटेंशन बनाया, "SExColor" के लिए खोज एक्सटेंशन प्रबंधक। आनंद लें;)

+1

में इस फलक के लिए रंग योजना भी बदलना चाहूंगा हे अच्छा काम! आपने यह कैसे किया? – zadam

+0

तुच्छ, समाधान एक्सप्लोरर विंडो ढूंढना जो एक वृक्षदृश्य नियंत्रण है , और रंग बदलने के लिए विंडोज संदेश भेजना :) –

+0

@aloneguid मुझे कहीं भी वीएस -2008 संस्करण मिल सकता है? (या इसके लिए स्रोत कोड प्राप्त करें?) – ver

4
दृश्य स्टूडियो से ही विन्यास की किसी भी तरह से नहीं

हालांकि आप शायद Win32 एपीआई (खिड़की गणना "देखें) से विंडो ऑब्जेक्ट को" हैक "कर सकते हैं। एक बार आपके पास विंडो हैंडल हो जाने पर, आप अपने इच्छित सभी पात्रों को सेट कर सकते हैं।

सादर

/रॉबर्ट

+0

मैं मुझे लगता है कि कर सकता है चाहता हूँ। अन्यथा एक सांप विषय की कोई आवश्यकता नहीं है :-( – Stephan

+0

वीएस 2010 के साथ ऐसा करने का कोई तरीका? –

+0

शायद "सामान्य" विंडो प्रबंधन के माध्यम से नहीं, क्योंकि वीएस -2010 WPF के साथ बनाया गया है। कार्य को पूरा करने के अन्य तरीके हो सकते हैं हालांकि, यहां तक ​​कि "कानूनी" विधियां भी। – sharkin

4

यहां तक ​​कि मानक Windows पृष्ठभूमि रंग बदलने के समाधान Explorer के लिए काम नहीं करता। यह विजुअल स्टूडियो bug report इस मुद्दे का उल्लेख करता है। माइक्रोसॉफ्ट ने इसे "बंद - ठीक नहीं किया जाएगा" के रूप में चिह्नित किया है।

कौन सा बहुत परेशान है! एक अंधेरे विषय का उपयोग करना और स्क्रीन के किनारे लटकते हुए एक उज्ज्वल सफेद समाधान एक्सप्लोरर होना बेहद परेशान है।

एक संभावित समाधान समाधान एक्सप्लोरर का उपयोग नहीं करना है। Productivity Power Tools एक समाधान एक्सप्लोरर प्रतिस्थापन प्रदान करता है जिसे "समाधान नेविगेटर" कहा जाता है। यह वर्तमान में सफेद के लिए भी कठोर कोडित है। लेकिन मुझे लगता है कि माइक्रोसॉफ्ट को विजुअल स्टूडियो में ऐसा करने के बजाय रंगों को संशोधित करने के लिए समर्थन जोड़ने के लिए उस उपकरण के डेवलपर्स को प्राप्त करने का शायद एक बेहतर मौका है। (भले ही माइक्रोसॉफ्ट ने पीपीटी बनाया।)

10

@aloneguid ... यह बहुत समय पहले देखा जाना चाहिए .. धन्यवाद श्रीमान!

@ver (समाधान के लिए बनाम 2008 समाधान के संबंध में;) - एक बी 52 प्रकार का दृष्टिकोण, किसी भी चीज़ पर कालीन बमबारी जो SysTreeView32 को devenv.exe के अंदर है। इच्छित रंग के लिए संभव अतिरिक्त परम, अन्यथा आरजीबी (220,220,220) - सबसे अच्छा मेरे लिए काम करता

#include <windows.h> 
#include "psapi.h" 
#include "shlwapi.h" 
#include "commctrl.h" 


COLORREF clr = RGB(220,220,220); 

BOOL CALLBACK wenum(HWND hwnd, LPARAM lParam) 
{ 
    const UINT cb = 261; 
    static wchar_t name[] = L"SysTreeView32", 
        tmp[cb] = {0}; 
    if(::GetClassNameW(hwnd, tmp, 260) && 0 == _wcsicmp(name, tmp)) 
    { 
     ::SendMessageW(hwnd, TVM_SETBKCOLOR, 0, (LPARAM)clr); 
    } 

    return TRUE; 
} 

BOOL CALLBACK EnumTops(HWND hwnd, LPARAM lParam) 
{ 
    DWORD    dwThreadId = 0, 
        dwProcessId = 0; 
    HINSTANCE   hInstance; 
    static wchar_t derVS[]  = L"devenv.exe"; 
    wchar_t name[_MAX_PATH] = {0}, 
      *exe    = 0; 

    HANDLE hProcess; 
    if (!hwnd) return TRUE;  // Not a window 
    if (!::IsWindowVisible(hwnd)) return TRUE;  // Not visible 

    if (!SendMessage(hwnd, WM_GETTEXT, sizeof(name), (LPARAM)name)) 
     return TRUE;  // No window title 
    dwThreadId = GetWindowThreadProcessId(hwnd, &dwProcessId); 
    hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessId); 
    if(!GetModuleFileNameEx(hProcess, 0, name, sizeof(name))) goto exit; 

    exe = ::PathFindFileNameW(name); 
    if((void*)exe == (void*)name) goto exit; // mhm? maybe not exit? 

    if(_wcsicmp(derVS, exe)) goto exit; 

    EnumChildWindows(hwnd, wenum, (LPARAM)hProcess); 

exit: 
    CloseHandle(hProcess); 
    int res = GetLastError(); 
    return res; 
} 

int wmain(int argc, wchar_t * argv[]) 
{ 
    if(argc >= 2) 
    { 
     wchar_t *end = 0; 
     long l = wcstol(argv[1], &end, 16); 
     clr = (DWORD)l; 
    } 
    ::EnumWindows(EnumTops, NULL); 
    return 0; 
} 
+0

बढ़िया! एक इलाज किया - अच्छा काम! – user1229458

+1

क्या कोई इस कोड का सी # संस्करण बना सकता है? – Tom

+5

+1 इसे कार्पेट बमबारी कहने के लिए। – TheBlastOne

3

आप अन्य extenssion इस्तेमाल कर सकते हैं, तो आप अपने दृश्य स्टूडियो अधिक अच्छी लग रही करने के लिए काफी बड़ा संभावनाएं है;) (लेकिन मैं कर रहा हूँ यकीन नहीं अगर वहाँ आप समाधान एक्सप्लोरर पृष्ठभूमि को बदल सकता है)

http://visualstudiogallery.msdn.microsoft.com/20cd93a2-c435-4d00-a797-499f16402378

+0

मुझे समाधान एक्सप्लोरर पृष्ठभूमि या कई अन्य विचारों के पृष्ठभूमि रंग के लिए कोई सेटिंग नहीं मिल सका। –

+4

वीएस थीम संपादक एक्सटेंशन डाउनलोड करने के बाद, थीम संपादित करें। "सभी तत्व दिखाएं" बटन पर क्लिक करें। जिस संपत्ति को आप बदलना चाहते हैं उसे "ट्रीव्यूव -> पृष्ठभूमि" कहा जाता है। – csigrist

+0

@csigrist मैं ... प्यार ... आप ... सोमच! याद किया कि ऐसा कोई विकल्प था। मैं आपका उल्लेख ऊपर रखने की सिफारिश करता हूं; यह वीएस2013 (और 12?) के लिए असली समाधान है और संभवतः लोगों को बहुत समय बचाएगा यदि वे इसे दबाते हैं और आपकी टिप्पणी देखने के लिए नहीं होते हैं। एक टिप्पणी छोड़ दो कि आपने यह किया है मैं वापस आऊंगा और आपको वोट दूंगा। :) ♥ वाह, आखिरकार मैं इस आईडीई को दिखाना चाहता हूं जैसा मैं चाहता हूं। – shelleybutterfly

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