PMW (Process Manager for Windows):Must have tool for Windows

Submit portable freeware that you find here. It helps if you include information like description, extraction instruction, Unicode support, whether it writes to the registry, and so on.

Should we ban arifali_007, because he writes too long ;)

Yes; No doubt about it , immediataly
1
17%
May be, we should give him more chance to improve
5
83%
 
Total votes: 6

Message
Author
User avatar
arifali_007
Posts: 15
Joined: Fri Jan 16, 2009 12:41 pm
Location: India
Contact:

#16 Post by arifali_007 » Sat Jan 17, 2009 12:42 am

m^(2) wrote:
justsky wrote:Not to belabor the subject but I want to learn. His readme called for a download from microsoft and installation in the OS. I don't ever remember having to do that so is the runtime usually part of the program download. If it is not included with the program how can that program be called portable?
It's a very slight problem. Download them and put int the apps folder. It will work. Actually you need only MSVCRT80.dll and MSVCP80.dll. I guess that such information should be included in the readme.
Hi there,
you know before releasing i have tried what you mentioned, packaging and shipping MSVCRT80.dll and MSVCP80.dll , but when i went to a cyber cafe in a small village during Christmas vacation, where they had pretty old machine, i just tried it there, and it dint work. It said
"Application failed to start blaw blaw because the side by side configuration is incorrect" , i checked with dependency walker, all required files were present but that also gave the same error than I downloaded VC++ 2005 runtime and installed and it still din't work, and then I downloaded and installed VC++ 2005 SP1 runtime and it worked, then i recalled yeah i developed this app using VS2005 SP1 so it does need that runtime. and i had exactly one user so far who had complained me for my previous version v1.0.112 that it doesn't work in his machine, he was from Florida, i emailed him and asked him to try VS 2005 SP1 runtime and it made PMW 1.1.12 work on his machine too .....
Queue wrote:Because you may not need (because you already have) that particular C++ runtime. He's listing it in the readme just in case you don't.
As rightly pointed out by queue most people don't need it. as they already have it. this is for just in case if you don't have

User avatar
m^(2)
Posts: 890
Joined: Sat Mar 31, 2007 2:38 am
Location: Kce,PL
Contact:

#17 Post by m^(2) » Sat Jan 17, 2009 12:55 am

arifali_007 wrote:
m^(2) wrote:
justsky wrote:Not to belabor the subject but I want to learn. His readme called for a download from microsoft and installation in the OS. I don't ever remember having to do that so is the runtime usually part of the program download. If it is not included with the program how can that program be called portable?
It's a very slight problem. Download them and put int the apps folder. It will work. Actually you need only MSVCRT80.dll and MSVCP80.dll. I guess that such information should be included in the readme.
Hi there,
you know before releasing i have tried what you mentioned, packaging and shipping MSVCRT80.dll and MSVCP80.dll , but when i went to a cyber cafe in a small village during Christmas vacation, where they had pretty old machine, i just tried it there, and it dint work. It said
"Application failed to start blaw blaw because the side by side configuration is incorrect" , i checked with dependency walker, all required files were present but that also gave the same error than I downloaded VC++ 2005 runtime and installed and it still din't work, and then I downloaded and installed VC++ 2005 SP1 runtime and it worked, then i recalled yeah i developed this app using VS2005 SP1 so it does need that runtime. and i had exactly one user so far who had complained me for my previous version v1.0.112 that it doesn't work in his machine, he was from Florida, i emailed him and asked him to try VS 2005 SP1 runtime and it made PMW 1.1.12 work on his machine too .....
Queue wrote:Because you may not need (because you already have) that particular C++ runtime. He's listing it in the readme just in case you don't.
As rightly pointed out by queue most people don't need it. as they already have it. this is for just in case if you don't have
Did you package a correct runtime version?
Your app needs 8.0.50727.762.

User avatar
arifali_007
Posts: 15
Joined: Fri Jan 16, 2009 12:41 pm
Location: India
Contact:

#18 Post by arifali_007 » Sat Jan 17, 2009 1:08 am

justsky wrote: It is clear that he does not quite get "portable" yet.


That not completely wrong, I agree to that, but now I am getting it ( i guess so) , it wold be great if you could tell me about some apps, which have installer( non portable) and also portable. I will understand more from there.

What I have understood is poratable mean just have one folder which contain everything executable,required Dlls, and even settings.
and setting is what was missing in my app
Queue wrote: Another option for implementing portability (instead of checking for registry entries) is to check if there is a settings INI file in the same folder as the EXE and run portably if there is. You can then just include an empty INI file in the ZIP download. It also lets a portable version run properly on a system that has it already installed.
That's a cool Idea, you mean just have a empty ini file which is not used for writing anything to it, it's just to check it's it's portable version or not,
if this file present in the same folder as EXE, save the setting file (ProcessManager1.6.conf) and log file, in the same directory as EXE.

Hope I got your point right
Queue wrote: Make sure you have proper error handling in case the user can't write to the INI file (like if running off a CD, or if the suer wants to set the INI file read-only). Some of the best portable programs choke (and crash, or won't close) if they can't write to the configuration file.
Hmmm that's right , i ma glad that i came to this forum here, ppl over here so deeply knowledgeable and detail oriented, and gives ideas to make app better. this point will taken care. in fact i always write a code which handles file read write error, so to handle write code is kinda already there, it will run with without crashing with default settings.

m^(2) wrote: Additional .ini entry is more extendable option, i.e. at one point you can add registry entries pointing to the file (and i.e. make all users have the same config) and store just binary flags in .ini like:
1 - don't default to appdata, but to app dir.
2 - ignore registry entries
3 - default to app dir and ignore registry

Slightly more complicated, but gives some more room for future upgrades. :)
But obviously just searching for the ini in own directory is a perfectly viable option too.
yeah that was complicated ;)
i will just search for ini file in own directory....


Initially I had though about saving the settings file to EXE folder itself,
than I realized that Vista has too many limitations for developer because of it's too much security concerns..... and i thought may Vista won't allow my app to write anything in Program files...( I was developing it on XP)


and it's the Vista's 'Extra' security becaue of which i had to ditch
"Hide me", "Hide Others" and "Hide PMW tray icon" features on Vista, because just before releasing I tried them on Vista and they dont work and i figured out the reason is , These features require Inter process communication between two applications ( I am using PostMessage, mentioning as most of u are developer here :) and Vista by default do not allow that. I guess if you are running it as Administrator it does allow that correct me if i am wrong.

User avatar
arifali_007
Posts: 15
Joined: Fri Jan 16, 2009 12:41 pm
Location: India
Contact:

#19 Post by arifali_007 » Sat Jan 17, 2009 1:13 am

m^(2) wrote:
arifali_007 wrote:
m^(2) wrote: It's a very slight problem. Download them and put int the apps folder. It will work. Actually you need only MSVCRT80.dll and MSVCP80.dll. I guess that such information should be included in the readme.
Hi there,
you know before releasing i have tried what you mentioned, packaging and shipping MSVCRT80.dll and MSVCP80.dll , but when i went to a cyber cafe in a small village during Christmas vacation, where they had pretty old machine, i just tried it there, and it dint work. It said
"Application failed to start blaw blaw because the side by side configuration is incorrect" , i checked with dependency walker, all required files were present but that also gave the same error than I downloaded VC++ 2005 runtime and installed and it still din't work, and then I downloaded and installed VC++ 2005 SP1 runtime and it worked, then i recalled yeah i developed this app using VS2005 SP1 so it does need that runtime. and i had exactly one user so far who had complained me for my previous version v1.0.112 that it doesn't work in his machine, he was from Florida, i emailed him and asked him to try VS 2005 SP1 runtime and it made PMW 1.1.12 work on his machine too .....
Queue wrote:Because you may not need (because you already have) that particular C++ runtime. He's listing it in the readme just in case you don't.
As rightly pointed out by queue most people don't need it. as they already have it. this is for just in case if you don't have
Did you package a correct runtime version?
Your app needs 8.0.50727.762.
I just ran Dependency walker, saw the dependency on
c:\windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.3053_x-ww_b80fa8ca\MSVCR80.DLL

bundled it with my app.

User avatar
m^(2)
Posts: 890
Joined: Sat Mar 31, 2007 2:38 am
Location: Kce,PL
Contact:

#20 Post by m^(2) » Sat Jan 17, 2009 1:19 am

arifali_007 wrote:Initially I had though about saving the settings file to EXE folder itself,
than I realized that Vista has too many limitations for developer because of it's too much security concerns..... and i thought may Vista won't allow my app to write anything in Program files...( I was developing it on XP)
XP doesn't allow it either unless you're admin. :P
arifali_007 wrote:I just ran Dependency walker, saw the dependency on
c:\windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.3053_x-ww_b80fa8ca\MSVCR80.DLL

bundled it with my app.
This is a cool feature of SxS, though your app requests 8.0.50727.762, Windows can ignore this and use a later one in case of security issues found in the requested one. I guess that's why you use 8.0.50727.3053.


I was wrong, dlls are not enough.
http://msdn.microsoft.com/en-us/library/aa374224.aspx

You also need to add a Microsoft.VC80.CRT.manifest, the one below *should* be OK:

Code: Select all

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (c) Microsoft Corporation.  All rights reserved. -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <noInheritable/>
    <assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.762" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    <file name="msvcr80.dll" /> <file name="msvcp80.dll" />
</assembly>

User avatar
arifali_007
Posts: 15
Joined: Fri Jan 16, 2009 12:41 pm
Location: India
Contact:

#21 Post by arifali_007 » Sat Jan 17, 2009 2:23 am

m^(2) wrote:
arifali_007 wrote:Initially I had though about saving the settings file to EXE folder itself,
than I realized that Vista has too many limitations for developer because of it's too much security concerns..... and i thought may Vista won't allow my app to write anything in Program files...( I was developing it on XP)
XP doesn't allow it either unless you're admin. :P
Okie , I dint notice that because I was in admin mode :)
m^(2) wrote:
arifali_007 wrote:I just ran Dependency walker, saw the dependency on c:\windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.3053_x-ww_b80fa8ca\MSVCR80.DLL

bundled it with my app.
This is a cool feature of SxS, though your app requests 8.0.50727.762, Windows can ignore this and use a later one in case of security issues found in the requested one. I guess that's why you use 8.0.50727.3053.
Hey how did you figure out, which version exactly my app need, I
wanna learn that.
m^(2) wrote: I was wrong, dlls are not enough.
http://msdn.microsoft.com/en-us/library/aa374224.aspx

You also need to add a Microsoft.VC80.CRT.manifest, the one below *should* be OK:

Code: Select all

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (c) Microsoft Corporation.  All rights reserved. -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <noInheritable/>
    <assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.762" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    <file name="msvcr80.dll" /> <file name="msvcp80.dll" />
</assembly>
VS2005 onwards if your project settings are default it embeds the manifest into exe itself. so there is no need to have an additional manifest file in the EXE directory.

but I guess still we would need to have the corresponding manifest in WinSxS folder as well, that is why i recommended to have VC++ 2005 SP1 run time it be installed, because that would corresponding manifest files also in WinSxS

User avatar
arifali_007
Posts: 15
Joined: Fri Jan 16, 2009 12:41 pm
Location: India
Contact:

#22 Post by arifali_007 » Sat Jan 17, 2009 2:38 am

I am planning another release some where in April-May 2009.
My top priority would be

1. Translation to all languages ( configurable translation user can change the strings, How i have to implement that still I have to figure out but i know many application do that so It should be possible.)

2. Getting All feature work on All version of OS, currently on Vista Hide features doesn't work.
Do you guys think that it would be a good idea to ask user to run app in Admin mode and in case if he doesn't , feature feature will be disabled like hide features.

3 Make it portable :) and getting it listed on this site in portable collection

You can check the list of upcoming feature here
If you have any feature request you can log it here on sourceforge( no login required) or can post a comment here on my blog.

User avatar
m^(2)
Posts: 890
Joined: Sat Mar 31, 2007 2:38 am
Location: Kce,PL
Contact:

#23 Post by m^(2) » Sat Jan 17, 2009 2:41 am

arifali_007 wrote:
m^(2) wrote:This is a cool feature of SxS, though your app requests 8.0.50727.762, Windows can ignore this and use a later one in case of security issues found in the requested one. I guess that's why you use 8.0.50727.3053.
Hey how did you figure out, which version exactly my app need, I
wanna learn that.
I simply used a PE resource viewer (Total Commander's plugin) to read your manifest.

Code: Select all

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.762" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
</assembly>
arifali_007 wrote:
m^(2) wrote: I was wrong, dlls are not enough.
http://msdn.microsoft.com/en-us/library/aa374224.aspx

You also need to add a Microsoft.VC80.CRT.manifest, the one below *should* be OK:

Code: Select all

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (c) Microsoft Corporation.  All rights reserved. -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <noInheritable/>
    <assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.762" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    <file name="msvcr80.dll" /> <file name="msvcp80.dll" />
</assembly>
VS2005 onwards if your project settings are default it embeds the manifest into exe itself. so there is no need to have an additional manifest file in the EXE directory.

but I guess still we would need to have the corresponding manifest in WinSxS folder as well, that is why i recommended to have VC++ 2005 SP1 run time it be installed, because that would corresponding manifest files also in WinSxS
Read the msdn link. :P
Your exe manifest mentions that it depends on "Microsoft.VC80.CRT".
Therefore Windows searches for a manifest with this name (actually assemblyIdentity name) in several places.
"AppDir\Microsoft.VC80.CRT.manifest" is one of them and "AppDir\MSVCP80.dll" is not.

User avatar
Queue
Posts: 197
Joined: Mon Oct 08, 2007 2:41 am
Contact:

#24 Post by Queue » Sat Jan 17, 2009 5:03 am

arifali_007 wrote:
Queue wrote: Another option for implementing portability (instead of checking for registry entries) is to check if there is a settings INI file in the same folder as the EXE and run portably if there is. You can then just include an empty INI file in the ZIP download. It also lets a portable version run properly on a system that has it already installed.
That's a cool Idea, you mean just have a empty ini file which is not used for writing anything to it, it's just to check it's it's portable version or not,
if this file present in the same folder as EXE, save the setting file (ProcessManager1.6.conf) and log file, in the same directory as EXE.

Hope I got your point right
That's one option; for example CCleaner and Recuva search for portable.dat in the application folder, and if found, automatically save settings in the application folder.

If ProcessManager1.6.conf is your settings file, you could also include an empty version of that in your ''portable'' download, and when the program starts, check the application data folder for ProcessManager1.6.conf first, and if found, use it for settings. If it's not found, assume a non-portable install. This way there wouldn't be an extra (empty) file, and it would work basically the same way.

---

As for functionality that requires admin rights, check if you have admin rights when it starts and adjust functionality accordingly. This way a user could choose to run with or without admin rights (just with limited functionality).

Queue

User avatar
arifali_007
Posts: 15
Joined: Fri Jan 16, 2009 12:41 pm
Location: India
Contact:

#25 Post by arifali_007 » Sat Jan 17, 2009 6:07 am

Queue wrote:
arifali_007 wrote:
Queue wrote: Another option for implementing portability (instead of checking for registry entries) is to check if there is a settings INI file in the same folder as the EXE and run portably if there is. You can then just include an empty INI file in the ZIP download. It also lets a portable version run properly on a system that has it already installed.
That's a cool Idea, you mean just have a empty ini file which is not used for writing anything to it, it's just to check it's it's portable version or not,
if this file present in the same folder as EXE, save the setting file (ProcessManager1.6.conf) and log file, in the same directory as EXE.

Hope I got your point right
That's one option; for example CCleaner and Recuva search for portable.dat in the application folder, and if found, automatically save settings in the application folder.

If ProcessManager1.6.conf is your settings file, you could also include an empty version of that in your ''portable'' download, and when the program starts, check the application data folder for ProcessManager1.6.conf first, and if found, use it for settings. If it's not found, assume a non-portable install. This way there wouldn't be an extra (empty) file, and it would work basically the same way.

---

As for functionality that requires admin rights, check if you have admin rights when it starts and adjust functionality accordingly. This way a user could choose to run with or without admin rights (just with limited functionality).

Queue
Thanks Queue for all the suggestion and guidance.
I will do it in my next release. which is expected in April-May 2009
-Arif

User avatar
arifali_007
Posts: 15
Joined: Fri Jan 16, 2009 12:41 pm
Location: India
Contact:

Re: PMW (Process Manager for Windows):Must have tool for Windows

#26 Post by arifali_007 » Fri Apr 09, 2010 11:42 am

Hi All,
Not sure how many of you remember me, I am here to thanks you all for your suggestion and constructive criticism.
after input from you all I have made PMW fully portable

for more info please check out the following page

http://processmanagerforwindows.blogspot.com/

User avatar
I am Baas
Posts: 4148
Joined: Thu Aug 07, 2008 4:51 am

Re: PMW (Process Manager for Windows):Must have tool for Windows

#27 Post by I am Baas » Fri Apr 09, 2010 8:49 pm

Requirements:
1- Visual C++ Runtime 2008 SP1
2- .net v2.0

User avatar
arifali_007
Posts: 15
Joined: Fri Jan 16, 2009 12:41 pm
Location: India
Contact:

Re: PMW (Process Manager for Windows):Must have tool for Windows

#28 Post by arifali_007 » Sat Apr 10, 2010 3:20 am

Yeah wanted to move on from handling of dialog the Win32 way..it was painful.
Some users also asked for a better UI, so i though of moving to .NET for creating UI.

I Intentionally used .NetFramework 2.0 instead of 3.5.
cause most users will by default have 2.0 installed on their machine.

and about VC++ 2008 SP1 redistributable, it's already discussed in this thread :).
if we develop app in VC++ , end user need to have the redistributable.
In most cases it will be there, becuase some of microsft application themself carry it with them
(like IE) or user might have installed some other app which might have bring this.

In Win 7 it comes with OS, ( not sure but i think in Vista too )

I think both the requirements are not deal broker for being portable :)
if you are trying PMW Just try the shortcuts. ( Win + Left arrow , Win + Right Arrow )
they are fun ;)

Post Reply