Ticket #31234

二重起動防止パッチ

Eröffnet am: 2013-04-27 22:05 Letztes Update: 2020-12-21 22:51

Auswertung:
Verantwortlicher:
Typ:
Status:
Geschlossen
Komponente:
(Keine)
Priorität:
5 - Mittel
Schweregrad:
5 - Mittel
Lösung:
Gefixt
Datei:
Keine

Details

Windows用の二重起動防止パッチです。 同じ名前のミューテックスがあれば既に起動しているという判定です。

diff -urN hengband-trunk-rev3390-win\Hengband\src/main-win.c hengband-trunk-rev3390-win_prevent_multirun\Hengband\src/main-win.c
--- hengband-trunk-rev3390-win\Hengband\src/main-win.c	2013-04-27 21:37:56.558747400 +0900
+++ hengband-trunk-rev3390-win_prevent_multirun\Hengband\src/main-win.c	2013-04-27 22:00:05.666667300 +0900
@@ -5340,6 +5340,20 @@
 }
 
 
+bool is_already_running()
+{
+	bool result = FALSE;
+	HANDLE hMutex;
+
+	hMutex = CreateMutex(NULL, TRUE, VERSION_NAME);
+	if (GetLastError() == ERROR_ALREADY_EXISTS)
+	{
+		result = TRUE;
+	}
+	return result;
+}
+
+
 int FAR PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrevInst,
 		       LPSTR lpCmdLine, int nCmdShow)
 {
@@ -5355,6 +5369,19 @@
 	/* Save globally */
 	hInstance = hInst;
 
+	/* Prevent multiple run */
+	if (is_already_running())
+	{
+#ifdef JP
+		MessageBox(NULL, "変愚蛮怒はすでに起動しています。", 
+			"エラー!", MB_ICONEXCLAMATION | MB_OK | MB_ICONSTOP);
+#else
+		MessageBox(NULL, "Hengband is already running.",
+			"Error", MB_ICONEXCLAMATION | MB_OK | MB_ICONSTOP);
+#endif
+		return FALSE;
+	}
+
 	/* Initialize */
 	if (hPrevInst == NULL)
 	{

Ticket-Verlauf (3/4 Historien)

2013-04-27 22:05 Aktualisiert von: shimitei
  • New Ticket "二重起動防止パッチ" created
2013-04-28 00:01 Aktualisiert von: dis-
  • Verantwortlicher Update from (Keine) to dis-
2013-04-28 00:03 Aktualisiert von: dis-
  • Ticket Close date is changed to 2013-04-28 00:03
  • Status Update from Offen to Geschlossen
Kommentar

動作確認の上、パッチ適用しました。ありがとうございます。

2020-12-21 22:51 Aktualisiert von: deskull

Dateianhangliste

Keine Anhänge

Bearbeiten

Please login to add comment to this ticket » Anmelden