On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение





Пост N: 2
Зарегистрирован: 23.06.08
ссылка на сообщение  Отправлено: 24.06.08 17:47. Заголовок: Как запуcкать приложения без использования __Run


Здравствуйте ! Подскажите пожалуйста, как можно запустить приложение не используя командную строку ?


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 72 , стр: 1 2 3 4 All [только новые]


администратор




Пост N: 2802
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.03.13 15:46. Заголовок: еще не все ;) Suspic..


еще не все ;)
Suspicious pointer conversion in function HB_FUN_EXECANDWAIT в строке char * szProg = hb_parc(1);
что ему надо ? ;)

PS
Harbour 3.2

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1126
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 19.03.13 18:03. Заголовок: Ему надо const char..


Ему надо

const char * szProg = hb_parc(1);


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2803
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.03.13 18:22. Заголовок: Петр Да теперь там ..


Петр
Да теперь там не ругается но ругается в другом месте
Warning W8075 pew.prg 238: Suspicious pointer conversion in function HB_FUN_EXECANDWAIT

на этой строке
if( CreateProcess(NULL, szProg, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS,
NULL, NULL, &si, &proc ) )


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1129
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 19.03.13 19:04. Заголовок: Это естественно - об..


Это естественно - обычное приведение типов

Или игнорируйте, или функцию для использования с Harbour нужно переписать.
За пример можно взять WIN_RUNDETACHED, библиотека hbwin

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2804
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.03.13 19:08. Заголовок: Петр Понятно ;) Зна..


Петр
Понятно ;) Знал бы С сюда бы не написал ;)
Спасибо и на этом.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1130
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 19.03.13 21:36. Заголовок: Понятно ;) Возможно..


Понятно ;)

Возможно потребуется напильник - не компилировал и не тестировал.


 цитата:

#pragma BEGINDUMP

#include <windows.h>
#include "hbapi.h"
#include "hbvm.h"
#include "hbwinuni.h"

HB_FUNC( EXECANDWAIT )
{
void * hProg;
HB_SIZE nLen;
LPCTSTR lpProg = HB_PARSTR( 1, &hProg, &nLen );

DWORD dwResult = 0xFFFFFFFF;

STARTUPINFO si;
PROCESS_INFORMATION proc;

memset( &si, 0, sizeof(si) );
si.cb = sizeof( si );
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = (WORD) hb_parnldef( 2, SW_SHOWDEFAULT );

if( CreateProcess( NULL,
HB_STRUNSHARE( &hProg, lpProg, nLen ), /* Command line (Unicode version needs an non-const buffer) */
NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &proc ) )
{
hb_vmUnlock();

WaitForInputIdle( proc.hProcess, INFINITE );
if( WaitForSingleObject( proc.hProcess, INFINITE ) == WAIT_OBJECT_0 )
{
if( ! GetExitCodeProcess( proc.hProcess, &dwResult ) )
dwResult = 0xFFFFFFFF;
}

CloseHandle( proc.hThread );
CloseHandle( proc.hProcess );

hb_vmLock();
}

hb_retnint( dwResult );

hb_strfree( hProg );
}

#pragma ENDDUMP



Спасибо: 1 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2755
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.03.13 21:51. Заголовок: Дима, ты про эту фун..


Дима, ты про эту функцию спрашивал ?
Я для хХарбора сделал - http://clipper.borda.ru/?1-4-0-00000660-000-0-0-1330208704

Оффтоп: Хорошую вещь сделал Pasha - функцию EXECANDWAIT в http://clipper.borda.ru/?1-4-0-00000327-000-10001-0-1250159714
Только сейчас оценил.
Можно вызвать через батник Notepad или WinWord и пока не завершишь работу в них, программа "заморожена" !!!
Спасибо БОЛЬШОЕ Pasha !


Пример заново выкладываю ( давно уже было, сам там посмотришь) - http://files.mail.ru/7F726EC71C0C4B38A06A75252CBFDEFF


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2805
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.03.13 22:07. Заголовок: Петр пишет: Возможн..


Петр пишет:

 цитата:
Возможно потребуется напильник - не компилировал и не тестировал




Спасибо но...
 
Warning W8065 pew.prg 226: Call to function 'HB_PARSTR' with no prototype in function HB_FUN_EXECANDWAIT
Warning W8069 pew.prg 226: Nonportable pointer conversion in function HB_FUN_EXECANDWAIT
Warning W8065 pew.prg 239: Call to function 'HB_STRUNSHARE' with no prototype in function HB_FUN_EXECANDWAIT
Error E2342 ped.prw 240: Type mismatch in parameter 'lpCommandLine' (wanted 'signed char *', got 'int') in function HB_F
UN_EXECANDWAIT
Warning W8065 pew.prg 242: Call to function 'hb_vmUnlock' with no prototype in function HB_FUN_EXECANDWAIT
Warning W8065 pew.prg 254: Call to function 'hb_vmLock' with no prototype in function HB_FUN_EXECANDWAIT
Warning W8065 pew.prg 257: Call to function 'hb_retint' with no prototype in function HB_FUN_EXECANDWAIT
Error E2379 ped.prw 259: Statement missing ; in function HB_FUN_EXECANDWAIT
Warning W8004 pew.prg 260: 'lpProg' is assigned a value that is never used in function HB_FUN_EXECANDWAIT


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1132
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 19.03.13 22:26. Заголовок: А теперь ?..


А теперь ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2806
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.03.13 22:34. Заголовок: Петр пишет: А тепер..


Петр пишет:

 цитата:
А теперь ?


Теперь все собирается. Проверю завтра. Спасибо !
Каковы параметры функции (как в WAPI_ShellExecute) ?


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1133
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 19.03.13 22:59. Заголовок: Dima пишет: Каковы ..


Dima пишет:

 цитата:
Каковы параметры функции (как в WAPI_ShellExecute) ?



Не совсем понял, как в оригинале
function WinExec32AndWait(const Cmd: String; const CmdShow: Integer): Cardinal;

Из примера Андрея
cFile := CurDrive()+":"+DirName()+"\backup_test2.bat"
EXECANDWAIT(cFile)

2-й параметр в ExecAndWait == 6-й параметр в wapi_ShellExecute, по умолчанию SW_SHOWDEFAULT, можно на SW_SHOWNORMAL поменять

Что, собственно, делать-то нужно?


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2807
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.03.13 23:18. Заголовок: Петр пишет: Что, со..


Петр пишет:

 цитата:
Что, собственно, делать-то нужно?


Ни чего ;) 2 параметра я понял. Просто уточнил. Этот язык С для меня как китайская грамота ;)
Завтра проверю и отпишу. Спасибо !

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2808
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.03.13 09:05. Заголовок: Петр пишет: 2-й пар..


Петр пишет:

 цитата:
2-й параметр в ExecAndWait



Все работает как надо , но если вторым параметром поставить 0 (он же SW_HIDE) то экран портится тем
что выводит вызываемая программа. Похоже SW_HIDE не срабатывает. В WAPI_ShellExecute если
вызвать туже программу с установкой SW_HIDE то все нормально
Хотелось бы что бы запускаемый процесс происходил скрыто.

PS
GTWIN

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2809
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.03.13 09:37. Заголовок: Переделал сам (вроде..


Переделал сам (вроде пашет как и хотел)
Вот этот кусочек

 
if( CreateProcess( NULL,
HB_STRUNSHARE( &hProg, lpProg, nLen ), /* Command line (Unicode version needs an non-const buffer) */
NULL, NULL, FALSE, CREATE_NEW_CONSOLE | NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &proc ) )
{




Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2757
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.03.13 10:45. Заголовок: Dima пишет: Передел..


Dima пишет:

 цитата:
Переделал сам (вроде пашет как и хотел)


Пример (готовый) в студию !

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2810
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.03.13 11:05. Заголовок: Andrey пишет: Приме..


Andrey пишет:

 цитата:
Пример (готовый) в студию !


Да не вопрос.

 
Proc main

EXECANDWAIT("c:\winprint\winprint test.txt -c",SW_HIDE)
return


#pragma BEGINDUMP

#include <windows.h>
#include "hbapi.h"
#include "hbvm.h"
#include "hbwinuni.h"

HB_FUNC( EXECANDWAIT )
{
void * hProg;
HB_SIZE nLen;
LPCTSTR lpProg = HB_PARSTR( 1, &hProg, &nLen );

DWORD dwResult = 0xFFFFFFFF;

STARTUPINFO si;
PROCESS_INFORMATION proc;

memset( &si, 0, sizeof(si) );
si.cb = sizeof( si );
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = (WORD) hb_parnldef( 2, SW_SHOWDEFAULT );

if( CreateProcess( NULL,
HB_STRUNSHARE( &hProg, lpProg, nLen ), /* Command line (Unicode version needs an non-const buffer) */
NULL, NULL, FALSE, CREATE_NEW_CONSOLE | NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &proc ) )
{
hb_vmUnlock();

WaitForInputIdle( proc.hProcess, INFINITE );
if( WaitForSingleObject( proc.hProcess, INFINITE ) == WAIT_OBJECT_0 )
{
if( ! GetExitCodeProcess( proc.hProcess, &dwResult ) )
dwResult = 0xFFFFFFFF;
}

CloseHandle( proc.hThread );
CloseHandle( proc.hProcess );

hb_vmLock();
}

hb_retnint( dwResult );

hb_strfree( hProg );
}

#pragma ENDDUMP


Спасибо: 1 
ПрофильЦитата Ответить
администратор




Пост N: 2828
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.03.13 00:07. Заголовок: Andrey пишет: Приме..


Andrey пишет:

 цитата:
Пример (готовый) в студию !


Что в студии говорят ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2764
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.03.13 00:35. Заголовок: Dima пишет: Что в с..


Dima пишет:

 цитата:
Что в студии говорят ?


Да еще не добрался... Целый день как пчелка тружусь, с 10 и вот сейчас до ночи 01:33....
Отвечаю и между делом пытаюсь что-то написать своё...


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 90
Зарегистрирован: 19.05.05
ссылка на сообщение  Отправлено: 21.03.13 09:32. Заголовок: Работает, запускает ..


Работает, запускает и в обычном режиме и в скрытом. Но в обычном режиме данные за вызванным
приложением портятся. Но это, наверное, издержки ожидания окончания вызванного процесса
Терминал GTWVT




Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 850
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 21.03.13 09:45. Заголовок: Может вместо CREATE_..


Может вместо CREATE_NEW_CONSOLE использовать CREATE_NO_WINDOW?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 72 , стр: 1 2 3 4 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 96
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет