どうぞ、よろしくお願いします。

現在スクリーンセーバーを作っているのですが、
XXX.scr と言うようなファイル名にすると
画面のプロパティで XXX という名称になることと
思います。

ところが、Windows2000 自体に付属する OpenGL の
3Dテキストなどの実行ファイル名はsstext3d.scr等と
なっています。どのように実現すれば良いのでしょうか?
# logon.scr が ログオン画面となっているところを見ると
# ファイル名に規則性が有るわけでも無さそうです。

よろしくお願いします

このQ&Aに関連する最新のQ&A

A 回答 (2件)

すいません、Win2000環境かと思ってました。


NT系とWin9x系では若干動きが違いますね。
Win95等ではファイル名がそのままスクリーンセーバー設定の名前に表示されます。
NT系では前に回答した方法で変えられます(補足:IDS_DESCRIPTIOIN=1です)。
他に方法があるのかもしれませんが、MicrosoftもWin9xでわざわざファイル名を
変えてるところを見ると無いのかもしれません(^_^;

Win9x/NTで共通の実行ファイルとしたいのであれば、ファイル名を変えて
IDS_DESCRIPTIOINを追加するしかないようです。
ちなみに、Meは持ってないので確認できませんでした。
    • good
    • 0
この回答へのお礼

再びのご回答有り難うございます。
やはり、Win9xでは無さそうですか^^;

一応、納得しましたので、以上で締め切らせて頂きます。
有り難うございました

お礼日時:2001/07/31 12:33

ストリングテーブルにIDS_DESCRIPTIOINというIDを追加してキャプションに


名称を指定してやればOKです。

この回答への補足

ご回答有り難うございます。

せっかく、お教え頂いた方法なのですが、
Windows95 では利用できないようなのです。
もし、Windows95でも利用できる方法が有れば
非常に助かるのですが^^;

もし、無いと言うので有れば納得いたします。
よろしくお願いします。

補足日時:2001/07/31 03:40
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QC# ファイルサイズの取得(ファイル名ではない)

ファイルサイズ取得で検索するとファイル名のサイズを取得する方法ばかりで実際に存在しているファイルの大きさと合っていないのですが、どのようにコードを書けば良いでしょうか?

Aベストアンサー

C#2010 Expressで以下のようなソースで確認しましたが
//-------------------------------
private void button1_Click(object sender, EventArgs e)
{
string f=textBox6.Text;
System.IO.FileInfo fi = new System.IO.FileInfo(f);
//ファイルのサイズを取得
long filesize = fi.Length;
textBox7.Text=filesize.ToString();
}
//-------------------------------
問題ありませんでした

エクスプローラでファイルのプロパティで見たとき
 18.1 MB (19,067,454 バイト)の19,067,454を返してくれています。

エクスプローラので見たときの
 18.1 MBと19,067,454があっていないと言うならわかります。

エクスプローラで18.1 MBの表示に関しては
 1K=1024バイトとして表示しているはずです、
 1M=1024K=1024*1024バイトとしています


 

C#2010 Expressで以下のようなソースで確認しましたが
//-------------------------------
private void button1_Click(object sender, EventArgs e)
{
string f=textBox6.Text;
System.IO.FileInfo fi = new System.IO.FileInfo(f);
//ファイルのサイズを取得
long filesize = fi.Length;
textBox7.Text=filesize.ToString();
}
//-------------------------------
問題ありませんでした

エクスプローラでファイルのプロ...続きを読む

QVisualStudio C# 2008 で OpenGL の利用に関して

質問事項


1)目的のglut.dll内のglutKeyboardFuncの仕様

   glutKeyboardFunc(void (*func)(unsigned char key, int x, int y))

   質問1)この仕様がC++風に記述されており仮引数仕様を理解できていませんので、解説をお願い致します

2)インポート文

[SuppressUnmanagedCodeSecurity()]
[DllImport("glut.dll", EntryPoint = "glutKeyboardFunc", ExactSpelling = true)]
internal extern static void GlutKeyboardFunc(?????)

質問2:仮引数をどのように記述すべきなのでしょうか? 色々試してみましたが解決できないで い ます

3)メソッド内での GlutKeyboardFunc 呼び出し文

static void myInit(string progname)
{
GlutInitDisplayMode(GLUT_RGBA);
GlutInitWindowSize(500, 400);
GlutInitWindowPosition(0, 0);
GlutCreateWindow(progname);
}

static void myKeyboard(uint key, int x, int y)
{
if (key == 27) { return; }
}

static int Main(string[] args)
{
GlutInit(args.Length, args);
myInit(args[0]);
GlutKeyboardFunc(myKeyboard)

質問3:文法エラーになります。多分2項が解決すればと思いますが、関数名をそのまま記述して構わないのでしょうか
                
//以後省略

}

質問事項


1)目的のglut.dll内のglutKeyboardFuncの仕様

   glutKeyboardFunc(void (*func)(unsigned char key, int x, int y))

   質問1)この仕様がC++風に記述されており仮引数仕様を理解できていませんので、解説をお願い致します

2)インポート文

[SuppressUnmanagedCodeSecurity()]
[DllImport("glut.dll", EntryPoint = "glutKeyboardFunc", ExactSpelling = true)]
internal extern static void GlutKeyboardFunc(?????)

質問2:仮引数をどのように記...続きを読む

Aベストアンサー

> 1)目的のglut.dll内のglutKeyboardFuncの仕様
>   glutKeyboardFunc(void (*func)(unsigned char key, int x, int y))

これはC++ではなくCのやりかたですが、これは関数のポインタをあらわしています。

戻り値の型 (*関数名)(引数リスト)

とかいてやると、このような戻り値と引数リストを持つ関数へのポインタをあらわします

たとえば、

void aaaa(int i)
{
....
}
void (*func)(int i) = aaaa;
func(3);

これを実行すると、aaaa(3)と同じことをやったことになります。

glutKeyboardFuncはこの仕組みを使ってコールバック関数の指定を行います。


> 2)インポート文
> 3)メソッド内での GlutKeyboardFunc 呼び出し文

について、C#からdllを参照する場合、関数ポインタにはデリゲートを指定します。
デリゲートという言葉そのものを知らないのであれば、まずはインターネットで意味と使い方を
調べられたほうが良いと思います。

あまりC#を使わないので間違えているかもしれませんが、この例の場合

delegate void KeyboardCallback(unsigned char key, int x, int y);

[SuppressUnmanagedCodeSecurity()]
[DllImport("glut.dll", EntryPoint = "glutKeyboardFunc", ExactSpelling = true)]
internal extern static void GlutKeyboardFunc(KeyboardCallback f);

GlutKeyboardFunc(new KeyboardCallback(myKeyboard));

大体こんな感じになるかと思います。

> 1)目的のglut.dll内のglutKeyboardFuncの仕様
>   glutKeyboardFunc(void (*func)(unsigned char key, int x, int y))

これはC++ではなくCのやりかたですが、これは関数のポインタをあらわしています。

戻り値の型 (*関数名)(引数リスト)

とかいてやると、このような戻り値と引数リストを持つ関数へのポインタをあらわします

たとえば、

void aaaa(int i)
{
....
}
void (*func)(int i) = aaaa;
func(3);

これを実行すると、aaaa(3)と同じことをやったことになります。

glutKeyb...続きを読む

QC# ファイル名を指定してオープン

StreamWriter swrite = new StreamWriter("C:\\19yamana.csv",false, System.Text.Encoding.GetEncoding("shift-jis"));
のファイル名"C:\\19yamana.csv"の部分を変数にしたいのですがうまく出来ません。

やったこと:
string fileName = "C:\\19yamana.csv";
StreamWriter swrite = new StreamWriter(fileName, false, System.Text.Encoding.GetEncoding("shift-jis"));

Aベストアンサー

こんにちは
>>今回のエラーはメソッドの内側に書くべきコードをメソッドの外側に書いたから。
>うーー。この意味がわからないのです。
わかりにくいですね。具体的には、
今ある
StreamWriter swrite = new StreamWriter(fileName, false, System.Text.Encoding.GetEncoding("shift-jis"));

を、
StreamWriter swrite;
swrite = new StreamWriter(fileName, false, System.Text.Encoding.GetEncoding("shift-jis"));
に分解し、代入文の部分を、public Form1() 内に移動してください。
多分、コンパイルエラーが消えるはずです。
はずしていたらごめんなさい。

Q【C#】テキストボックスに入っているファイル名(文字列)のオープン

【C#】テキストボックスに入っているファイル名(文字列)のオープン

C#初心者です。

C#で、テキストボックスに入力されているファイルをオープンして、一行ずつ読み込みたいのですが、なかなかうまくいきません。

分かる方いらっしゃいましたら教えていただけると幸いです。
宜しくお願いいたします。

Aベストアンサー

>C言語→C#に変換
の返信はないわけ?
お礼もまともにできないのにこの先やっていけるのかと。


面倒なので、

-ainput.txt -bkeyword

という引数から input.txt から keyword を検索するC言語のコード

#include <string.h>
#include <stdio.h>
int main(int argc, char* argv[])
{
FILE* fp;
FILE* fpp;
int i;
char KEYWORD[256];
char buf[256];

//(1)アウトプットファイルのオープン
fpp = fopen("output.txt", "w");
if (fpp == NULL)
{
printf("open error!\n");
return 1;
}
for (i = 1; i < argc; ++i)
{
//(2)入力ファイルのオープン
if (strncmp(argv[i], "-a", 2) == 0)
{
fp = fopen(argv[i] + 2, "r");
if (fp == NULL)
{
printf("open error!\n");
fclose(fpp);
return 1;
}
}
//(3)キーワードの代入
else if (strncmp(argv[i], "-b", 2) == 0) {
strcpy(KEYWORD, argv[i] + 2);
}
}
//(4)一行読み込む
while (fgets(buf, sizeof(buf), fp) != NULL)
{
//(5)キーワードの条件で文字列抽出
if (strstr(buf, KEYWORD) != NULL)
{
//(6)アウトプットファイルに出力
fprintf(fpp, "%s", buf);
}
}
//ファイルクローズ
fclose(fp);
fclose(fpp);
return 0;
}


そのC#版

using System;
using System.IO;
using System.Text;

public class Program1
{
static int Main(string[] args)
{
string inpath = null;
string keyword = null;
string outpath = "output.txt";

foreach (string cmd in args) {
if (cmd.IndexOf("-a") == 0) {
inpath = cmd.Substring(2);
}
else if (cmd.IndexOf("-b") == 0) {
keyword = cmd.Substring(2);
}
}
if (inpath == null || keyword == null) {
return 1;
}

StreamReader sr = null;
StreamWriter sw = null;
try {
sr = new StreamReader(inpath, Encoding.GetEncoding(932));
sw = new StreamWriter(outpath, false, Encoding.GetEncoding(932));

string line;
while ((line = sr.ReadLine()) != null) {
if (line.IndexOf(keyword) != -1) {
sw.WriteLine(line);
}
}
}
catch (Exception ex) {
Console.WriteLine(ex.Message);
}
finally {
if (sr != null) {
sr.Close();
}
if (sw != null) {
sw.Close();
}
}
return 0;
}
}

あとは自分で考えて。

>C言語→C#に変換
の返信はないわけ?
お礼もまともにできないのにこの先やっていけるのかと。


面倒なので、

-ainput.txt -bkeyword

という引数から input.txt から keyword を検索するC言語のコード

#include <string.h>
#include <stdio.h>
int main(int argc, char* argv[])
{
FILE* fp;
FILE* fpp;
int i;
char KEYWORD[256];
char buf[256];

//(1)アウトプットファイルのオープン
fpp = fopen("output.txt", "w");
if (fpp == NULL)
{
printf("open error!\n");
return 1;
}
for (i = 1; i < argc; ++i)...続きを読む

QC#でフォームのオブジェクト名を変数名で指定

C#でフォームのオブジェクトを変数名で指定するにはどうしたらよいでしょうか?

例えば、フォームにラジオボタンrdo0~rdo9と、
それぞれに対応するテキストボックスtxt0~txt9が用意されている状態で、
rdo1がチェックされていたらtxt1に"OK"と表示、
rdo2がチェックされていたらtxt2に"OK"と表示・・・
といったことをfor文で実現する場合どのようにしたらよいでしょうか?
変数をオブジェクト名として認識させるための方法がわかりません。

どなたかご教授願います。


*********************************************
for(int i=0;i<10;i++)
{
 rdoname = "rdo" + i;
 txtname = "txt" + i;

 if((何らかの処理?)(rdoname).checked)
  (何らかの処理?)(txtname).txt = "OK";
}

****************************************
↑この、オブジェクトとして認識する為の「何らかの処理」部がわかりません。

C#でフォームのオブジェクトを変数名で指定するにはどうしたらよいでしょうか?

例えば、フォームにラジオボタンrdo0~rdo9と、
それぞれに対応するテキストボックスtxt0~txt9が用意されている状態で、
rdo1がチェックされていたらtxt1に"OK"と表示、
rdo2がチェックされていたらtxt2に"OK"と表示・・・
といったことをfor文で実現する場合どのようにしたらよいでしょうか?
変数をオブジェクト名として認識させるための方法がわかりません。

どなたかご教授願います。


************************...続きを読む

Aベストアンサー

参考URL参照。

参考URL:http://dobon.net/vb/dotnet/control/findcontrolbyname.html


人気Q&Aランキング

おすすめ情報