3

Chrome ブラウズから URL を取得する小さなアプリケーションを作成しています。

最初に Chrome ブラウザーが開いているかどうかを確認するために、次のコードを使用します。

 IntPtr WindowTitleTextPtr = GetForegroundWindow();

 StringBuilder WindowTitleText = new StringBuilder();

 GetWindowText(WindowTitleTextPtr, WindowTitleText, 256); // Problem

 ...

GetWindowText()関数を使用して Windows のタイトル テキストを取得していますが、そこで問題に直面しています。

Chrome ウィンドウに URL がなく、単なる New Tab である場合、問題はありません。 WindowTitleText.ToString() はNew Tab - Google Chromeと同じです。

ただし、Web ページを開くと、URL に何らかの URL が入力されている場合、GetWindowText() の行で ようになります 。ここに画像の説明を入力

どうしたの?

ヘルプ!

4

1 に答える 1

5

インスタンス内でメモリを割り当てる必要があります。StringBuilder

  StringBuilder WindowTitleText = new StringBuilder();

  int size = 256;
  WindowTitleText.Length = size; // <- Memory allocation

  // Read text into allocated memory
  GetWindowText(WindowTitleTextPtr, WindowTitleText, WindowTitleText.Length); 
于 2013-06-29T07:21:30.257 に答える