Bagaimana mengontrol jendela aplikasi lain di Delphi
Bagaimana mengontrol jendela aplikasi lain di Delphi
Chen Jianbing, Sekolah Kader Manajemen Pertanian Guangdong
Menulis aplikasi Delphi sering kali melibatkan operasi pada aplikasi Windows lainnya. Misalnya, dalam sistem manajemen basis data, jika petugas keuangan perlu menggunakan kalkulator, mereka dapat memanggil fungsi kalkulator yang disertakan dalam Windows. Setiap kali menggunakannya, mereka harus membuka kalkulator melalui "Mulai/Program/Aksesori/Kalkulator". Tentu saja, ini sangat rumit. Tentu saja, Anda dapat mempertimbangkan untuk membuat pintasan ke "Kalkulator" di desktop dan menentukan tombol pintas. Saat Anda perlu menggunakan kalkulator, tekan tombol pintas ini untuk membuka "Kalkulator". Namun karena "Kalkulator" adalah program jendela "non-modal", yaitu setiap kali kalkulator dijalankan, jendela "Kalkulator" akan terbuka. Hasilnya adalah lusinan "kalkulator" yang muncul di desktop, bukan hanya sejumlah besar Ini meningkatkan overhead memori sistem dan merepotkan pengguna untuk mengoperasikannya. Itu dapat dengan mudah dikontrol di Delphi dan efeknya sempurna. Metode implementasi diusulkan di bawah ini untuk dua isu utama.
1. Bagaimana cara mengontrol desain?
Buat formulir baru, letakkan dua tombol di formulir, Keterangannya adalah "Buka" (yaitu, mulai "kalkulator") dan "Tutup" (keluar dan akhir), dan tambahkan pemrosesan acara Klik untuk keduanya. Lihat formulir Form1 dan file unit Unit1 untuk detailnya.
Diantaranya, pernyataan yang paling penting adalah:
fwnd:=FindWindow('SciCalc','Kalkulator');
Prototipe fungsinya adalah (lihat bantuan Delphi untuk detailnya):
Jendela Temukan HWND(
LPCTSTR lpClassName, // penunjuk ke nama kelas
LPCTSTR lpWindowName // penunjuk ke nama jendela
);
Di sini, 'SciCalc' adalah nama kelas kalkulator, dan 'Kalkulator' adalah judul jendela kalkulator}
setWindowPos(fwnd,HWND_NOTOPMOST,0,0,0,0,SWP_SHOWWINDOW atau SWP_NOSIZE atau SWP_NOMOVE);
Prototipe fungsinya adalah:
BOOL SetWindowPos(
HWND hWnd, // pegangan jendela
HWND hWndInsertAfter, // pegangan urutan penempatan
int X, // posisi mendatar
int Y, // posisi vertikal
int cx, // lebar
int cy, // tinggi
UINT uFlags // bendera pemosisian jendela
);
ShowWindow(fwnd,SW_RESTORE); //Tampilkan "kalkulator" yang terbuka
Prototipe fungsinya adalah:
Jendela Pertunjukan BOOL(
HWND hWnd, // pegangan jendela
int nCmdShow // tampilkan keadaan jendela
);
Ret:=WinExec('c:windowscalc.exe',SW_SHOWNORMAL); //Mulai kalkulator
Prototipe fungsinya adalah:
UINT WinExec(
LPCSTR lpCmdLine, // alamat baris perintah
UINT uCmdShow // gaya jendela untuk aplikasi baru
);
Jalankan program Kalkulator dan periksa nilai kembalian (dengan demikian menggunakan nilai kembalian untuk menentukan kemungkinan kesalahan)
2. Bagaimana cara memperjelas "nama kelas" aplikasi?
Untuk mengontrol suatu aplikasi, Anda harus terlebih dahulu memperjelas "nama kelas" aplikasi tersebut. Konsep "kelas" sudah sangat jelas dalam program Delphi, misalnya membuat form baru Form1, dan "nama kelas" dari form tersebut adalah TForm1. Lalu bagaimana cara menentukan "nama kelas" program Windows lainnya?
Untungnya Delphi menyediakan alat praktis yang disebut Winsight, yang seperti cermin yang mengungkapkan "nama kelas" monster di mana pun mereka berada.
Cara menggunakan Winsight adalah sebagai berikut:
⑴ Jalankan Winsight (nama programnya ws32.exe, di direktori yang sama dengan file utama delphi32.exe), lihat Gambar ①;
⑵ Pilih "Ikuti Fokus" di "Spy" dari menu Winsight, seperti yang ditunjukkan pada Gambar ②;
⑶Jalankan program “kalkulator”;
⑷Target ditampilkan di Winsight, seperti yang ditunjukkan pada Gambar ③.
Lingkungan perangkat lunak: Win98 Cina/Delphi5.0 Cina.