2012-03-02 19 views
15

क्या विंडोज 8 पर मेट्रो-स्टाइल ऐप से डेस्कटॉप एप्लिकेशन लॉन्च करने का कोई तरीका है? मैं डेस्कटॉप स्क्रीन पर स्टार्ट स्क्रीन पर डेस्कटॉप आइकन को प्रतिस्थापित करने के लिए कुछ सरल शॉर्टकट बनाने की कोशिश कर रहा हूं, जो जगह से बाहर दिखता है।मेट्रो-स्टाइल ऐप के साथ डेस्कटॉप एप्लिकेशन लॉन्च करना

मुझे ऐप लोड होने के तुरंत बाद एप्लिकेशन खोलने के लिए कुछ सरल सरल, सी # में कुछ चाहिए। मैं कुछ शॉर्टकट्स, फ़ोटोशॉप इत्यादि के लिए इन शॉर्टकट बनाने की योजना बना रहा हूं, जो कुछ भी मैंने खुद बनाया है। वे सिर्फ निजी इस्तेमाल के लिए भी कर रहे हैं, इसलिए मैं की तरह "C:\Program Files (x86)\Steam\steamapps\common\Skyrim\TESV.exe"

+5

आप सैंडबॉक्स के कारण डेस्कटॉप ऐप्स (या सामान्य रूप से अन्य प्रक्रियाएं) लॉन्च नहीं कर सकते हैं। सबसे अच्छा आप एक फ़ाइल या यूआरआई "लॉन्च" कर सकते हैं, जैसे कि संबंधित डिफ़ॉल्ट प्रोग्राम - जो एक डेस्कटॉप ऐप हो सकता है - लॉन्च किया गया है। –

+0

मैं ऐसा कैसे करूं? – JacobTheDev

+1

यूआरआई "लॉन्च", आपका मतलब है? आप उस के लिए 'Windows.System.Launcher' क्लास का उपयोग करते हैं, विशेष रूप से 'LaunchUriAsync' विधि। यह नीचे दिए गए उत्तरों में से एक में दिया गया था। –

उत्तर

21

आवेदन करने के लिए प्रत्यक्ष रास्तों का उपयोग कर सकते तो आप बस तो Process Methods और ProcessStartInfo Class

के माध्यम से जाना (नोटपैड, वर्डपैड, इंटरनेट एक्सप्लोरर आदि) की तरह एक डेस्कटॉप अनुप्रयोग चलाना चाहते हैं
try 
{ 
// Start the child process. 
    Process p = new Process(); 
    // Redirect the output stream of the child process. 
    p.StartInfo.UseShellExecute = false; 
    p.StartInfo.FileName = "C:\Path\To\App.exe"; 
    p.Start(); 
} 

// ऍक्स्प 2

// Uses the ProcessStartInfo class to start new processes, 
// both in a minimized mode. 
void OpenWithStartInfo() 
{ 
    ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe"); 
    startInfo.WindowStyle = ProcessWindowStyle.Minimized; 

    Process.Start(startInfo); 

    startInfo.Arguments = "www.northwindtraders.com"; 

    Process.Start(startInfo); 
} 

Windows 8 मेट्रो आवेदन पर मैं इस खोज की: How to Start a external Program from Metro App

सभी मेट्रो-स्टाइल अनुप्रयोग पर्यावरण पर अत्यधिक रेत में काम करते हैं और बाहरी एप्लिकेशन को सीधे शुरू करने का कोई तरीका नहीं है।

आप Launcher class का उपयोग करने का प्रयास कर सकते हैं - आपकी आवश्यकता पर निर्भर करता है कि यह आपको एक व्यवहार्य समाधान प्रदान कर सकता है।

चेक करें:
Can I use Windows.System.Launcher.LauncherDefaultProgram(Uri) to invoke another metro style app?

रेफरी:How to launch a Desktop app from within a Metro app?

मेट्रो आईई एक विशेष अनुप्रयोग है। आप मेट्रो स्टाइल ऐप्स से निष्पादन योग्य नहीं आ सकते हैं।

इस प्रयास करें - मैं अभी तक परीक्षण नहीं किया है, लेकिन यह तुम्हारी मदद करेगा हो सकता है ..

Launcher.LaunchFileAsync

// Path to the file in the app package to launch 
string exeFile = @"C:\Program Files (x86)\Steam\steamapps\common\Skyrim\TESV.exe"; 

var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(exeFile); 

if (file != null) 
{ 
    // Set the option to show the picker 
    var options = new Windows.System.LauncherOptions(); 
    options.DisplayApplicationPicker = true; 

    // Launch the retrieved file 
    bool success = await Windows.System.Launcher.LaunchFileAsync(file, options); 
    if (success) 
    { 
     // File launched 
    } 
    else 
    { 
     // File launch failed 
    } 
} 
+0

धन्यवाद, जब मैं काम से घर जाता हूं, तो मैं उस पर एक झटका लगाऊंगा, और शायद आपको स्वीकार करूँगा तब जवाब दें। स्टार्ट स्क्रीन पर बदसूरत विरासत आइकन मेरे नसों पर आते हैं, इसलिए यह वास्तव में मदद करता है। – JacobTheDev

+0

पहला ऐसा लगता है जो मैं ढूंढ रहा हूं, लेकिन मुझे "प्रक्रिया" पर एक त्रुटि मिल रही है। – JacobTheDev

+0

@Rev किस समाधान ने आपके लिए काम किया है? – jackjop

3

मैं वास्तव में प्रयास नहीं किया है, तो यह काम करता है और यह वास्तव में एक नहीं है सुंदर समाधान, लेकिन मुझे लगता है कि मेट्रो-शैली ऐप्स एक यूआरआई लॉन्च कर सकते हैं। फिर आप डेस्कटॉप-प्रोग्राम बना सकते हैं जो कस्टम यूआरआई योजना के लिए पंजीकृत है जो वास्तविक प्रोग्राम लॉन्च करने के बाद होगा।

1

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

+0

क्या आप इसे और अधिक स्पष्ट रूप से समझा सकते हैं? बाहरी डब्ल्यूसीएफ सेवा क्या है और "अलग स्थापना के साथ" का क्या मतलब है? –

+0

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

12

मुझे एक समाधान मिला जो मेरे लिए उपयुक्त है। मैं तो बस मेरे एप्लिकेशन में एक खाली textfile बना दिया और इसे launcher.yourappyouwanttostart कहा जाता है और उसके बाद

Windows.System.Launcher.LaunchFileAsync("launcher.yourappyouwanttostart"); 

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

+0

हाहा ... अच्छा हैक! –

+2

हाहा, ओह वाह। +1 मुझे LOB आंतरिक उपयोग अनुप्रयोगों के लिए इसे याद रखना होगा। –

0

मैं, साधारण चीजें प्यार तो मेरे समाधान इस का इस्तेमाल किया गया:

Process.Start("explorer", "shell:AppsFolder\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe!App") 

इस 'नई' स्टिकी नोट्स विंडोज 10 वीं वर्षगांठ अद्यतन के साथ आ रहा शुरू होगा, लेकिन यह अन्य सभी "मेट्रो" के साथ काम करता एप्स मैंने परीक्षण किया। मेट्रो ऐप का नाम ढूंढने के लिए, विंडोज एक्सप्लोरर से आपको इसे खोल में ढूंढना होगा: AppUserModelId कॉलम का उपयोग करके ऐपफ़ोल्डर।

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