How many time my application is run in memory (SOLVED)
How many time my application is run in memory (SOLVED)
Hi,
I want to find out How many time my application is run in memory.
Can anyone help me where to start?
Thanks.
I want to find out How many time my application is run in memory.
Can anyone help me where to start?
Thanks.
Last edited by Horizon on Sun May 15, 2022 10:06 am, edited 1 time in total.
Regards,
Hakan ONEMLI
Harbour & MSVC 2022 & FWH 23.04
Hakan ONEMLI
Harbour & MSVC 2022 & FWH 23.04
Re: How many time my application is run in memory
Do you mean how long one of your programs has been running?
From powershell:
New-TimeSpan -Start (get-process <yourapplication>).StartTime
Internal to the program? I would just set a variable with DateTime() on entry, then diff that with current DateTime() to get total runtime of the app.
From powershell:
New-TimeSpan -Start (get-process <yourapplication>).StartTime
Internal to the program? I would just set a variable with DateTime() on entry, then diff that with current DateTime() to get total runtime of the app.
Re: How many time my application is run in memory
And I just realized I may have misinterpreted the question. Are you asking how many instances of your application are in memory? (and not how long it's been running as I commented about.)
This can also still be done easily with powershell, though I'd need to look that up.
This can also still be done easily with powershell, though I'd need to look that up.
Re: How many time my application is run in memory
(Get-Process | Where-Object {$_.Name -eq 'YourApp'}).count
Re: How many time my application is run in memory
rhlawek wrote:And I just realized I may have misinterpreted the question. Are you asking how many instances of your application are in memory? (and not how long it's been running as I commented about.)
This can also still be done easily with powershell, though I'd need to look that up.
Yes this is.
Regards,
Hakan ONEMLI
Harbour & MSVC 2022 & FWH 23.04
Hakan ONEMLI
Harbour & MSVC 2022 & FWH 23.04
Re: How many time my application is run in memory
rhlawek wrote:(Get-Process | Where-Object {$_.Name -eq 'YourApp'}).count
As far as I know, in order to run powershell, firstly, we should install it. I could not install it to customer computer. I need something different.
Thank you.
Regards,
Hakan ONEMLI
Harbour & MSVC 2022 & FWH 23.04
Hakan ONEMLI
Harbour & MSVC 2022 & FWH 23.04
- Antonio Linares
- Site Admin
- Posts: 42508
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 30 times
- Been thanked: 73 times
- Contact:
Re: How many time my application is run in memory
Dear Hakan,
Do you mean that you want to allow just one single execution of your app ?
Do you mean that you want to allow just one single execution of your app ?
Re: How many time my application is run in memory
Antonio Linares wrote:Dear Hakan,
Do you mean that you want to allow just one single execution of your app ?
Hi Antonio,
This is not my purpose. My application can run more than once instances.
I want to copy my app exe from server by using batch file at ConvertW32.exe.
Code: Select all | Expand
cRelauFle := cFilePath(GetModuleFileName( GetInstance() ))+'\Relaunch.Bat'
hFile := FCreate( cRelauFle, 0 ) // 0 Normal/Default,Read/Write
if hFile >= 0
FWrite( hFile, "COPY "+::cRoot+"Convert32.exe "+cFilePath(GetModuleFileName( GetInstance() ))+"\Convert32.exe /Y" +CRLF )
FWrite( hFile, GetModuleFileName( GetInstance() ) +CRLF )
FWrite( hFile, "exit" +CRLF )
FClose( hFile )
SysRefresh()
*--
WinExec( cRelauFle, 0 ) // 0 not show Cmd.exe Window, 1 yes
ENDIF
QUIT
for example, my customer runs two instance of my application. in this situation, I release a new version on server. My customer exit one program and run my application again (or run a new instance of my app), the new version found message comes. I want to find out how many instance of my app. run in memory at this computer. if more than one, I will warn my customer to exit other instances or I will force to close other instances.
Thats my purpose.
Using FindWindow() function find the first instance hWnd.
Regards,
Hakan ONEMLI
Harbour & MSVC 2022 & FWH 23.04
Hakan ONEMLI
Harbour & MSVC 2022 & FWH 23.04
- Antonio Linares
- Site Admin
- Posts: 42508
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 30 times
- Been thanked: 73 times
- Contact:
Re: How many time my application is run in memory
This code seems to be what you need:
https://stackoverflow.com/questions/865152/how-can-i-get-a-process-handle-by-its-name-in-c
https://stackoverflow.com/questions/865152/how-can-i-get-a-process-handle-by-its-name-in-c
Re: How many time my application is run in memory
As a rule, the class name of the main window is TWindow (you can make a unique name) And using Enum() to determine the number of running instances of the task
Re: How many time my application is run in memory
hi,
when run same App "more" than once it will use same "Name" in each Instance
when run same App "more" than once it will use same "Name" in each Instance
Code: Select all | Expand
IF HowManyApp("Notepad.exe") > 1
MsgInfo("more that 1 Instance running ! ")
Code: Select all | Expand
FUNCTION HowManyApp(cApp)
LOCAL oProcesses, oProcess, oWMI, oLocator
LOCAL nRet := 0
oLocator := CreateObject( "wbemScripting.SwbemLocator" )
IF EMPTY( oLocator )
msginfo( "can not create wbemScripting.SwbemLocator" )
RETURN 0
ELSE
oWMI := oLocator:ConnectServer()
ENDIF
IF EMPTY( oWMI )
msginfo( "can not connect oLocator:ConnectServer()" )
RETURN 0
ELSE
oProcesses = oWMI:ExecQuery( "SELECT * FROM Win32_Process" )
IF oProcesses:Count > 0
FOR EACH oProcess in oProcesses
IF UPPER( TRIM( oProcess:Name ) ) = UPPER( TRIM( cApp ) )
nRet += 1
ENDIF
NEXT
ENDIF
ENDIF
oProcesses := NIL
oWMI := NIL
oLocator := NIL
RETURN nRet
greeting,
Jimmy
Jimmy
- Antonio Linares
- Site Admin
- Posts: 42508
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 30 times
- Been thanked: 73 times
- Contact:
Re: How many time my application is run in memory (SOLVED)
Jimmy wrote:hi,
when run same App "more" than once it will use same "Name" in each InstanceCode: Select all | Expand
IF HowManyApp("Notepad.exe") > 1
MsgInfo("more that 1 Instance running ! ")Code: Select all | Expand
FUNCTION HowManyApp(cApp)
LOCAL oProcesses, oProcess, oWMI, oLocator
LOCAL nRet := 0
oLocator := CreateObject( "wbemScripting.SwbemLocator" )
IF EMPTY( oLocator )
msginfo( "can not create wbemScripting.SwbemLocator" )
RETURN 0
ELSE
oWMI := oLocator:ConnectServer()
ENDIF
IF EMPTY( oWMI )
msginfo( "can not connect oLocator:ConnectServer()" )
RETURN 0
ELSE
oProcesses = oWMI:ExecQuery( "SELECT * FROM Win32_Process" )
IF oProcesses:Count > 0
FOR EACH oProcess in oProcesses
IF UPPER( TRIM( oProcess:Name ) ) = UPPER( TRIM( cApp ) )
nRet += 1
ENDIF
NEXT
ENDIF
ENDIF
oProcesses := NIL
oWMI := NIL
oLocator := NIL
RETURN nRet
Thank you very much Jimmy. It works very well.
Regards,
Hakan ONEMLI
Harbour & MSVC 2022 & FWH 23.04
Hakan ONEMLI
Harbour & MSVC 2022 & FWH 23.04
Re: How many time my application is run in memory
Jimmy wrote:hi,
when run same App "more" than once it will use same "Name" in each InstanceCode: Select all | Expand
IF HowManyApp("Notepad.exe") > 1
MsgInfo("more that 1 Instance running ! ")Code: Select all | Expand
FUNCTION HowManyApp(cApp)
LOCAL oProcesses, oProcess, oWMI, oLocator
LOCAL nRet := 0
oLocator := CreateObject( "wbemScripting.SwbemLocator" )
IF EMPTY( oLocator )
msginfo( "can not create wbemScripting.SwbemLocator" )
RETURN 0
ELSE
oWMI := oLocator:ConnectServer()
ENDIF
IF EMPTY( oWMI )
msginfo( "can not connect oLocator:ConnectServer()" )
RETURN 0
ELSE
oProcesses = oWMI:ExecQuery( "SELECT * FROM Win32_Process" )
IF oProcesses:Count > 0
FOR EACH oProcess in oProcesses
IF UPPER( TRIM( oProcess:Name ) ) = UPPER( TRIM( cApp ) )
nRet += 1
ENDIF
NEXT
ENDIF
ENDIF
oProcesses := NIL
oWMI := NIL
oLocator := NIL
RETURN nRet
Hi Jimmy,
Is it possible to read Open Files in Shared folders via WMI?. (My Computer, Manage, System Tools, Shared folder, Open Files)
Thanks in advance.
Regards,
Hakan ONEMLI
Harbour & MSVC 2022 & FWH 23.04
Hakan ONEMLI
Harbour & MSVC 2022 & FWH 23.04
- MarcoBoschi
- Posts: 1071
- Joined: Thu Nov 17, 2005 11:08 am
- Location: Padova - Italy
- Contact: