Перейти к содержимому

Фотография

остановить процесс


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 11

#1 Tanya_

Tanya_

    Новый участник

  • Members
  • Pip
  • 49 сообщений
  • ФИО:Tanya

Отправлено 12 мая 2006 - 10:44

доброго времени суток
думаю,что с таким вопросом встречается почти каждый,но на форуме не нашла чёто на тему
вопрос собственно в следующем - как вырубить приложение по окончанию выполнения скрипта? приложение может выдать диалог или ещё что-то перед закрытием, а реагировать на это дело дополнительно не хочется
чем прибить собственно процесс, какие есть команды?
посоветуйте плиз
  • 0

#2 Petr

Petr

    Опытный участник

  • Members
  • PipPipPipPip
  • 317 сообщений
  • ФИО:Можаев Петр
  • Город:Москва

Отправлено 12 мая 2006 - 11:26

чем прибить собственно процесс, какие есть команды?

Ну если Вам прямо таки хочется убить приложение, то можно воспользоваться функцией TerminateProcess из библиотеки Kernel32.dll.
  • 0

#3 Tanya_

Tanya_

    Новый участник

  • Members
  • Pip
  • 49 сообщений
  • ФИО:Tanya

Отправлено 12 мая 2006 - 12:28

ну как бы процесс мне просто нужно остановить,попросту,чтоб приложение закрылось без всяких месах,просто закрылось
а какие-то ф-ции для этого в SQABasic есть?
  • 0

#4 Dmitry_NJ

Dmitry_NJ

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 3 122 сообщений
  • ФИО:Дмитрий Шевченко
  • Город:New Jersey, USA

Отправлено 12 мая 2006 - 22:31

ну как бы процесс мне просто нужно остановить,попросту,чтоб приложение закрылось без всяких месах,просто закрылось
а какие-то ф-ции для этого в SQABasic есть?

SQABasic тут не помощник. Вам Petr уже посоветовал как добиться того, чего вы хотите.
  • 0
Дмитрий Шевченко

HP Software

#5 Tanya_

Tanya_

    Новый участник

  • Members
  • Pip
  • 49 сообщений
  • ФИО:Tanya

Отправлено 15 мая 2006 - 06:56

Ну если Вам прямо таки хочется убить приложение, то можно воспользоваться функцией TerminateProcess из библиотеки Kernel32.dll.

Просмотр сообщения


извините,если вопрос покажется глупым :help: ,я токо начинаю с роботом работать
каким макаром подключить длл в скрипте и спользовать функцию оттуда ? инклудом у меня не сложилось, как правильно подключить и использовать,поделитесь плиз
  • 0

#6 Petr

Petr

    Опытный участник

  • Members
  • PipPipPipPip
  • 317 сообщений
  • ФИО:Можаев Петр
  • Город:Москва

Отправлено 15 мая 2006 - 07:32

См. в хелп раздел "declaring:custom procedures stored in dll files".
  • 0

#7 Tanya_

Tanya_

    Новый участник

  • Members
  • Pip
  • 49 сообщений
  • ФИО:Tanya

Отправлено 15 мая 2006 - 08:10

наверно чёто в этом духе
объявляю ф-цию в своём скрипте
Declare Function TerminateProcess Lib "Kernel32.dll"
токо вот как достать параметры функции в длл :\
  • 0

#8 {Bastion}Bizon

{Bastion}Bizon

    Новый участник

  • Members
  • Pip
  • 40 сообщений
  • ФИО:Гавриков Станислав Влааадимирович

Отправлено 15 мая 2006 - 08:52

Поставь себе хелп от Visual Studio в нём описанны библиотечные функции и их параметры.
  • 0

#9 Tanya_

Tanya_

    Новый участник

  • Members
  • Pip
  • 49 сообщений
  • ФИО:Tanya

Отправлено 15 мая 2006 - 11:05

осталось самое простое :help: - получить handle и exit code процесса
  • 0

#10 Dmitry_NJ

Dmitry_NJ

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 3 122 сообщений
  • ФИО:Дмитрий Шевченко
  • Город:New Jersey, USA

Отправлено 16 мая 2006 - 02:52

Порылся в своих пыльных сундуках и откопал функцию, которую я когда-то написал в те давние времена, когда работал с Robot'ом. Естественно, там много лишнего и специфичного, но идея вам должна стать понятной.
Declare Function GetComputerNameA Lib "kernel32" (ByVal lpBuffer As String, _
                                                        nSize As Long) As Long
Declare Function OpenProcess Lib "kernel32" (ByVal dwAccess As Long, _
                                             ByVal fInherit As Integer, _
                                             ByVal hObject As Long) As Long
Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, _
                                                  ByVal uExitCode As Long ) As Long
Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Sub Unload

    Dim Result, i, j, iPos, Retcode As Integer
    Dim ModulesArray(15), LoadedModules(), LocalHostName  As String
    Dim DestArray(1,1) As Variant
    Dim handle, status, PID As Long
            
    Const PROCESS_TERMINATE = &H1&    
    
    j=0
    
    ModulesArray(1)="customer.exe"
    ModulesArray(2)="billing.exe"
    ModulesArray(3)="cred_man.exe"
    ModulesArray(4)="mass_ops.exe"
    ModulesArray(5)="payment.exe"
    ModulesArray(6)="reports.exe"
    ModulesArray(7)="resource.exe"
    ModulesArray(8)="roamers.exe"
    ModulesArray(9)="sim_man.exe"
    ModulesArray(10)="tariff.exe"
    ModulesArray(11)="wo_man.exe"
    ModulesArray(12)="warehouse.exe"
    ModulesArray(13)="crate_m.exe"
    ModulesArray(14)="blocking.exe"
    ModulesArray(15)="db_cons.exe"    
    
    SQASuspendLogOutput
    For i=1 To 15
        Result = ModuleVP (Exists, "Name="+ModulesArray(i), "VP=Module Existence")
        If Result=1 Then
           j=j+1
           ReDim Preserve LoadedModules(j)
           LoadedModules(j)=ModulesArray(i)
        End If
    Next
    SQAResumeLogOutput
    
    LocalHostName=Space$(255)
    status=GetComputerNameA(LocalHostName,255&)    
    iPos=InStr(LocalHostName,Chr$(0))
    LocalHostName=Left$(localHostName,iPos-1)
      
    If j<>0 Then
       For i=1 To UBound(LoadedModules)        
           Retcode=SQLExecQuery(ACP_Connect, _
              "SELECT SUBSTR(process, 1, INSTR(process,':')-1) FROM sys.v_$session " + _ 
              "WHERE UPPER(program)='"+UCase(ACP_DRIVE)+"\BALLS\EXE\"+UCase(LoadedModules(i)) + _
              "' AND terminal='"+LocalHostName+"'")
           Retcode=SQLRetrieve(ACP_Connect, DestArray)
           PID=Val(DestArray(1,1))
           handle=OpenProcess(PROCESS_TERMINATE, True, PID&)    
           status=TerminateProcess(handle, 0&)
           CloseHandle(handle)                 
       Next
    
    End If
                 
End Sub

  • 0
Дмитрий Шевченко

HP Software

#11 wez

wez

    Новый участник

  • Members
  • Pip
  • 3 сообщений

Отправлено 18 октября 2006 - 15:02

Привет всемогущий ALL!
Поделюсь и я своим способом гасить процесс...
StartApplication "C:\WINDOWS\System32\taskkill.exe /F /IM notepad.exe"
ось XPsp2
  • 0

#12 Clauster

Clauster

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 913 сообщений
  • ФИО:Худобородов Валерий
  • Город:Espoo

Отправлено 18 октября 2006 - 15:53

Рядом народ тоже мучается :ok:
http://forums.softwa...648
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных