改訂された説明:
以下の提案を使用して、作成できる最も基本的なコードを使用しました。以下の「開始プロセス」で Powershell Community Extensions を使用していることに注意してください。それが物事に影響を与えるかどうかはわかりません。
私は以下の機能を持っています
function Populate-Notepad
{
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic')
Start-Process Notepad
[Microsoft.VisualBasic.Interaction]::AppActivate("Untitled")
[System.Windows.Forms.SendKeys]::SendWait("blahblahblah")
return
}
インタラクティブにうまく動作します。
POP アカウントを照会する Parse という関数があり、メッセージが見つかった場合はアクションを実行します。したがって、問題のアクションは次のとおりです ($helptext が定義されており、適切に機能します。これは正しく解析されています。)
Switch ($cmd)
{
"HELP" {$text = $helptext}
"NOTE" {populate-notepad}
default {$msg = $msg + "Invalid command: $command `n"}
}
これはメモ帳を起動しません。タスク マネージャーを見ると、データが入力されていないように見えます。私の推測では、これが解決できれば、以下の問題も解決できると思います。
Firefox を呼び出して Firefox で一連の SendKeys を起動する powershell スクリプトがあります (長い話ですが、Web 呼び出しを使用しようとすると問題が発生しました)。対話的には正常に動作しますが、スケジュールされたタスクが上記を呼び出す powershell スクリプトを実行すると、パワーシェルスクリプト...
Firefox は実行されますが、対話型ではありません (したがって、powershell が実行され、スクリプトが実行されます)。つまり、Firefox ウィンドウが表示されません。それが重要かどうかはわかりませんが、タスク マネージャー ウィンドウには常に firefox.exe があります。ただし、私のスクリプトは常にハングし、Firefox ウィンドウが見つからないという不平を言っています。
私が言ったように、これはインタラクティブに機能します。通常の対話型スクリプトと同じように、タスク マネージャーを介して同じ資格情報を使用しています (このボックスには、管理者以外にユーザーが 1 人しかいません)。それは隠されておらず、「最高の特権で実行する」として試してみましたが、役に立ちませんでした。
何かご意見は?