tôi sử dụng ShellExecute
để làm điều gì đó, và các tham số đầu tiên là HWND
, các documentation trên MSDN nói:HWND làm gì trong ShellExecute?
Một handle cửa sổ cha mẹ sử dụng để hiển thị một giao diện người dùng hoặc thông báo lỗi. Giá trị này có thể là NULL nếu thao tác không được liên kết với một cửa sổ.
nhưng tôi tìm thấy giá trị nào HWND
có cùng kết quả.
ví dụ:
ShellExecute(0, 'open', 'c:\', nil, nil, SW_SHOWNORMAL);
ShellExecute(Self.Handle, 'open', 'c:\', nil, nil, SW_SHOWNORMAL);
ShellExecute(123456, 'open', 'c:\', nil, nil, SW_SHOWNORMAL);
chỉ được điều tương tự (Mở đĩa C), vì vậy tôi tự hỏi việc sử dụng sử dụng khác nhau HWND
là gì?
nhân tiện, khi nào 'HWND = 0' là HandleTop của DeskTop được sử dụng?
bạn có thể nhận cửa sổ máy tính để bàn 'HWND' bằng cách gọi phương thức' GetDesktopWindow() 'và tay cầm này không bằng 0. 0 có nghĩa là xử lý rỗng/không được xử lý. – teran
@teran Nhưng điều đáng tin cậy là ShellExecute có thể chứa mã gọi là 'GetDesktopWindow' nếu cửa sổ xử lý nó được truyền bằng 0. –