回答ありがとうございます!
1回ダブルクリックしたらそれ以降はタイマー処理で自動でやっていきたいので
それだと無理なんです。

private void timer1_Tick(object sender, EventArgs e) {
Process sprocess = (Process)((ListBox)sender).SelectedItem;
Hide();
if(sprocess == null) {
Debug.WriteLine("processがnull");
} else {
SetForegroundWindow(sprocess.MainWindowHandle);
keysousin();
}
Show();
}

と書いた場合、
Process sprocess = (Process)((ListBox)sender).SelectedItem;

の行で

InvalidCastException はハンドルされませんでした。
型 'System.Windows.Forms.Timer' のオブジェクトを型 'System.Windows.Forms.ListBox' にキャストできません。

と出てしまいます。