मेरी कंपनी शेयरपॉइंट और एडीएफएस का उपयोग कर रही है। वेबडाव के उपयोग के लिए हालांकि हमें उपयोगकर्ताओं को कुछ टोकन प्राप्त करने की आवश्यकता है, जिन्हें वे केवल इंटरनेट एक्सप्लोरर खोलकर प्राप्त करते हैं और दो साइटों पर नेविगेट करते हैं। हालांकि वे हर ~ 30 मिनट टोकन खो देंगे, इसलिए इसे एक आवर्ती कार्य होना चाहिए। छिपा इंटरनेट एक्सप्लोरर
मेरे वर्तमान समाधान "इस किस्म की" है आईई साथ
- ओपन 2 वेबसाइटें:
तो अब मेरा काम करने के लिए है काम कर रहा हूं लेकिन मैं इससे संतुष्ट नहीं हूं। मेरे पास केवल VSExpress है इसलिए कोई सेवाएं नहीं।
मेरे पास एक न्यूनतम अधिकतम अस्पष्टता दिखाई देने वाला झूठा विंडोज फॉर्म है। मेरे पास एक जीपीओ है जो कंप्यूटर पर एक EXE फ़ाइल कॉपी करता है और उसके बाद एक टाइम जॉब बनाता है जो लॉगिन के बाद हर 30 मिनट में शुरू होता है। हालांकि यह वास्तव में काम नहीं कर रहा है, अगर वे EXE मैन्युअल रूप से नहीं चलाते हैं तो लोगों को अभी भी वेबडैव तक पहुंचने में परेशानी है। । इसके अलावा जब भी EXE वर्तमान आवेदन उपयोगकर्ता में काम कर रहा है ध्यान केंद्रित खो देता है जो थोड़े परेशान है जब आप कुछ लिख रहे हैं और वापस क्लिक करना चल रहा है मेरे वर्तमान कोड इस तरह देख रहा है:
private void Form1_Load(object sender, EventArgs e) { MainMethod(); } private void MainMethod() { RegistryKey root = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Classes\InternetExplorer.ApplicationMedium\CLSID", false); if (root!=null) { opensite(); Application.Exit(); } } private void opensite() { try { SHDocVw.InternetExplorer _ie1 = (SHDocVw.InternetExplorer)Activator.CreateInstance(Type.GetTypeFromProgID("InternetExplorer.ApplicationMedium")); SHDocVw.InternetExplorer _ie2 = (SHDocVw.InternetExplorer)Activator.CreateInstance(Type.GetTypeFromProgID("InternetExplorer.ApplicationMedium")); _ie1.Visible = false; _ie2.Visible = false; _ie1.Navigate("SITENAME1.html"); _ie2.Navigate("SITENAME2.html"); System.Threading.Thread.Sleep(10000); _ie1.Quit(); _ie2.Quit(); } catch(Exception e) { } }
हालांकि, मुझे लगता है कि ऐसा करने के लिए एक और अधिक शानदार तरीका है। मैंने सुना है एक छिपे हुए IE खोलने के लिए एक ही रास्ता के माध्यम से
(SHDocVw.InternetExplorer)Activator.CreateInstance(Type.GetTypeFromProgID("InternetExplorer.ApplicationMedium"));
है लेकिन इस के साथ मैं रजिस्ट्री कुंजी जो नहीं सभी ग्राहकों है पर निर्भर हैं।
क्या आप आईई को विश्वसनीय तरीके से खोलने में मेरी सहायता कर सकते हैं और शायद कुछ 30 मिनट शुरू करने के लिए आवर्ती कार्य को कैसे सेट करना चाहिए (क्योंकि मुझे लगता है कि यह सही ढंग से यह नहीं कर रहा है)।
सभी को अग्रिम धन्यवाद।
संपादित करें:
धन्यवाद https://stackoverflow.com/users/5065008/daniel-waghorn को मैं अब साथ opensite बिट की जगह:
private void Form1_Load(object sender, EventArgs e) { MainMethod(); } private void MainMethod() { openProc("SITE1.html"); openProc("SITE2.html"); Application.Exit(); } private void openProc(string site) { ProcessStartInfo startInfo = new ProcessStartInfo(); string ProgramFiles = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles); startInfo.FileName = ProgramFiles + @"\Internet Explorer\iexplore.exe"; startInfo.Arguments = "" + site + ""; startInfo.CreateNoWindow = true; startInfo.ErrorDialog = false; startInfo.WindowStyle = ProcessWindowStyle.Hidden; Process.Start(startInfo); }
धन्यवाद फिर से!
यह थोड़ी सी है जो मैं खोज रहा था, हालांकि मैं अभी भी 'startInfo.FileName = @ "% ProgramFiles% \ Internet Explorer \ iexplore.exe" में समस्या चलाता हूं; ' वह इसे ' "% प्रोग्रामफाइल% \\ इंटरनेट एक्सप्लोरर \\ iexplore.exe" ' पर बना रहा है लेकिन उसे फ़ाइल नहीं मिल रही है। हालांकि '@" सी: \ प्रोग्राम फ़ाइलें \ इंटरनेट एक्सप्लोरर \ iexplore.exe "' काम करता है ... – Asharon
क्षमा करें ऐसा लगता है कि 'ProcessStartInfo' पर्यावरण चर को सही तरीके से पार्स नहीं करता है, इसलिए यह क्यों काम नहीं करता है लेकिन आपके संस्करण के साथ काम करता है। यदि आप चाहें तो उपयोगकर्ता के प्रोग्राम फ़ाइलें फ़ोल्डर प्राप्त करने के लिए आप 'Environment.SpecialFolder.ProgramFiles' का उपयोग कर सकते हैं और इसे अपने 'फ़ाइल नाम' में जोड़ सकते हैं। –
'निजी शून्य ओपनप्रोक (स्ट्रिंग साइट) { ProcessStartInfo startInfo = new ProcessStartInfo(); स्ट्रिंग प्रोग्रामफाइल = पर्यावरण। गेटफोल्डरपैथ (पर्यावरण। स्पेशलफोल्डर.प्रोग्रामफाइल); startInfo.FileName = ProgramFiles + @ "\ Internet Explorer \ iexplore.exe"; startInfo.Arguments = "" + साइट + ""; startInfo.CreateNoWindow = सत्य; startInfo.ErrorDialog = झूठा; startInfo.WindowStyle = ProcessWindowStyle.Hidden; प्रक्रिया। स्टार्ट (startInfo); } ' एक आकर्षण की तरह काम करता है, धन्यवाद! – Asharon