No.4ベストアンサー
- 回答日時:
>どのようにVB.NETに置き換えたらよいのかを、是非お教えいただけませんでしょうか。
ということは、アンマネージはお勧めしないと言いましたが、
アンマネージを使ってでも何とかしたいということで
宜しいですか?
それであれば、SharpDevelop というソフトで、C#⇔VB.NET変換ができます。
http://www.forest.impress.co.jp/lib/stdy/program …
私も愛用していて、結構便利です。
ただし、言語間の壁は結構厚くて、SharpDeveloperで、
VB.NETにコードを変換しても、一部についてはサポートしてくれない
箇所もある(例えばDllImport等)と思いますので、
その部分は、MSDNで1つ1つ調べながら、C#とVB.NETでの
表記の違いを調べていくしかないと思います。
例えば、
C#
[DllImport("kernel32.dll")] static extern uint WaitForSingleObject( IntPtr hHandle, uint dwMilliseconds );
VB.NET
Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Integer, ByVal dwMilliseconds As Integer) As Integer
といった感じに置き換える必要があります。
言語間の壁は簡単に打ち破れませんので、方法としては
・SharpDeveloperを入手して、VB.NETにConvert(変換)する
・SharpDeveloperで変換しきれなかった箇所を
MSDNやGoogleなどで調べながら1つずつ直す
しかないと思います。
C#もVB.NETも表現が違うだけで、考え方は同じですので、
そんなに難しくありません。
ご参考になれば幸いです。
こんな便利なものがあったのですか。
早速、頑張ってみたいと思います。
>アンマネージはお勧めしないと言いましたが
どうしても、画面を表示したくないのでチャレンジしてみることにしました。
注告をしていただいたのに申し訳ありません。
長い間にわたって教えていただきありがとうございました。
また色々と質問させていただくかもしれませんがその時はよろしくお願い致します。
No.3
- 回答日時:
>でも、ウィンドウが表示されてしまうのは仕方ないのでしょうか?
>(起動後、DOS窓表示→最小化になるのですが)
アンマネージのコードを使えばできますね。
http://www.codeproject.com/cs/threads/SingleInst …
(コードを書くと長いので、参考URLを記載させて頂きます。)
(なお、誠に申し訳ないのですが、サンプルコードは、C#なので、
VB.NETに展開しなおす必要があります)
ただし、アンマネージ(Win32用のAPI)を使うというのは、
.NETで開発する上では、ナンセンスなので、
お勧めしかねるところではあります。
後は、作成したEXEを最小化できるDOSの*.batファイルを作れば
できます(startコマンド)。
しかし、startコマンドでやらせた場合においても、
昔の16ビットの名残として残っているものであるため、
32ビット、64ビット時代の現在においてもあまりお勧めは
できません。
START [オプション] プログラム名 [引き数...]
DOS窓で、start /? とやるとstartコマンドの使い方が載っています。
なので、結論からいうと、将来性のバージョンのWindowsで
動かなくなってもいいというのであれば、
初めから最小化した状態でも起動はできます。
しかし、独自で作ったWindowsアプリならわかりますが、
DOS窓は、OS側が管理しているWindowですので、
あまり、これ以上はコアなことは、やらせない方ができれば望ましいというのが
回答です。
もし、http://www.codeproject.com/cs/threads/SingleInst …
に書いてあるサンプルを使って、どうしても最小化したいけど、
C#がわからないとか、VB.NETにどう置き換えたらいいのか
わからない等ありましたら、別途ご質問下さい。
この回答への補足
ご返事ありがとうございます。
数日間上記の方法を試そうと色々やってみたのですが、APIとC言語が初のもので再度質問させていただきたいと思います。
どのようにVB.NETに置き換えたらよいのかを、是非お教えいただけませんでしょうか。
お忙しいと思いますがよろしくお願いいたします。
No.2
- 回答日時:
あ、それから、下記のコードを動かすには、
ConsoleApplicationに、 System.Windows.Formsへの
参照設定をしてから、下記のコードを参考にご利用下さい。
No.1
- 回答日時:
こんなので如何でしょう?
Sub Main()
' プロセスを取得
Dim p As System.Diagnostics.Process = System.Diagnostics.Process.GetCurrentProcess
' Windowハンドルを取得
Dim handle As IntPtr = p.MainWindowHandle()
' DOS窓の最小化設定
Dim minsize As Int32 = &HF020
Dim syscommand As IntPtr = &H112
' 最小化実行
If handle Then
Dim winMessage As System.Windows.Forms.Message
winMessage = System.Windows.Forms.Message.Create(handle, syscommand, minsize, 0)
Dim nativeWindow As New System.Windows.Forms.NativeWindow()
nativeWindow.DefWndProc(winMessage)
nativeWindow = Nothing
End If
' ご自身がやりたい処理へ
While (True)
System.Threading.Thread.Sleep(1000)
Console.WriteLine("Hello World")
End While
End Sub
この回答への補足
ご返事が遅くなり申し訳ありませんでした。
早速ためさせていただきました。
無事最小化できました!!
でも、ウィンドウが表示されてしまうのは仕方ないのでしょうか?
(起動後、DOS窓表示→最小化になるのですが)
これを起動時に最小化された状態。(DOS窓非表示)
みたいな感じななことができればベストなのですが…
画面の下のタスクバーに表示されるのは気にしません。
ご返事が遅くなったのに再度お聞きして申し訳ありませんがよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- C言語・C++・C# 【C++】IDirect3DSurfaceのディープコピーは可能ですか? 1 2022/07/06 02:47
- アプリ Edgeを操作するアプリについて 4 2023/05/11 22:48
- Visual Basic(VBA) visual basic初心者です。 visual studioで電卓を作成しています。 実行時にテ 1 2023/02/08 00:18
- Visual Basic(VBA) 起動中のアプリ、ソフトの取得 3 2022/12/28 11:13
- UNIX・Linux Ubuntu22.04、nanoエディタの使い方について 2 2022/10/24 19:50
- 画像編集・動画編集・音楽編集 Native Accessのインストールが先に進みません 2 2022/09/14 13:34
- Windows Me・NT・2000 widows xpのエラーで利用ができなくなりました 3 2022/12/21 13:43
- その他(ブラウザ) IE・edgeで日増しに観られるサイトが減ってくる。 1 2022/10/04 22:40
- 数学 最大エントロピー原理をpythonで実装したい 2 2022/06/21 13:10
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EBCDIC⇒SJIS変換の方法
-
セル内の文字列が日本語か英語...
-
std::stringからLPCWSTR型への変換
-
「彡」って文字はなんという文...
-
sedで日本語の置換方法について
-
VS 2008(VB.NET)
-
画像データ(png)をcsvファイル...
-
CString ←→ BSTRの変換について
-
RubyでUTF8のコード値を文字に...
-
2バイト文字をJEFからSJISに変...
-
C#でバイナリデータをテキスト...
-
DOUBLE型の16進HEX文字列変換に...
-
PL/SQLでSJISの文字コードを取...
-
Excelマクロにて30分単位の計算...
-
ExcelVBA実行後に時々落ちる
-
Symfowareでのデータ型変換につ...
-
友人とのラインで 「~MBと書く...
-
VB6.0のコードエディタでの改行...
-
英数字を含む文字列(0-9,A-Z)...
-
VB.NETで子ウィンドウの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EBCDIC⇒SJIS変換の方法
-
セル内の文字列が日本語か英語...
-
「彡」って文字はなんという文...
-
std::stringからLPCWSTR型への変換
-
VS 2008(VB.NET)
-
ExcelVBA実行後に時々落ちる
-
ふりがなをアルファベット化す...
-
Excelマクロにて30分単位の計算...
-
Symfowareでのデータ型変換につ...
-
英数字を含む文字列(0-9,A-Z)...
-
JIS → S-JIS コード変換するには
-
sedで日本語の置換方法について
-
COBOLによる全角・半角混...
-
フォームのコントロールのバッ...
-
数字5桁文字コード?
-
バイナリデータ→ASCII 変換プ...
-
2バイト文字をJEFからSJISに変...
-
VBScript ASC関数:文字エンコ...
-
CString ←→ BSTRの変換について
-
入力した文字を全て自動で全角...
おすすめ情報