相关疑难解决方法(0)

在Windows窗体中嵌入DOS控制台

是否可以在Windows窗体或C#2.0中的用户控件中嵌入DOS控制台?

我们有一个我的Windows应用程序必须与之交互的遗留DOS产品,并且已经请求遗留产品的实例应该在Windows应用程序中运行.

目前,我正在使用user32.dll找到运行DOS产品的窗口,最小化然后最大化窗口,并在窗口中键入字符.这不是解决问题的非常好的解决方案,因为这意味着我的应用程序必须将窗口名称存储在应用程序设置中,并要求用户在使用交互功能之前返回到DOS应用程序的正确页面.

编辑:更多信息

遗留应用程序需要对用户可见,但不能在单独的窗口中显示.

我已经尝试了TimothyP的答案并且效果很好,但它是否可以实现相同的功能,但DOS窗口可视化地嵌入在窗体或用户控件中,而不是弹出它自己的窗口?优选地,以ShowDialog()方式使得用户不能与应用程序交互,他们处于"传统模式",可以这么说.

c# dos winforms c#-2.0

17
推荐指数
2
解决办法
2万
查看次数

在Windows窗体中嵌入Selenium ChromeDriver

我想将Selenium嵌入ChromeDriverWindows窗体面板中.我已经成功地按照这个例子在Windows窗体中嵌入了记事本.我认为我遇到麻烦的问题是MainWindowHandle从中获取ChromeDriver.这是我到目前为止所得到的:(完整代码的pastebin链接:https://pastebin.com/RNv2vbJ1)

//----------------------TEST---------------------
ChromeDriverService service = ChromeDriverService.CreateDefaultService();
service.HideCommandPromptWindow = true;

ChromeDriver driver = new ChromeDriver(service);
Console.WriteLine(driver.CurrentWindowHandle);

Process chromeDriverProcess = Process.GetProcessById(service.ProcessId);
//EmbeddedWindowHandle = driver.CurrentWindowHandle;
//----------------------TEST---------------------

ProcessStartInfo processInfo = new ProcessStartInfo("notepad.exe");
Process p = Process.Start(processInfo);
p.WaitForInputIdle();
EmbeddedWindowHandle = p.MainWindowHandle;
SetParent(EmbeddedWindowHandle, panel1.Handle);
MoveWindow(EmbeddedWindowHandle, 0, 0, panel1.Width, panel1.Height, true);
SetWindowLong(EmbeddedWindowHandle, GWL_STYLE, WS_VISIBLE);
Run Code Online (Sandbox Code Playgroud)

embed selenium selenium-chromedriver

7
推荐指数
1
解决办法
646
查看次数

标签 统计

c# ×1

c#-2.0 ×1

dos ×1

embed ×1

selenium ×1

selenium-chromedriver ×1

winforms ×1