Тема: Как получить содержимое командной строки?
как получить содержимое командной строки?
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → Delphi → Как получить содержимое командной строки?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
как получить содержимое командной строки?
Предлагаю след. вариант.
implementation {$R *.dfm} var CommandWnd:HWND; function GetAcadCmdLine(AcadWnd:HWND):string; stdcall; var cmdText:array [0..499] of Char; //*************************************************************** function EnumChildProc(Wnd:HWND;lParam:LongInt):boolean; stdcall; var wndText:array [0..9] of Char; begin if lParam<>0 then Result:=false else begin SendMessage(Wnd,WM_GETTEXT,10,integer(@wndText)); if Pos('COMMAND:',AnsiUpperCase(wndText))>0 then CommandWnd:=Wnd; Result:=true; end; end; //*************************************************************** begin CommandWnd:=0; EnumChildWindows(AcadWnd,@EnumChildProc,CommandWnd); if CommandWnd<>0 then begin SendMessage(CommandWnd,WM_GETTEXT,500,integer(@cmdText)); Result:=cmdText; end; end;
Пример вызова showMessage(GetAcadCmdLine(AcWnd)), где AcWnd - handle главного окна автокада. В переменную CommandWnd передастся hadle дочернего окна, отвечающего за ввод комманд. Лучше всего, если при запуске программы получить AcWnd и CommandWnd, чтоб потом не натыкаться на отклнённый вызов когда автокад ожидает ввода от пользователя. И потом, зная CommandWnd, легко получить его текст, послав ему сообщение WM_GETTEXT.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → Delphi → Как получить содержимое командной строки?
Форум работает на PunBB, при поддержке Informer Technologies, Inc