![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Передача параметров [D6, XP]
webpauk © (2007-05-03 15:45:00)Как передать параметры проге, которую надо открыть - знаю.
а как передать параметры уже открытой проге?
Reindeer Moss Eater (2007-05-03 22:44:00) [1]Мда. Какие премудрости.
Если вы уж знаете хендл окна, то чем обычный sendmesage то не угодил?
webpauk (2007-05-03 17:39:00) [2]например, у меня есть список файлов, записанных в
fLisT(TStringList)
DVM (2007-05-03 17:39:00) [3]
Drop := MakeDrop(имена файлов);
if Drop <> 0 then PostMessage(hWin, wm_DropFiles, Drop, 0);
GlobalFree(Drop);
function MakeDrop(const FileNames: array of string): THandle;
var
I, Size: Integer;
Data: PDragInfoA;
P: PChar;
begin
Size := SizeOf(TDragInfoA) + 1;
for I := 0 to High(FileNames) do
Inc(Size, Length(FileNames[I]) + 1);
Result := GlobalAlloc(GHND or GMEM_SHARE, Size);
if Result <> 0 then
begin
Data := GlobalLock(Result);
if Data <> nil then
try
Data.uSize := SizeOf(TDragInfoA);
P := PChar(@Data.grfKeyState) + 4;
Data.lpFileList := P;
for I := 0 to High(FileNames) do
begin
Size := Length(FileNames[I]);
Move(Pointer(FileNames[I])^, P^, Size);
Inc(P, Size + 1);
end;
finally
GlobalUnlock(Result);
end
else
begin
GlobalFree(Result);
Result := 0;
end;
end;
end;
webpauk (2007-05-03 17:33:00) [4]формат команды, please
Sendmessage(WinToSendHandle, WM_DROPFILES, ... )
DVM (2007-05-03 15:58:00) [5]
> а как передать параметры уже открытой проге?
если программа поддерживает принятие файлов на свое окно, то можно сделать иммитацию того что на окно программы бросили файлы. WM_DROPFILES.
webpauk (2007-05-03 15:57:00) [6]
> Reindeer Moss Eater © (03.05.07 15:48) [2]
нда...
clickmaker (2007-05-03 15:56:00) [7]
> ShellExecute(...
а в чем разница, если так?
Reindeer Moss Eater (2007-05-03 15:48:00) [8]Четвертый параметр функции
webpauk (2007-05-03 15:45:00) [9]я имею ввиду:
ShellExecute(...