2010-01-25 36 views
8

मैं माइक्रोसॉफ्ट के छोड़े गए Super Fast User Switcher (download) के समान उपयोगिता बनाने की कोशिश कर रहा हूं, जो वेलकम स्क्रीन के बिना बिना तेजी से उपयोगकर्ता स्विचिंग की अनुमति देता है।एक इंटरैक्टिव लॉगऑन सत्र बनाएं

मैं गैर-दस्तावेजी WinStationConnectW एपीआई (WTSEnumerateSessions के साथ) का उपयोग कर एक काम कार्यान्वयन है, लेकिन यह केवल एक उपयोगकर्ता जो पहले से ही में लॉग ऑन है करने के लिए स्विच कर सकते हैं।

मैं एक लॉगिन सत्र कैसे बना सकते हैं इतना है कि यह स्विच कर सकते हैं उस उपयोगकर्ता को जो लॉग इन नहीं है?
मुझे केवल XP का समर्थन करने की आवश्यकता है, हालांकि Vista/Seven पर काम करना अच्छा लगेगा। (मेरा वर्तमान कोड पहले से ही करता है)

मुझे पता है कि यह संभव है क्योंकि सुपर फास्ट यूजर स्विचर इसे करता है। (हालांकि इसे करने के लिए इसे विंडोज सेवा की आवश्यकता है)

मैं सी # लिख रहा हूं, लेकिन मैं किसी भी उत्तर को सी # में अनुवाद कर सकता हूं।

+0

क्या आपने लॉगऑनसर को पी/Invoking करने का प्रयास किया था? –

+0

@nobugz: 'LogonUser' एक उपयोगकर्ता टोकन बनाता है, लॉगऑन सत्र नहीं। मैं पहले से ही पासवर्ड सत्यापित करने के लिए इसका उपयोग कर रहा हूँ। – SLaks

+1

चूंकि अन्य समूह सिट्रिक्स या गोटोमीपीसी जैसी चीजों के साथ कुछ समान काम करते हैं, इसलिए मुझे लगता है कि यह करने योग्य होगा। हालांकि, वे अपनी सेवा में कुछ कर रहे हैं, इसलिए मुझे यकीन नहीं है। – jcolebrand

उत्तर

4

मैंने इसे COM ऑब्जेक्ट shgina.dll में गैर-दस्तावेज InitiateInteractiveLogon फ़ंक्शन को कॉल करके XP में हल किया।

यह विधि, जिसे केवल स्थानीय सिस्टम खाते द्वारा ही बुलाया जा सकता है, उपयोगकर्ता को कंसोल पर लॉग ऑन करेगा। (यह किसी उपयोगकर्ता को आरडीपी सत्र पर लॉग नहीं कर सकता है)

डीएलएल का संस्करण विंडोज 7 (और संभवतः विस्टा भी) के साथ शामिल है, इस विधि में शामिल नहीं है।

+2

यह फ़ंक्शन _so_ अनियंत्रित है कि इसमें कोई भी Google खोज परिणाम नहीं है। (Google ने अभी तक इस उत्तर को अनुक्रमित नहीं किया है) http://www.google.com/search?q=shgina.dll+ShellLocalMachine+%2BInitiateInteractiveLogon – SLaks

0

आप कौन से विंडोज संस्करण को लक्षित करना चाहते हैं?

मुझे विश्वास है कि कोई आसान तरीका नहीं है। विंडोज एक्सपी के लिए GINA है। विंडोज विस्टा के लिए, 'प्रमाण पत्र प्रदाता' हैं।

इसके अलावा, यदि आप Windows XP को लक्षित कर रहे हैं, तो आप सेवा बना सकते हैं, जो WinLogon डेस्कटॉप को कुंजीस्ट्रोक भेजता है जैसे कि उपयोगकर्ता उन्हें कीबोर्ड पर दबाता है। यह RealVNC या UltraVNC द्वारा किया गया था, मुझे याद नहीं है। हालांकि, यह दृष्टिकोण विंडोज विस्टा में काम नहीं करता है।

+0

जीआईएनए सवाल से बाहर है क्योंकि यह (किसी कारण से) फास्ट यूजर स्विचिंग के साथ असंगत है। – SLaks

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