Bagikan melalui


Struktur SHCREATEPROCESSINFOW (shellapi.h)

[SHCreateProcessAsUserW tidak lagi diimplementasikan di Windows XP atau versi yang lebih baru.]

Berisi informasi yang diperlukan oleh SHCreateProcessAsUserW untuk membuat proses.

Sintaks

typedef struct _SHCREATEPROCESSINFOW {
  DWORD                 cbSize;
  ULONG                 fMask;
  HWND                  hwnd;
  LPCWSTR               pszFile;
  LPCWSTR               pszParameters;
  LPCWSTR               pszCurrentDirectory;
  HANDLE                hUserToken;
  LPSECURITY_ATTRIBUTES lpProcessAttributes;
  LPSECURITY_ATTRIBUTES lpThreadAttributes;
  BOOL                  bInheritHandles;
  DWORD                 dwCreationFlags;
  LPSTARTUPINFOW        lpStartupInfo;
  LPPROCESS_INFORMATION lpProcessInformation;
} SHCREATEPROCESSINFOW, *PSHCREATEPROCESSINFOW;

Anggota

cbSize

Jenis: DWORD

Ukuran, dalam byte, dari struktur ini.

fMask

Jenis: ULONG

Array bendera yang menunjukkan konten dan validitas anggota struktur lainnya. Ini bisa menjadi kombinasi dari nilai berikut.

SEE_MASK_CLASSKEY

Gunakan kunci registri kelas file.

SEE_MASK_CLASSNAME

Gunakan nama kelas file.

SEE_MASK_CONNECTNETDRV

Validasi berbagi dan sambungkan ke huruf kandar. Anggota pszFile adalah jalur UNC dari file di jaringan.

SEE_MASK_DOENVSUBST

Perluas variabel lingkungan apa pun.

SEE_MASK_FLAG_DDEWAIT

Tunggu hingga percakapan DDE berakhir sebelum kembali.

SEE_MASK_FLAG_NO_UI

Jangan tampilkan kotak pesan kesalahan jika terjadi kesalahan.

SEE_MASK_HMONITOR

Gunakan bendera ini saat menentukan monitor pada sistem multimonitor.

SEE_MASK_NOCLOSEPROCESS

Aplikasi akan menutup proses. Jika anggota lpProcessInformation adalah penunjuk PROCESS_INFORMATION yang valid, dan SEE_MASK_NOCLOSEPROCESS diatur, proses akan tetap terbuka ketika SHCreateProcessAsUserW kembali. Anggota hProcess dan hThread dari struktur PROCESS_INFORMATION masing-masing memegang proses dan handel utas. Bendera ini biasanya diatur untuk memungkinkan aplikasi mengetahui kapan proses yang dibuat dengan SHCreateProcessAsUserW berakhir. Dalam beberapa kasus, seperti ketika eksekusi terpenuhi melalui percakapan DDE, tidak ada handel yang akan dikembalikan. Aplikasi panggilan bertanggung jawab untuk menutup handel ketika tidak lagi diperlukan. Jika bendera ini tidak diatur, proses akan ditutup sebelum SHCreateProcessAsUserW kembali, bahkan jika lpProcessInformation adalah penunjuk yang valid.

SEE_MASK_NO_CONSOLE

Buat konsol untuk proses baru alih-alih mewarisi konsol induk. Ini setara dengan menggunakan bendera CREATE_NEW_CONSOLE dengan CreateProcess.

SEE_MASK_UNICODE

Menunjukkan aplikasi Unicode.

hwnd

Jenis: HWND

Handel jendela induk.

pszFile

Jenis: LPCWSTR

Penunjuk ke string Unicode yang dihentikan null yang menentukan file yang dapat dieksekusi di mana SHCreateProcessAsUserW akan melakukan tindakan yang ditentukan oleh kata kerja runas . Kata kerja runas harus didukung oleh kelas file.

Catatan Jika jalur tidak disertakan dengan nama file, direktori saat ini diasumsikan.
 

pszParameters

Jenis: LPCWSTR

Penunjuk ke string Unicode yang dihentikan null yang berisi parameter aplikasi. Parameter harus dipisahkan oleh spasi.

pszCurrentDirectory

Jenis: LPCWSTR

String Unicode yang dihentikan null yang berisi direktori saat ini.

hUserToken

Jenis: HANDEL

Token Akses yang dapat digunakan untuk mewakili pengguna tertentu. Diperlukan ketika ada beberapa pengguna untuk folder yang diperlakukan sebagai milik satu pengguna. Aplikasi panggilan harus memiliki hak keamanan yang sesuai untuk pengguna tertentu, termasuk TOKEN_QUERY dan TOKEN_IMPERSONATE, dan sarang registri pengguna saat ini harus dipasang. Untuk diskusi lebih lanjut tentang masalah kontrol akses, lihat Access Control.

lpProcessAttributes

Jenis: LPSECURITY_ATTRIBUTES

Penunjuk ke struktur SECURITY_ATTRIBUTES dengan deskriptor keamanan untuk proses baru. Ini juga menentukan apakah proses anak dapat diwariskan. Jika parameter ini diatur ke NULL, proses akan memiliki deskriptor keamanan default dan handel tidak dapat diwariskan.

Peringatan Keamanan: Menggunakan deskriptor keamanan dengan tidak benar dapat membahayakan keamanan aplikasi Anda. Untuk informasi selengkapnya, lihat SECURITY_ATTRIBUTES.

lpThreadAttributes

Jenis: LPSECURITY_ATTRIBUTES

Penunjuk ke struktur SECURITY_ATTRIBUTES dengan deskriptor keamanan untuk utas baru. Ini juga menentukan apakah proses anak dapat diwariskan. Jika parameter ini diatur ke NULL, proses akan memiliki deskriptor keamanan default dan handel tidak dapat diwariskan.

Peringatan Keamanan: Menggunakan deskriptor keamanan dengan tidak benar dapat membahayakan keamanan aplikasi Anda. Untuk informasi selengkapnya, lihat SECURITY_ATTRIBUTES.

bInheritHandles

Jenis: BOOL

Indikator apakah proses baru mewarisi handel dari proses panggilan. Jika diatur ke TRUE, setiap handel terbuka yang dapat diwariskan dalam proses panggilan diwariskan oleh proses baru. Handel yang diwariskan memiliki nilai dan hak akses yang sama dengan handel asli.

dwCreationFlags

Jenis: DWORD

Bendera yang mengontrol pembuatan proses dan kelas prioritas. Untuk daftar bendera yang tersedia, lihat CreateProcessAsUser.

lpStartupInfo

Jenis: LPSTARTUPINFOW

Penunjuk ke struktur STARTUPINFO yang menentukan bagaimana jendela utama untuk proses baru akan muncul.

lpProcessInformation

Jenis: LPPROCESS_INFORMATION

Penunjuk ke struktur PROCESS_INFORMATION yang menerima informasi tentang proses baru. Atur anggota ini ke penunjuk struktur yang valid, dan atur bendera SEE_MASK_NOCLOSEPROCESS di anggota fMask , dan prosesnya akan tetap terbuka saat fungsi kembali. Anggota hProcess dan hThread struktur PROCESS_INFORMATION kemudian akan memegang proses dan handel utas. Atur anggota ini ke NULL, dan proses akan ditutup sebelum fungsi kembali.

Keterangan

Untuk menyertakan tanda kutip ganda dalam pszParameters, Anda harus mengapit setiap tanda dalam sepasang tanda kutip, seperti dalam contoh berikut:

sei.lpParameters = "An example: \"\"\"quoted text\"\"\"";

Dalam hal ini, aplikasi menerima tiga parameter: An, example:, dan "quoted text".

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional, Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Header shellapi.h

Lihat juga

SHELLEXECUTEINFO