5

私は tomazy の FutureWindows インフラストラクチャを使用しようとしています ( Delphi GUI Testing and Modal Formsで彼の回答を参照するか、 https://github.com/tomazy/DelphiUtilsのツールのホームを参照してください)、できるかどうか、またその方法を知りたいです。標準の Windows ファイルを開くダイアログで使用できますか? それらは、FutureWindows インフラストラクチャが想定しているように見える TControl から継承していないようです (私が誤解していない限り)。

私がやりたいことは、基本的に、テスト内のコマンドによってモーダルに開かれる OpenFileDialog でファイルを選択することですが、これを行う方法をまだ理解できていません。

4

2 に答える 2

4

Use a tool like Spy++ to find out what the window class name is. For example, on my Windows 7 machine, the window class name for a system file open dialog is #32770 (Dialog).

于 2012-02-23T11:45:39.687 に答える
3

私の現在の解決策は以下の通りです:

TFutureWindows.Expect(MESSAGE_BOX_WINDOW_CLASS)
  .ExecProc(
    procedure (const AWindow: IWindow)
    var
      DlgHandle: HWND;
      FileName: string;
    begin
      FileName := ExpandFileName('myFileToUse.txt');
      DlgHandle := AWindow.GetHandle;
      Windows.SetDlgItemText(DlgHandle, 1148, PChar(FileName));
    end
    )
  .ExecSendKey(VK_RETURN);

つまり、基本的には Windows API を使用してメッセージを送信します。アイデア (および ID 1148) はここから見つかりました: http://social.msdn.microsoft.com/forums/en-US/winforms/thread/62d5db14-5497-4ceb-8af0-d7f81732e937/

可能なより良い解決策は歓迎されますが、少なくとも今のところはこれで十分です。これまでのコメントをありがとう!

于 2012-02-24T09:08:50.260 に答える