Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Equivalent of SYS(16)
Message
General information
Forum:
Visual FoxPro
Category:
Windows API functions
Miscellaneous
Thread ID:
00090128
Message ID:
00090416
Views:
23
>>>Hi,
>>>
>>>I'm writing a small "splash screen" app using Borland C++ Builder.
>>>
>>>It works quite well, but I'd like to defend the exe against a user installing my exe in another directory and trying to run it.
>>>
>>>What I'd like a a procedure in C++ or the Windows API which returns the same information which I get with SYS(16) in Visual FoxPro, so that I can ascertain the location of the exe which is running (the splash screen) and thus find the location of my Visual FoxPro exe (which will be in the same directory).
>>>
>>>Using the current directory won't necessarily work, as the user could run my exe from a Windows NT command prompt
>>>
>>>i.e. C:\myappdir\myapp.exe.
>>>
>>>Best
>>>
>>>Matt.
>>
>>Hi Matt:
>>
>> GetModuleFileName will give you the exact path of exe.
>>
>> DWORD GetModuleFileName(
>> HMODULE hModule, // handle to module to find filename for
>> LPTSTR lpFilename, // pointer to buffer for module path
>> DWORD nSize // size of buffer, in characters
>> );
>>
>> You can use it in the splash screen exe and look for the VFP app in tha directory.
>>
>>HTH
>
>Raul,
>
>I overlooked this one. Here's how to get the module and the filename:
>
>DECLARE INTEGER GetModuleFileName IN Win32API;
>  INTEGER hModule, STRING @lpFilename, INTEGER nSize
>DECLARE INTEGER GetClassLong IN Win32API;
>  INTEGER hWnd, INTEGER nIndex
>* Get the main window handle from FOXTOOLS
>lnhWnd = MainhWnd()
>* Get the module handle
>lnmodule = GetClassLong(lnhWnd, -16)
>* Initialize the parameters
>lcfilename = SPACE(265)
>lnsize = LEN(lcfilename)
>* Get the filename
>lnsize = GetModuleFileName(lnmodule, @lcfilename, lnsize)
>If lnsize is less than or equal to 1, the function failed. Otherwise, it represents the number of characters in the buffer.
>

>hth,

George,
FoxTools not available in Borland C++ - I just tried it and mainhwnd() is nowhere to be found. Although your solution is correct, this thread should be in Visual Studio (C++) forum. I have exactly the same problem as Matt here so I am following the thread with great interest. Sorry Bill old pal, but Borland also seem to have a good C++ package!
Nigel B Coates
NBC Software Services
Dublin, Ireland.
eMail: Nigel.Coates@NBCSoftware.com
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform