Ik kan geen functietoetsen (bv Ctrl) sturen...
Als iemand weet hoe dat moet, dan hoor ik het graag.
Gewone toetsen werken wel.
Ik zie wel dat er toetsen worden gestuurd maar ze zijn niet juist want er gebeurd niets... (behalve dan de vt die werken alleen functietoetsen doen niks en ik kan ook geen oplossing vinden)
Een groot gedeelte heb ik ergens gekopieerd.
Main
using System.Windows;
namespace WebmailCleanTrash
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void comPortInput_Click(object sender, RoutedEventArgs e)
{
ChromeWrapper chrome = new ChromeWrapper("https://mail.telenet.be");
System.Threading.Thread.Sleep(5000);
chrome.SendKey('V');
chrome.SendKey('T');
System.Threading.Thread.Sleep(2000);
chrome.SendKey2('A'); // werkt niet
}
}
}
ChromeWrapper
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace WebmailCleanTrash
{
class ChromeWrapper
{
[DllImport("User32.dll")]
private static extern int SetForegroundWindow(IntPtr point);
[DllImport("System.Windows.Forms.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
private static uint WM_KEYDOWN = 0x100, WM_KEYUP = 0x101;
private Process chromeProcess;
public ChromeWrapper(string url)
{
chromeProcess = new Process();
chromeProcess.StartInfo = new ProcessStartInfo("chrome.exe", url);
chromeProcess.Start();
}
public void SendKey(char key)
{
if (chromeProcess.MainWindowHandle != IntPtr.Zero)
{
SendMessage(chromeProcess.MainWindowHandle, ChromeWrapper.WM_KEYDOWN, (IntPtr)key, IntPtr.Zero);
System.Threading.Thread.Sleep(100);
SendMessage(chromeProcess.MainWindowHandle, ChromeWrapper.WM_KEYUP, (IntPtr)key, IntPtr.Zero);
}
}
//Werkt niet
public void SendKey2(char key2)
{
SendMessage(chromeProcess.MainWindowHandle, ChromeWrapper.WM_KEYDOWN, (IntPtr)0x11, IntPtr.Zero);
System.Threading.Thread.Sleep(100);
SendMessage(chromeProcess.MainWindowHandle, ChromeWrapper.WM_KEYDOWN, (IntPtr)key2, IntPtr.Zero);
System.Threading.Thread.Sleep(100);
SendMessage(chromeProcess.MainWindowHandle, ChromeWrapper.WM_KEYUP, (IntPtr)0x11, IntPtr.Zero);
SendMessage(chromeProcess.MainWindowHandle, ChromeWrapper.WM_KEYUP, (IntPtr)key2, IntPtr.Zero);
}
}
}
Arthur2 | Ere-Krak Don’t comment bad code—rewrite it. – Brian Kernighan Vergeet niet om likes te geven en/of als oplossing te markeren.