Никак не могу заставить Total сменить каталог.
Делаю это так:
procedure TForm1.Button1Click(Sender: TObject);
var
aCopyData: TCopyDataStruct;
hTargetWnd: HWND;
begin
with aCopyData do
begin
dwData := 0;
cbData := StrLen(PChar(Edit1.Text)) + 1;
lpData := PChar(Edit1.Text);
end;
hTargetWnd := FindWindow('TTOTAL_CMD', nil);
if hTargetWnd <> 0 then
sendmessage(hTargetWnd, WM_COPYDATA, Longint(Handle), Longint(@aCopyData))
else
ShowMessage('Total Commander не найден');
end;
Может надо еще что-то добавить?
Сообщение для смены каталога
Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik
-
VNavigator
- Сообщения: 2
- Зарегистрирован: Вс фев 26, 2006 22:06
- Контактная информация:
Чтото я никак не пойму, как работает такая штука:
Почему по команде CHDIR он не переходит в эту папку, которая задается после команды? В хелпе написано что, такая комбинация должна это делать... Плиз жду ответа.
Код: Выделить всё
function FsExecuteFile (MainWin : thandle; RemoteName, Verb : PChar) : integer; stdcall;
var
quotestr:string;
CommandStr:string;
begin
...
if Pos('quote ',Verb)>0 then begin
QuoteStr:=Copy(Verb,7,MaxInt);
CommandStr:=AnsiUpperCase(Copy(QuoteStr,1,Pos(' ',QuoteStr)-1));
if (CommandStr='MD') or (CommandStr='MKDIR') then
fsMkDir(PAnsiChar(RemoteName+Copy(QuoteStr,Pos(' ',QuoteStr)+1,MaxInt)));
if (CommandStr='CD') or (CommandStr='CHDIR') then begin
Result := FS_EXEC_SYMLINK;
RemoteName:=PChar(RemoteName+Copy(QuoteStr,Pos(' ',QuoteStr)+1,MaxInt)+'\');
end;
end;
...
end;
-
VNavigator
- Сообщения: 2
- Зарегистрирован: Вс фев 26, 2006 22:06
- Контактная информация:
Все нашел решение:
Эту строку
надо заменить на эту
Что-то мудрит компилятор Делфи с преобразованием типов ????
Эту строку
Код: Выделить всё
RemoteName:=PChar(RemoteName+Copy(QuoteStr,Pos(' ',QuoteStr)+1,MaxInt)+'\');
Код: Выделить всё
RemoteName:=StrPCopy(RemoteName,RemoteName+Copy(QuoteStr,Pos(' ',QuoteStr)+1,MaxInt)+'\');