Ĺadny brzuch
Proszę o pomoc w rozwiązaniu ww. problemu. Wiem że w Javie da się to sprawdzić z pomocą Listinera - a niestety nie znam z dobrze Delphi i nie wiem jak sobie z tym poradzić. Może nie chodzi o podsunięci mi gotowego rozwiązania problemu ( ale nie ukrywam że byłbym wdzięczny :P ) , ale przynajmniej wskazanie mi jakiejś drogi ...
Pozdrawiam
chodzi Ci o aplikacje odpalana poprzez srodowisko delphi? czy o aplikacje napisana w delphi ktora odpala inny program?
ps. lista procesow albo po uchywice :>
Wydaje mi się że autorowi tematu chodzi o wywołanie aplikacji, a następnie wykrycia kiedy zostanie ona zamknięta.
http://www.swissdelp...wcode.php?id=93
...
http://www.delphi300...le_2339.asp?SK=
Wydaje mi się że autorowi tematu chodzi o wywołanie aplikacji, a następnie wykrycia kiedy zostanie ona zamknięta.
http://www.swissdelp...wcode.php?id=93
...
http://www.delphi300...le_2339.asp?SK=
Wielkie dzięki za pomoc, właśnie o to mi chodziło :)
Jednak wygenerował mi się kolejny problem : otóż w moim programie który aktualnie pisze, chodzi o to że gdy nie ma określonego pliku *.udl w katalogu aplikacji, tworzonny jest taki plik i ma być uruchomiony w celu poprawnego skonfigurowania połączenia z bazą danych. Wykorzystałem następujący kod:
procedure ShellExecute_AndWait(FileName: string; Params: string); var exInfo: TShellExecuteInfo; Ph: DWORD; begin FillChar(exInfo, SizeOf(exInfo), 0); with exInfo do begin cbSize := SizeOf(exInfo); fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_FLAG_DDEWAIT; Wnd := GetActiveWindow(); ExInfo.lpVerb := 'open'; ExInfo.lpParameters := PChar(Params); lpFile := PChar(FileName); nShow := SW_SHOWNORMAL; end; if ShellExecuteEx(@exInfo) then Ph := exInfo.HProcess else begin ShowMessage(SysErrorMessage(GetLastError)); Exit; end; while WaitForSingleObject(ExInfo.hProcess, 50) <> WAIT_OBJECT_0 do Application.ProcessMessages; CloseHandle(Ph); end;
i największy problem stanowi ustawienie odpowiedniej flagi - gdy jest tak jak teraz. To wskazany plik udl nie uruchamia się tylko aplikacja uruchamia się po 5-7 sekundach. Gdy natomiast zamienię or-a na and-a to uruchamia się tylko DataLink, po skonfigurowaniu połączenia i zamknięciu okna moja aplikacja się zawiesza(97%CPU). Orientuje się może ktoś jak odpowiednio ustawić te flagi ??
Użytkownik Przemko2000 edytował ten post 04 styczeń 2010, 13:59
to co napisałeś prawie nic mi nie mówi. Podaj fragment twojego programu i opisz o co dokładnie Tobie chodzi ;)
Użytkownik Qenix edytował ten post 05 styczeń 2010, 16:27
to co napisałeś prawie nic mi nie mówi. Podaj fragment twojego programu i opisz o co dokładnie Tobie chodzi ;)
OK
w FormCreate, :
if not FileExists(ExtractFilePath(Application.ExeName)+'connect.udl') then begin AssignFile(TF, ExtractFilePath(Application.ExeName)+'connect.udl'); try Rewrite(TF); sciezka:=ExtractFilePath(Application.ExeName)+'connect.udl'; ShellExecute_AndWait(sciezka,''); finally CloseFile(TF); end; end;
tak chodzi tu mniej więcej o to że na początku sprawdzam czy istnieje plik wymagany do połączenia z Postgres-em, jeśli nie to tworze ten plik i próbuje wywołać tą procedurę do blokowania mojej aplikacji .
Z bazą łączę się przez ADO i tak właśnie się waham, czy skorzystać z DataLink( jw.) czy może z ConnectionString i tam po prostu za pomocą pliku ini ustawiać wszystkie wymagane pola( nazwa bazy, host, port etc)
Użytkownik Przemko2000 edytował ten post 07 styczeń 2010, 17:42
dwa razy mi sie post dodał :/
Użytkownik Przemko2000 edytował ten post 07 styczeń 2010, 17:41
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Pozdrawiam
chodzi Ci o aplikacje odpalana poprzez srodowisko delphi? czy o aplikacje napisana w delphi ktora odpala inny program?
ps. lista procesow albo po uchywice :>
Wydaje mi się że autorowi tematu chodzi o wywołanie aplikacji, a następnie wykrycia kiedy zostanie ona zamknięta.
http://www.swissdelp...wcode.php?id=93
...
http://www.delphi300...le_2339.asp?SK=
Wydaje mi się że autorowi tematu chodzi o wywołanie aplikacji, a następnie wykrycia kiedy zostanie ona zamknięta.
http://www.swissdelp...wcode.php?id=93
...
http://www.delphi300...le_2339.asp?SK=
Wielkie dzięki za pomoc, właśnie o to mi chodziło :)
Jednak wygenerował mi się kolejny problem : otóż w moim programie który aktualnie pisze, chodzi o to że gdy nie ma określonego pliku *.udl w katalogu aplikacji, tworzonny jest taki plik i ma być uruchomiony w celu poprawnego skonfigurowania połączenia z bazą danych. Wykorzystałem następujący kod:
procedure ShellExecute_AndWait(FileName: string; Params: string); var exInfo: TShellExecuteInfo; Ph: DWORD; begin FillChar(exInfo, SizeOf(exInfo), 0); with exInfo do begin cbSize := SizeOf(exInfo); fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_FLAG_DDEWAIT; Wnd := GetActiveWindow(); ExInfo.lpVerb := 'open'; ExInfo.lpParameters := PChar(Params); lpFile := PChar(FileName); nShow := SW_SHOWNORMAL; end; if ShellExecuteEx(@exInfo) then Ph := exInfo.HProcess else begin ShowMessage(SysErrorMessage(GetLastError)); Exit; end; while WaitForSingleObject(ExInfo.hProcess, 50) <> WAIT_OBJECT_0 do Application.ProcessMessages; CloseHandle(Ph); end;
i największy problem stanowi ustawienie odpowiedniej flagi - gdy jest tak jak teraz. To wskazany plik udl nie uruchamia się tylko aplikacja uruchamia się po 5-7 sekundach. Gdy natomiast zamienię or-a na and-a to uruchamia się tylko DataLink, po skonfigurowaniu połączenia i zamknięciu okna moja aplikacja się zawiesza(97%CPU). Orientuje się może ktoś jak odpowiednio ustawić te flagi ??
Użytkownik Przemko2000 edytował ten post 04 styczeń 2010, 13:59
to co napisałeś prawie nic mi nie mówi. Podaj fragment twojego programu i opisz o co dokładnie Tobie chodzi ;)
Użytkownik Qenix edytował ten post 05 styczeń 2010, 16:27
to co napisałeś prawie nic mi nie mówi. Podaj fragment twojego programu i opisz o co dokładnie Tobie chodzi ;)
OK
w FormCreate, :
if not FileExists(ExtractFilePath(Application.ExeName)+'connect.udl') then begin AssignFile(TF, ExtractFilePath(Application.ExeName)+'connect.udl'); try Rewrite(TF); sciezka:=ExtractFilePath(Application.ExeName)+'connect.udl'; ShellExecute_AndWait(sciezka,''); finally CloseFile(TF); end; end;
tak chodzi tu mniej więcej o to że na początku sprawdzam czy istnieje plik wymagany do połączenia z Postgres-em, jeśli nie to tworze ten plik i próbuje wywołać tą procedurę do blokowania mojej aplikacji .
Z bazą łączę się przez ADO i tak właśnie się waham, czy skorzystać z DataLink( jw.) czy może z ConnectionString i tam po prostu za pomocą pliku ini ustawiać wszystkie wymagane pola( nazwa bazy, host, port etc)
Użytkownik Przemko2000 edytował ten post 07 styczeń 2010, 17:42
dwa razy mi sie post dodał :/
Użytkownik Przemko2000 edytował ten post 07 styczeń 2010, 17:41