![]() |
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]() ![]() ![]() |
|
DriveSoftware |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 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); |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
Это еще ничего.
Я посылаю запрос серверу (обе проги на сокетах). Если сервер получает, скажем, такой текст "!C:\MyFolder\MyFile.exe" то должна выполняться команда ResText:=Copy(ServerSocket1.recivetext,1,1);//т.е. полученный текст без "!" WinExec(ResText, sw_restore); команда-то выполняется, но... если программа-сервер не свернута в трее, а показана на экране. Приходится посылать любой текст для того, что-бы программа показалась, а затем давать команду на запус файла. Вот такие пироги. А может это не с WinExec связано, т.к. в D7 есть класс TRunFile, так он работает также. Пока не мгу разобраться, а вернее нехочу. И не могу понять с чем это связано. |
|||
|
||||
DriveSoftware |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 17.3.2003 Репутация: нет Всего: 4 |
Вобщем я почти ничего не понял их твоего рассказа!
|
|||
|
||||
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 1 Всего: 64 |
DriveSoftware Возможно, это из за того что там используется null-terminated строка и пробел воспринимается концом строки. Хм, в справке ни каких оговорок на этот счет нет. Возможно в MSDN что нить будет.
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
DriveSoftware |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 17.3.2003 Репутация: нет Всего: 4 |
Уж чего я там только не пробовал использовать, нифига...
|
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 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 -------------------- С уважением, г-н Посол. |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 14 Всего: 112 |
По-моему будет один "!" в ResText... -------------------- С уважением, г-н Посол. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
"По-моему будет один "!" в ResText..."
Я здесь ошибся, в действительности: ResText:=Copy(ServerSocket1.recivetext,1,Lenth(ServerSocket1.recivetext)); дело не в этом - программа-то ("!C:\MyFolder\MyFile.exe") запускается, но если программа-сервер показана на экране, а не свернут в трее. |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 14 Всего: 112 |
Странно - написал прогу сидящую в трее и вызывающую время от времени paintbrush - все нормально.
Попробуй разные параметры вместо sw_show поподставлять. Или попробуй через CreateProcess... -------------------- С уважением, г-н Посол. |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 14 Всего: 112 |
Тогда уж так: ResText:=Copy(ServerSocket1.recivetext,2,Lenth(ServerSocket1.recivetext)-1); ![]() -------------------- С уважением, г-н Посол. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
Top0s0l
Дело не в синтаксисе - здесь я писал на скорую руку, я же писал, что требуемая прогрммма-то запускается. Попробую SW_SHOW. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |