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





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


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


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







Пост N: 318
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 05.06.09 14:03. Заголовок: Andrey пишет: Ура, ..


Andrey пишет:

 цитата:
Ура, нашел на нашем языке......


Где нашёл? Поделись на aynn[at]li.ru

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




Пост N: 863
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.06.09 14:20. Заголовок: Да не помню где взял..


Да не помню где взял...
Давай адрес - вышлю ..

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





Пост N: 319
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 05.06.09 14:51. Заголовок: Andrey пишет: Давай..


Andrey пишет:

 цитата:
Давай адрес - вышлю ..


Так написан адрес-то! Или тебя [at] смутило?

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




Пост N: 864
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.06.09 15:52. Заголовок: Лукашевский пишет: ..


Лукашевский пишет:

 цитата:
Или тебя [at] смутило?


Смутило !
Это на каком языке ?
aynn@li.ru - не прокатило !

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





Пост N: 321
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 05.06.09 16:01. Заголовок: Andrey пишет: aynn@..


Andrey пишет:

 цитата:
aynn@li.ru - не прокатило !


Очень странно... Сегодня мне отправляли письмо на этот ящик, я его получил. Может, ты чего не так пишешь? Смотри в uppercase: AYNN@LI.RU

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




Пост N: 866
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.06.09 16:11. Заголовок: :sm189: Файлы опуб..



Файлы опубликованы:
http://files.mail.ru/FCT0WW
Файлы будут храниться до 10 июня 2009 года, каждое скачивание файлов продлевает их срок хранения еще на 5 дней.

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


Пост N: 131
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 06.08.09 11:54. Заголовок: Добрый день. Подска..


Добрый день.

Подскажите, а можно ли затормозить выполнение программы до того момента, пока то, что вызывалось ShellExecute, завершит свою работу?

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




Пост N: 891
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.08.09 19:19. Заголовок: Один из вариантов: ..


Один из вариантов:

1) Создать файл, любой хоть текстовый... (например exit.txt)
2) Вызвать ShellExecute()
3) Пока существует файл exit.txt программа не работает.... Можно повесить табличку типа: Работайте с программой такой-то...

4) А из программы вызываемой ShellExecute() удалите файл exit.txt
5) И переключите фокус на предыдущую программу.




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


Пост N: 257
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 09.08.09 09:53. Заголовок: Подскажите, а можно ..



 цитата:
Подскажите, а можно ли затормозить выполнение программы до того момента, пока то, что вызывалось ShellExecute, завершит свою работу?



На Delphi это делается следующим образом:

function WinExec32AndWait(const Cmd: String; const CmdShow: Integer): Cardinal;
var
StartupInfo: TStartupInfo;
ProcessInfo: TProcessInformation;
begin
Result := Cardinal($FFFFFFFF);
FillChar(StartupInfo, SizeOf(TStartupInfo), #0);
StartupInfo.cb := SizeOf(TStartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := CmdShow;
if CreateProcess(nil, PChar(Cmd), nil, nil, False, NORMAL_PRIORITY_CLASS,
nil, nil, StartupInfo, ProcessInfo) then
begin
WaitForInputIdle(ProcessInfo.hProcess, Infinite);
if WaitForSingleObject(ProcessInfo.hProcess, Infinite) = WAIT_OBJECT_0 then
begin
if not GetExitCodeProcess(ProcessInfo.hProcess, Result) then
Result := Cardinal($FFFFFFFF);
end;
CloseHandle(ProcessInfo.hThread);
CloseHandle(ProcessInfo.hProcess);
end;
end;

Один в один переведите в С-синтаксис и все.


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


Пост N: 132
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 11.08.09 09:28. Заголовок: Не сложилась у меня ..


Не сложилась у меня дружба с Delphi, с С тоже не очень, так что спасибо за совет, которій мне не удастся воплотить в жизнь

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




Пост N: 1199
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 11.08.09 11:40. Заголовок: #pragma BEGINDUMP #..


#pragma BEGINDUMP

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

HB_FUNC( EXECANDWAIT )
{
char * szProg = hb_parc(1);
int iShow = hb_parni(2);
LONG lResult = -1;

STARTUPINFO si;
PROCESS_INFORMATION proc;

memset( &si, 0, sizeof( si ) );
si.cb = sizeof( si );
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = iShow;

if( CreateProcess(NULL, szProg, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS,
NULL, NULL, &si, &proc ) )
{
WaitForInputIdle(proc.hProcess, INFINITE );
if( WaitForSingleObject( proc.hProcess, INFINITE ) == WAIT_OBJECT_0 )
{
if( ! GetExitCodeProcess(proc.hProcess, (LPDWORD) &lResult ) )
lResult = -1;
}
CloseHandle(proc.hThread);
CloseHandle(proc.hProcess);
}
hb_retnl( lResult );

}

#pragma ENDDUMP

Извини, не проверял (с)

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


Пост N: 259
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 12.08.09 13:04. Заголовок: Urri пишет: так что..


Urri пишет:

 цитата:
так что спасибо за совет, которій мне не удастся воплотить в жизнь



Pasha пишет:

 цитата:
HB_FUNC( EXECANDWAIT )
{



Ну, я надеялся, что с переводом вам помогут


Паш, у меня, правда есть одно небольшое примечание:

Тип Cardinal в дельфях это DWORD, поэтому, вообще говоря, $FFFFFFFF - это не -1, а 4294967295

К тому же в GetExitCodeProcess второй параметр идет указателем, поэтому, скорее всего, неявного приведения типов здесь не будет. То есть, результат может оказаться другим числом.

Если я правильно понимаю LONG используется, потому что нельзя вернуть DWORD? Если так, то, может быть, несколько лучше будет так:

Добавить еще переменную:

DWORD dResult = 0хFFFFFFFF;

В GetExitCodeProcess использовать ее:

GetExitCodeProcess(proc.hProcess, (LPDWORD) &dResult ) )

Ну и перед возвратом - hb_retnl( lResult ); сделать явное присвоение:

lResult = dResult;













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




Пост N: 1200
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.08.09 13:38. Заголовок: С учетом исправлений..


С учетом исправлений Сергея, функция будет выглядеть так:

HB_FUNC( EXECANDWAIT )
{
char * szProg = hb_parc(1);
int iShow = hb_parni(2);
DWORD dResult = 0хFFFFFFFF;
LONG lResult;

STARTUPINFO si;
PROCESS_INFORMATION proc;

memset( &si, 0, sizeof( si ) );
si.cb = sizeof( si );
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = iShow;

if( CreateProcess(NULL, szProg, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS,
NULL, NULL, &si, &proc ) )
{
WaitForInputIdle(proc.hProcess, INFINITE );
if( WaitForSingleObject( proc.hProcess, INFINITE ) == WAIT_OBJECT_0 )
{
if( ! GetExitCodeProcess(proc.hProcess, (LPDWORD) &dResult ) )
dResult = 0хFFFFFFFF;
}
CloseHandle( proc.hThread );
CloseHandle( proc.hProcess );
}
lResult = (LONG) dResult;
hb_retnl( lResult );

}


Заодно вопрос. Какой тэг использовать для кода, чтобы форум его не форматировал ?

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


Пост N: 728
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 12.08.09 16:58. Заголовок: Тип Cardinal в Pasca..


Тип Cardinal в Pascal - это unsigned int или unsigned long в C или DWORD в терминологии Microsoft.
Для того чтобы вернуть unsigned long необходимо использовать Harbour API функцию hb_retnint без всякого приведения и боязни получить неправильный результат.

Pasha пишет:

 цитата:
Заодно вопрос. Какой тэг использовать для кода, чтобы форум его не форматировал ?


Я использую моношириннный шрифт + цитата

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


Пост N: 260
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 12.08.09 18:42. Заголовок: Петр пишет: Для тог..


Петр пишет:

 цитата:
Для того чтобы вернуть unsigned long необходимо использовать Harbour API функцию hb_retnint без всякого приведения



Ну, если можно вернуть ulong, то, конечно, его и надо возвращать

Хотя, взглянув на объявление hb_retnint догадаться об этом трудно (возможно у меня старенькая версия харбура, и тем более я не С-шник). Например в hbapi.h:

 
extern HB_EXPORT void hb_retnl( long lNumber );/* returns a long number */
extern HB_EXPORT void hb_retnint( HB_LONG lNumber );/* returns a long number */


Как видим даже комменты одинаковые, а в определении HB_LONG:

   typedef LONG                  HB_LONG;


?





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




Пост N: 1201
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.08.09 19:24. Заголовок: В харборе тип данных..


В харборе тип данных NUMERIC - только знаковый. Неважно, как описана переменная в С-коде, на уровне prg она будет всегда signed. Внутренний фомат при этом может быть разным: 16/32/64-битовое целое, или double

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


Пост N: 729
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 12.08.09 22:19. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Как видим даже комменты одинаковые, а в определении HB_LONG:

typedef LONG HB_LONG;


О комментариях - без комментариев
HB_LONG в зависимости от условий принимает значение
#if defined( HB_CLIPPER_INT_ITEMS ) 
..
typedef LONG HB_LONG;
typedef ULONG HB_ULONG;
..
#elif !defined( HB_LONG_LONG_OFF ) && ULONG_MAX == UINT_MAX
..
typedef LONGLONG HB_LONG;
typedef ULONGLONG HB_ULONG;
#else
..
typedef LONG HB_LONG;
typedef ULONG HB_ULONG;
..
#endif

При сборке Harbour по умолчанию HB_LONG_LONG_OFF не используется (как и HB_CLIPPER_INT_ITEMS).
Для С компиляторов под Win ULONG_MAX == UINT_MAX. К примеру, можно посмотреть для bcc (_lim.h)
#define UINT_MAX ULONG_MAX /* maximum unsigned int value */
Т.е. HB_LONG - это не long или LONG, а LONGLONG.
LONGLONG в зависимости от компилятора и платформы это signed long long или __int64 и может принимать значение от
–9,223,372,036,854,775,808 до 9,223,372,036,854,775,807.
Поэтому этот тип данных можно спокойно использовать для возврата данных из диапазона 0L - (ULONG) ~0L


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


Пост N: 261
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 13.08.09 13:35. Заголовок: Петр пишет: HB_LONG..


Петр пишет:

 цитата:
HB_LONG в зависимости от условий принимает значение....



Ok Чтож, будем знать теперь, что int в названии функции не просто int, а целый Int64, да и HB_LONG не просто long, а по-long-ее будет

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




Пост N: 2800
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.03.13 15:34. Заголовок: Pasha пишет: HB_FUN..


Pasha пишет:

 цитата:
HB_FUNC( EXECANDWAIT )


что то не компилится по Harbour
hbmk2: Compiling...
obj\pew.c:
Warning W8075 pew.prg 224: Suspicious pointer conversion in function HB_FUN_EXECANDWAIT
Error E2206 pew.prg 226: Illegal character 'х' (0xe5) in function HB_FUN_EXECANDWAIT
Error E2141 pew.prg 226: Declaration syntax error in function HB_FUN_EXECANDWAIT
Error E2206 pew.prg 244: Illegal character 'х' (0xe5) in function HB_FUN_EXECANDWAIT
Error E2379 pew.prg 244: Statement missing ; in function HB_FUN_EXECANDWAIT

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




Пост N: 2801
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.03.13 15:42. Заголовок: ага , понял. в 0хFFF..


ага , понял. в 0хFFFFFFFF буковка х русская в исходнике

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

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