2

サービスを使用してファイルを暗号化するソフトウェアがあります。GUI は、ファイル パスを含むハッシュテーブルをシリアル化し、ExecuteCommandメソッドを使用してサービスに通知します。サービスはハッシュテーブルを逆シリアル化し、ファイルを処理します。

サービスが行う必要があるのは、GUI が何らかの形式の通知を表示できるように、処理が完了したことを GUI に伝えることです。サービスがデータを GUI に送信するための最良の方法は何ですか? また、ファイル パスをサービスに送信する現在の方法に代わる方法がある場合は、提案をお待ちしています。

編集:これは私が今していることです:

Dim sk = My.Computer.Registry.LocalMachine.CreateSubKey("SOFTWARE\AesESvc")
Dim scAES As New ServiceProcess.ServiceController("AesESvc")

sk.SetValue("Processing", 1, Microsoft.Win32.RegistryValueKind.DWord)

scAES.ExecuteCommand(132)


Do While (sk.GetValue("Processing") = 1)
    sblProcess.Text = "Processing"
Loop

Dim total As Int32 = lvwLoad.Items.Count - sk.GetValue("ErrorsInLastProcess")

If total > 1 Then
    sblProcess.Text = (total & " items successfully processed." & vbCrLf & sk.GetValue("ErrorsInLastProcess") & " error(s)")
ElseIf total = 1 Then
    sblProcess.Text = (total & " item successfully processed." & vbCrLf & sk.GetValue("ErrorsInLastProcess") & " error(s)")
ElseIf total < 1 Then
    sblProcess.Text = ("None of the items could be processed." & vbCrLf & sk.GetValue("ErrorsInLastProcess") & " error(s)")
End If

サービスは、Processing終了時にレジストリ値を 0 に変更します。

4

1 に答える 1

1

名前付きパイプはうまく機能するはずです。ここにいくつかの情報があります:

http://msdn.microsoft.com/en-us/library/bb546085.aspx

于 2013-01-20T04:57:10.027 に答える