Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mengambil string baris perintah untuk proses saat ini.
Sintaksis
LPSTR GetCommandLineA();
Mengembalikan nilai
Nilai yang dikembalikan adalah penunjuk ke string baris perintah untuk proses saat ini.
Komentar
Masa pakai nilai yang dikembalikan dikelola oleh sistem, aplikasi tidak boleh membebaskan atau memodifikasi nilai ini.
Proses konsol dapat menggunakan argumen argc
Proses GUI dapat menggunakan argumen lpCmdLine fungsi WinMain atau wWinMain dengan mengimplementasikannya sebagai titik masuk program.
Untuk mengonversi baris perintah ke array gaya
Nota
Nama yang dapat dieksekusi di baris perintah yang disediakan sistem operasi untuk proses belum tentu identik dengan itu di baris perintah yang diberikan proses panggilan ke fungsi CreateProcessA. Sistem operasi dapat menambahkan jalur yang sepenuhnya memenuhi syarat ke nama yang dapat dieksekusi yang disediakan tanpa jalur yang sepenuhnya memenuhi syarat.
Keterangan Keamanan
Baris perintah yang dikembalikan oleh GetCommandLineA adalah konversi baris perintah Unicode ke halaman kode proses 8-bit.
Untuk sebagian besar halaman kode konversi ini hilang dan baris perintah yang dikonversi dapat berbeda dari baris perintah Unicode, membuat kemungkinan masalah keamanan seperti berikut ini:
- Konversi dapat mengubah string yang dimaksudkan untuk digunakan sebagai nama file. Misalnya, jika halaman kode ANSI adalah Windows-1252, karakter Unicode U+0100 (huruf kapital Latin A dengan macron: Ā) dikonversi ke 0x41 (huruf kapital Latin A). Jika pengguna meneruskan nama file yang berisi karakter Ā, program yang menggunakan GetCommandLineA akan menerimanya dengan karakter A dan beroperasi pada file yang salah.
- Konversi dapat mengubah cara baris perintah diurai. Misalnya, jika halaman kode ANSI adalah Windows-1252, karakter Unicode U+FF02 (Tanda kutip Fullwidth: ") dikonversi ke 0x22 (tanda kutip ASCII) dan karakter Unicode U+2010 (Tanda Hubung: ‐) dikonversi ke 0x2D (tanda minus ASCII). Kedua hal ini dapat mengakibatkan argumen file baris perintah disalahartikan sebagai opsi baris perintah.
Untuk menghindari masalah ini, gunakan fungsi GetCommandLineW untuk menerima baris perintah Unicode, atau gunakan manifes aplikasi (pada Windows Versi 1903 atau yang lebih baru) untuk mengatur UTF-8 sebagai halaman kode proses.
Nota
Header processenv.h mendefinisikan GetCommandLine sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.
Persyaratan
| Syarat | Nilai |
|---|---|
| klien minimum yang didukung | Windows XP [aplikasi desktop | Aplikasi UWP] |
| server minimum yang didukung |
Windows Server 2003 [aplikasi desktop | Aplikasi UWP] |
| Platform Target |
Windows |
| Header |
processenv.h (termasuk Windows.h pada Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2) |
| Pustaka |
Kernel32.lib |
| DLL |
Kernel32.dll |
Lihat juga
fungsi