2010-06-03 76 views
3

我試圖啓動osk.exe,並一直收到「無法啓動osk」消息。 問題是我的項目設置爲x86(我正在使用ms訪問數據庫)。 如果我切換到x64或任何CPU一切正常,但數據庫將不再工作。 我想這在C#中啓動x64 Windows應用程序,而項目設置爲x86

using System.Diagnostics; 

private void btnOSK_Click(object sender, EventArgs e) 
    { Process.Start("osk.exe"); 

     Process.Start(@"C:\windows\system32\osk.exe"); 
    } 

我也想跑SysWOWW \ OSK但是這也沒有工作。除了我的應用程序應該在x86和x64機器上運行。 有什麼辦法可以繞過這個嗎?這真是令人沮喪。

+0

可能重複的[無法從上X64 Win7的一個32位進程啓動屏幕上的鍵盤(osk.exe)](http://stackoverflow.com/questions/2929255/unable-to-launch-onscreen - 鍵盤-OSK-EXE-從-A-32位上處理WIN7-x64)的 – 2010-06-03 20:34:42

回答

3

我找到了。感謝您的回答。

static void StartOSK() 
{ 
    string windir = Environment.GetEnvironmentVariable("WINDIR"); 
    string osk = null; 

    if (osk == null) 
    { 
    osk = Path.Combine(Path.Combine(windir, "sysnative"), "osk.exe"); 
    if (!File.Exists(osk)) 
    { 
     osk = null; 
    } 
    } 

    if (osk == null) 
    { 
    osk = Path.Combine(Path.Combine(windir, "system32"), "osk.exe"); 
    if (!File.Exists(osk)) 
    { 
     osk = null; 
    } 
    } 

    if (osk == null) 
    { 
    osk = "osk.exe"; 
    } 

    Process.Start(osk); 
} 
相關問題