質問: Activator.CreateInstance(t); //SetDefaultPrinterメソッドを呼び出す t.InvokeMember("SetDefaultPrinter", System.Reflection.BindingFlags.InvokeMethod, null, wshNetwork, new object[] { printerName }); } ``` ### 試したこと デバッグでのステップ実行では正確に反映されているので、プリンタ切り替えの遅延では?と思い、プリンタ切り替え処理と、印刷実行の間に、10秒間くらいのスリープ処理、待機処理を入れるなどして実行してみましたが、やはり指定どおりに反映されません。 ※※ちなみに、ステップ実行の際は、プリンタ切り替えと印刷実行の間で、10秒間も間を空けていません。 ※※また、エラーは出ておらず、ログには指定どおりのプリンタ名が渡され、設定されています。
回答: ``` SetDefaultPrinter(printername1); Application.DoEvents(); //印刷実行 Process.Start(@"C:\Program Files\Tracker Software\PDF Viewer\PDFXCview.exe", "/print " + src); ``` この行を以下の様に変えて試して貰えますか。 ``` //印刷実行 Process.Start(@"C:\Program Files\Tracker Software\PDF Viewer\PDFXCview.exe", "/print:printer=" + '\u0022' + printername1 + '\u0022' + " " + src); ```