Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ShellExecute, Проблемы... :( 
:(
    Опции темы
DriveSoftware
Дата 11.9.2003, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 17.3.2003

Репутация: нет
Всего: 4



HI !

Странная вещь, почему когда в ShellExecute указываю параметр ( 'D:\1 2.bmp') с пробелом в имени файла, то он такой просто
не находит, и думает что указали 'D:\1.bmp', как бы это исправить? Пример ниже:

ShellExecute(Handle, 'open', 'D:\PBRUSH.exe', 'D:\1 2.bmp', 'D:\', sw_show);

или даже так
WinExec('D:\PBRUSH.exe D:\1 2.bmp', sw_show);

ну а так вообще молчит.
ShellExecute(Handle, 'open', 'D:\PBRUSH.exe D:\1 2.bmp', nil, 'D:\', sw_show);
PM MAIL WWW ICQ   Вверх
Akella
Дата 11.9.2003, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: нет
Всего: 329



Это еще ничего.
Я посылаю запрос серверу (обе проги на сокетах). Если сервер получает, скажем, такой текст "!C:\MyFolder\MyFile.exe" то должна выполняться
команда

ResText:=Copy(ServerSocket1.recivetext,1,1);//т.е. полученный текст без "!"
WinExec(ResText, sw_restore);

команда-то выполняется, но... если программа-сервер не свернута в трее, а показана на экране.
Приходится посылать любой текст для того, что-бы программа показалась, а затем давать команду на запус файла.
Вот такие пироги.
А может это не с WinExec связано, т.к. в D7 есть класс TRunFile, так он работает также. Пока не мгу разобраться, а вернее нехочу. И не могу понять с чем это связано.
PM MAIL   Вверх
DriveSoftware
Дата 11.9.2003, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 17.3.2003

Репутация: нет
Всего: 4



Вобщем я почти ничего не понял их твоего рассказа!
PM MAIL WWW ICQ   Вверх
<Spawn>
Дата 11.9.2003, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 1
Всего: 64



DriveSoftware Возможно, это из за того что там используется null-terminated строка и пробел воспринимается концом строки. Хм, в справке ни каких оговорок на этот счет нет. Возможно в MSDN что нить будет.


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
DriveSoftware
Дата 11.9.2003, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 17.3.2003

Репутация: нет
Всего: 4



Уж чего я там только не пробовал использовать, нифига...
PM MAIL WWW ICQ   Вверх
p0s0l
Дата 11.9.2003, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 14
Всего: 112



Про первый пост - в таких случаях надо пользоваться кавычками "...":
ShellExecute(Handle, 'open', 'PBRUSH.exe', '"D:\1 2.bmp"', 'D:\', sw_show);

Это сообщение отредактировал(а) p0s0l - 11.9.2003, 13:37


--------------------
С уважением, г-н Посол.
PM   Вверх
p0s0l
Дата 11.9.2003, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 14
Всего: 112



Цитата
ResText:=Copy(ServerSocket1.recivetext,1,1);//т.е. полученный текст без "!"

По-моему будет один "!" в ResText...



--------------------
С уважением, г-н Посол.
PM   Вверх
Akella
Дата 11.9.2003, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: нет
Всего: 329



"По-моему будет один "!" в ResText..."

Я здесь ошибся, в действительности:
ResText:=Copy(ServerSocket1.recivetext,1,Lenth(ServerSocket1.recivetext));
дело не в этом - программа-то ("!C:\MyFolder\MyFile.exe") запускается, но если программа-сервер показана на экране, а не свернут в трее.

PM MAIL   Вверх
p0s0l
Дата 11.9.2003, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 14
Всего: 112



Странно - написал прогу сидящую в трее и вызывающую время от времени paintbrush - все нормально.
Попробуй разные параметры вместо sw_show поподставлять. Или попробуй через CreateProcess...



--------------------
С уважением, г-н Посол.
PM   Вверх
p0s0l
Дата 11.9.2003, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 14
Всего: 112



Цитата
ResText:=Copy(ServerSocket1.recivetext,1,Lenth(ServerSocket1.recivetext));

Тогда уж так:
ResText:=Copy(ServerSocket1.recivetext,2,Lenth(ServerSocket1.recivetext)-1);

confused.gif


--------------------
С уважением, г-н Посол.
PM   Вверх
Akella
Дата 12.9.2003, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: нет
Всего: 329



Top0s0l
Дело не в синтаксисе - здесь я писал на скорую руку, я же писал, что требуемая прогрммма-то запускается. Попробую SW_SHOW.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.1310 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.