Anda sedang offline saat ini, menunggu internet Anda untuk menyambung kembali

Cara mendapatkan pegangan jendela konsol (HWND)

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
RINGKASAN
Mungkin berguna untuk memanipulasi sebuah jendela yang terkait dengan konsolaplikasi. Win32 API menyediakan metode tidak langsung untuk mendapatkanjendela menangani terkait dengan aplikasi konsol. Namun, Anda dapatmemperoleh menangani jendela dengan menelepon FindWindow(). Fungsi ini mengambiljendela menangani berdasarkan nama kelas atau jendela nama.

Hubungi GetConsoleTitle() untuk menentukan judul konsol saat ini. Kemudian pasokanjudul konsol saat ini untuk FindWindow().
INFORMASI LEBIH LANJUT
Karena windows beberapa mungkin memiliki judul yang sama, Anda harus mengubahsaat ini konsol judul window untuk gelar yang unik. Ini akan membantu mencegahjendela salah menangani dari sedang kembali. Menggunakan SetConsoleTitle() untuk mengubahjudul 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 apakahkembali HWND sesuai dengan proses saat ini dengan meneleponGetWindowText() di HWND dan membandingkan hasilnya denganGetConsoleTitle().

HWND dihasilkan tidak dijamin akan cocok untuk semua jendela menanganioperasi.

Contoh kode

Fungsi berikut mengambil jendela aplikasi konsol saat inimenangani (HWND). Jika fungsi berhasil, nilai kembali adalah peganganjendela konsol. Jika fungsi gagal, nilai kembali adalah NULL. Beberapapengecekan 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);   }				

Peringatan: Artikel ini telah diterjemahkan secara otomatis

Properti

ID Artikel: 124103 - Tinjauan Terakhir: 09/14/2011 10:03:00 - Revisi: 2.0

  • kbhowto kbwndw kbmt KB124103 KbMtid
Tanggapan
/html>JavaScript" async=""> var varAutoFirePV = 1; var varClickTracking = 1; var varCustomerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write("