0

Windows モバイル アプリケーションを使用しています。まさに Microsoft.WindowsMo​​bile.Samples.CECamera です。

画像をキャプチャすると、正常にキャプチャされたことを示すダイアログ フォームが表示され、[OK] をクリックする必要があります。コードでは、この OK クリックを使用して画像の保存を続行しています... このメッセージが表示されないようにします。または、そのOKボタンを自動的にクリックするその他の方法。

 if (DialogResult.OK == cameraCapture.ShowDialog())
            {
                string fileName = cameraCapture.FileName;

                // If it is a video we rename the file so that it has the user entered
                // default filename and the correct extension.
                if (cameraCapture.Mode != CameraCaptureMode.Still)
                {
                    string extension = fileName.Substring(fileName.LastIndexOf("."));
                    string directory = "";

                    if (fileName.LastIndexOf("\\") != -1)
                    {
                        directory = fileName.Substring(0, fileName.LastIndexOf("\\") + 1);
                    }

                    fileName = directory + this.textDefaultFileName.Text + extension;

                    System.IO.File.Move(cameraCapture.FileName, fileName);
                }

                // The method completed successfully.
                MessageBox.Show("The picture or video has been successfully captured and saved to:\n\n" + fileName,
                    this.Text, MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
            }
        }
4

3 に答える 3

1

独自のコードの場合は、タイマーを含む独自のメッセージ ボックス クラスを作成するだけです。最善の解決策になります。

他の誰かのコードによってメッセージ ボックスが表示された場合は、次のことができます。

  1. Windows フックを使用して msgbox の遅延をインターセプトする
  2. EnumWindowsを使用してウィンドウ リストを反復処理するだけです
于 2011-07-04T11:51:12.480 に答える
1

ソースからダイアログを表示する行 (実際には、技術的には 2 行です) を削除するだけです。

一般に、独自のアプリケーションでボタンを自動的にクリックしようとするのは、非常に悪い考えです。

于 2011-07-04T11:38:12.473 に答える
0

キャプチャダイアログを非表示にしたい場合のこの場合の解決策

cameraDialog.Dispose();

if文の終了後

if (DialogResult.OK == cameraCapture.ShowDialog())
{
    //plapla
}

cameraDialog.Dispose();
于 2011-07-10T23:04:32.430 に答える