-
[inno setup]Check app(*.exe) is running in Code section
Maybe it is helpful for someone.
-
[inno setup]Check app(*.exe) is running in Code section
sorry to head that
-
[inno setup]Check app(*.exe) is running in Code section
hi,too late to replay. hope you finished your problems.:)
-
[inno setup]Check app(*.exe) is running in Code section
thank you. Your problems and solutions are very helpful. When I write the code, I just on Win7_x86 OS.
-
[inno setup] A way to pin a shortcut onto taskbar in code
It is a very good change. Regards... ;-)
-
Help:how to change AD(active directory) user password through LDAP
Like the title says. Had someone done the samething. I need some help. I get a article:http://support.microsoft.com/kb/269190/en-us. but the way fail. I do not know how to usr win32 APIS:ldap_sslinit, and how to conncet to the AD server use SSl. In my place,Google do not work well >_<. so if you have some advices or articles,please tell me. my email: 441926980@qq.com.
-
[inno setup]Check app(*.exe) is running in Code section
It is my pleasure. Any question u can post here and we can work it out.
-
[inno setup]Check app(*.exe) is running in Code section
I had reuploaded the example as download. The script costed me lot of time. And I try many ways. but share with other is happy.
-
[inno setup]Check app(*.exe) is running in Code section
There are some ways to do this. Such as using a external DLL.But I do not like this way. The Inno surport Pascal script. The Pascal script can call standard Win32 API functions inside standard Windows DLLs. So we can check the app is whether running. Here is a part of script in section:; Any question, let me know. ;It work on 32 and 64 modules! [code] type HANDLE = LongInt; HMODULE = HANDLE; pHMODULE = Array[0..255] of HMODULE; LPDWORD = DWORD; PDWORD = Array[0..255] of DWORD; LPTSTR = String; const PROCESS_QUERY_INFORMATION = $400; PROCESS_VM_READ = $10; MAX_LENGTH = 255; function OpenProcess(dwDesiredAccess : DWORD; bInheritHandle : Boolean; dwProcessId : DWORD) : HANDLE; external 'OpenProcess@kernel32.dll stdcall delayload'; function CloseHandle(hObject : HANDLE) : BOOL; external 'CloseHandle@kernel32.dll stdcall delayload'; function EnumProcesses(var pProcessIds : PDWORD; cb : DWORD; var pBytesReturned : DWORD) : BOOL; external 'EnumProcesses@psapi.dll stdcall delayload'; //notice:delayload EnumProcessModules and EnumProcessModulesEx functions //64-bit using EnumProcessModulesEx; 32-bite using EnumProcessModules function EnumProcessModulesEx(hProcess : HANDLE; var lphModule : pHMODULE; cb : DWORD; var lpcbNeeded : LPDWORD; dwFilterFlag : DWORD) : BOOL; external 'EnumProcessModulesEx@psapi.dll stdcall delayload';function EnumProcessModules(hProcess : HANDLE; var lphModule : pHMODULE; cb : DWORD; var lpcbNeeded : LPDWORD) : BOOL; external 'EnumProcessModules@psapi.dll stdcall delayload'; function GetModuleFileNameExW(hProcess : HANDLE; hModule : HMODULE; lpFilename : LPTSTR; nSize : DWORD) : DWORD; external 'GetModuleFileNameExW@psapi.dll stdcall delayload'; //here is the functionfunction zylIsAppRunning(procName : String; fullPath : Boolean) : Boolean; var found : Boolean; filenameEnd : Integer; filename : String; NA : DWORD; entry : DWORD; maxEntries : DWORD; processes : PDWORD; lpFilename : LPTSTR; hProcess : HANDLE; hMod : pHMODULE; isModuleShot: Boolean; begin SetLength(lpFilename, MAX_LENGTH); found := False; if (EnumProcesses(processes, SizeOf(processes), maxEntries)) then begin entry := 0; maxEntries := maxEntries / SizeOf(maxEntries); while ((not found) and (entry < maxEntries)) do begin hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False, processes[entry]); if (hProcess <> 0) then begin isModuleShot := False; if IsWin64 then begin //EnumProcessModulesEx @param $3,surport 32-bit modules and 64-bit modules the sametiem isModuleShot := EnumProcessModulesEx(hProcess, hMod, SizeOf(hMod), NA, $3); end else begin isModuleShot := EnumProcessModules(hProcess, hMod, SizeOf(hMod), NA); end; if (isModuleShot) then if (GetModuleFileNameExW(hProcess, hMod[0], lpFilename, Length(lpFilename)) > 0) then begin filenameEnd := Pos(#0, lpFilename); filename := Copy(Lowercase(lpFilename), 1, filenameEnd - 1); if (not fullpath) then filename := ExtractFileName(filename); if (AnsiLowercase(filename) = AnsiLowercase(procName)) then found := True; end; CloseHandle(hProcess); end; entry := entry + 1; end; end; Result := found; end;//function end How to use: I wish you have installed the Unicode Inno Setup (the 5.5.x version or more).(If not, you can download it from the home page http://www.jrsoftware.org) You can use it where you need just like:zylIsAppRunning('notdpad.exe', false); An example project for Unicode Inno Setup is provided as download. The attachment "CheckAppRunning.zip" is the script. Unzip the file CheckAppRunning.zip, you can get a file named "CheckAppRunning.iss". Please copy the *.iss files to the directory: ./Inno Setup 5/Examples Then build the program and run it. CheckAppRunning.zip
-
[inno setup] A way to pin a shortcut onto taskbar in code
use the function zylPinAppToTaskbar(), you just need two parameter, first, the dirctory of the *.exe; second, the real name of *.exe. maybe you must sure that *.exe is exist. then call the function where you need.
-
[inno setup] A way to pin a shortcut onto taskbar in code
I think your program is repacked by Inno. If you want to automatically pins it onto the taskbar, maybe you just need to modify the function CurPageChanged() , you can remove IsTaskSelected()function,and remove the [task] section. like following: procedure CurPageChanged(CurPageID: Integer); begin //When Finished page is shown, call the function //You can also call is when the "Finish" button clicked. if CurPageID = wpFinished then begin //if IsTaskSelected('pintaskbar') then //if Selected the [task] zylPinAppToTaskbar(ExpandConstant('{app}'), 'MyProg.exe'); end; end; Hope can help you. Regards... ;-)
-
[inno setup] A way to pin a shortcut onto taskbar in code
Yes it's true, shortcut is delete during uninstall... only not delete when use Uninstallable=no in [setup]... Regards... ;-) It is helpful... Regards... ;-)
-
[inno setup] A way to pin a shortcut onto taskbar in code
It is a good news! Regards... ;-)
-
[inno setup] A way to pin a shortcut onto taskbar in code
remove the shortcuts form taskbar, I think it need to delete the shorcuts form the special directory. C:\Users\Current User\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar. (The directory is hide.) Thanks again...!!! Regards... ;-) How you delete shortcut at uninstall...? deleting the link...? Regards... ;-) Maybe U can see the [uninstallDelete] section in InnoSetup documentation. I am trying to find a way in section.but not finished.In theory, pin or unpin is the same way.
-
[inno setup] A way to pin a shortcut onto taskbar in code
remove the shortcuts form taskbar, I think it need to delete the shorcuts form the special directory. C:\Users\Current User\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar. (The directory is hide.)
Yaliang
Members
-
Joined
-
Last visited