こんにちは、大石です。
On Thu, 27 Dec 2001 23:28:09 +0900
Hiroaki Watanabe <d...@asahi-net.or.jp> wrote:
> INIファイルを使えばユーザー権限に関係なく実行できると思いますが?
これ、知りませんでした。
(ERROR_ACCESS_DENIED で弾かれると思ってました)
で、興味があったので、ちょっと試してみたところ、
Windows 2000 Professional において
Administrators なユーザが作った ini file を
Users や Guests なユーザが書き換えられることを確認しました。
# Windows 2000 Server でも同様なのだろうか?
以下、確認に用いたコード。
---
#include <stdio.h>
#include <Windows.h>
main()
{
char szAppName[] = "app";
char szKeyName[] = "key";
char szString[0x100];
char szFileName[_MAX_PATH];
memset(szString, 0, sizeof(szString));
memset(szFileName, 0, sizeof(szFileName));
GetModuleFileName(NULL, szFileName, sizeof(szFileName));
szFileName[strlen(szFileName) - 3] = 'i';
szFileName[strlen(szFileName) - 2] = 'n';
szFileName[strlen(szFileName) - 1] = 'i';
GetPrivateProfileString(szAppName, szKeyName, "0", szString, sizeof(szString), szFileName);
printf("%s\n", szString);
{
int i = atoi(szString);
sprintf(szString, "%d", ++i);
}
if (!WritePrivateProfileString(szAppName, szKeyName, szString, szFileName))
printf("error: %d\n", GetLastError());
return 0;
}
---
Best regards,
- ---
o...@cam.hi-ho.ne.jp
http://www.cam.hi-ho.ne.jp/oishi/
On Thu, 27 Dec 2001 23:28:09 +0900
Hiroaki Watanabe <d...@asahi-net.or.jp> wrote:
> INIファイルを使えばユーザー権限に関係なく実行できると思いますが?
これ、知りませんでした。
(ERROR_ACCESS_DENIED で弾かれると思ってました)
で、興味があったので、ちょっと試してみたところ、
Windows 2000 Professional において
Administrators なユーザが作った ini file を
Users や Guests なユーザが書き換えられることを確認しました。
# Windows 2000 Server でも同様なのだろうか?
以下、確認に用いたコード。
---
#include <stdio.h>
#include <Windows.h>
main()
{
char szAppName[] = "app";
char szKeyName[] = "key";
char szString[0x100];
char szFileName[_MAX_PATH];
memset(szString, 0, sizeof(szString));
memset(szFileName, 0, sizeof(szFileName));
GetModuleFileName(NULL, szFileName, sizeof(szFileName));
szFileName[strlen(szFileName) - 3] = 'i';
szFileName[strlen(szFileName) - 2] = 'n';
szFileName[strlen(szFileName) - 1] = 'i';
GetPrivateProfileString(szAppName, szKeyName, "0", szString, sizeof(szString), szFileName);
printf("%s\n", szString);
{
int i = atoi(szString);
sprintf(szString, "%d", ++i);
}
if (!WritePrivateProfileString(szAppName, szKeyName, szString, szFileName))
printf("error: %d\n", GetLastError());
return 0;
}
---
Best regards,
- ---
o...@cam.hi-ho.ne.jp
http://www.cam.hi-ho.ne.jp/oishi/