ID Artikel: 124103 - Kajian Terakhir: 14 September 2011 - Revisi: 2.0

Cara mendapatkan pegangan jendela konsol (HWND)

Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.

Pada Halaman ini

Perbesar semua | Perkecil semua

RINGKASAN

Mungkin berguna untuk memanipulasi sebuah jendela yang terkait dengan konsol aplikasi. Win32 API menyediakan metode tidak langsung untuk mendapatkan jendela menangani terkait dengan aplikasi konsol. Namun, Anda dapat memperoleh menangani jendela dengan menelepon FindWindow(). Fungsi ini mengambil jendela menangani berdasarkan nama kelas atau jendela nama.

Hubungi GetConsoleTitle() untuk menentukan judul konsol saat ini. Kemudian pasokan judul konsol saat ini untuk FindWindow().

INFORMASI LEBIH LANJUT

Karena windows beberapa mungkin memiliki judul yang sama, Anda harus mengubah saat ini konsol judul window untuk gelar yang unik. Ini akan membantu mencegah jendela salah menangani dari sedang kembali. Menggunakan SetConsoleTitle() untuk mengubah judul jendela konsol saat ini. Berikut adalah proses:
  1. Hubungi GetConsoleTitle() untuk menyimpan judul jendela konsol saat ini.
  2. Hubungi SetConsoleTitle() untuk mengubah judul konsol untuk gelar yang unik.
  3. Panggilan Sleep(40) untuk memastikan judul window diperbarui.
  4. Call FindWindow (NULL, uniquetitle), untuk mendapatkan HWND panggilan ini kembali HWND--atau NULL jika operasi gagal.
  5. Panggilan SetConsoleTitle() dengan nilai yang Diperoleh dari langkah 1, untuk memulihkan jendela judul asli.
Anda harus menguji HWND dihasilkan. Sebagai contoh, Anda dapat menguji untuk melihat apakah kembali HWND sesuai dengan proses saat ini dengan menelepon GetWindowText() di HWND dan membandingkan hasilnya dengan GetConsoleTitle().

HWND dihasilkan tidak dijamin akan cocok untuk semua jendela menangani operasi.

Contoh kode

Fungsi berikut mengambil jendela aplikasi konsol saat ini menangani (HWND). Jika fungsi berhasil, nilai kembali adalah pegangan jendela konsol. Jika fungsi gagal, nilai kembali adalah NULL. Beberapa pengecekan error dihilangkan, untuk singkatnya.
   HWND GetConsoleHwnd(void)
   {
       #define MY_BUFSIZE 1024 // Buffer size for console window titles.
       HWND hwndFound;         // This is what is returned to the caller.
       char pszNewWindowTitle[MY_BUFSIZE]; // Contains fabricated
                                           // WindowTitle.
       char pszOldWindowTitle[MY_BUFSIZE]; // Contains original
                                           // WindowTitle.

       // Fetch current window title.

       GetConsoleTitle(pszOldWindowTitle, MY_BUFSIZE);

       // Format a "unique" NewWindowTitle.

       wsprintf(pszNewWindowTitle,"%d/%d",
                   GetTickCount(),
                   GetCurrentProcessId());

       // Change current window title.

       SetConsoleTitle(pszNewWindowTitle);

       // Ensure window title has been updated.

       Sleep(40);

       // Look for NewWindowTitle.

       hwndFound=FindWindow(NULL, pszNewWindowTitle);

       // Restore original window title.

       SetConsoleTitle(pszOldWindowTitle);

       return(hwndFound);
   }
				
Kata kunci: 
kbhowto kbwndw kbmt KB124103 KbMtid
Penerjemahan MesinPenerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:124103  (http://support.microsoft.com/kb/124103/en-us/ )