Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Сообщение для смены каталога

 
Post new topic   Reply to topic    Total Commander Forum Index -> Написание плагинов для Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Sanik



Joined: 15 Jan 2005
Posts: 3
Location: Киев, Укаина

Post (Separately) Posted: Mon Jul 11, 2005 16:53    Post subject: Сообщение для смены каталога Reply with quote

Никак не могу заставить 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;

Может надо еще что-то добавить?
Back to top
View user's profile Send private message
VNavigator



Joined: 26 Feb 2006
Posts: 2

Post (Separately) Posted: Sun Feb 26, 2006 23:14    Post subject: Reply with quote

Чтото я никак не пойму, как работает такая штука:
Code:

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;

Почему по команде CHDIR он не переходит в эту папку, которая задается после команды? В хелпе написано что, такая комбинация должна это делать... Плиз жду ответа.
Back to top
View user's profile Send private message
VNavigator



Joined: 26 Feb 2006
Posts: 2

Post (Separately) Posted: Mon Feb 27, 2006 03:12    Post subject: Reply with quote

Все нашел решение:
Эту строку
Code:

RemoteName:=PChar(RemoteName+Copy(QuoteStr,Pos(' ',QuoteStr)+1,MaxInt)+'\');

надо заменить на эту
Code:

RemoteName:=StrPCopy(RemoteName,RemoteName+Copy(QuoteStr,Pos(' ',QuoteStr)+1,MaxInt)+'\');

Что-то мудрит компилятор Делфи с преобразованием типов ????
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Написание плагинов для Total Commander All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group