Hi,
ich bin beim googlen heute zufällig drauf gestoßen und habe mir gedacht, daraus könnte man doch GM Skripts machen.
Es geht um das Verlinken von Programm/ GM Spiel und Protokoll/ Dateityp.
Edit: Mir ist zum Schluss aufgefallen, dass sich die Erklärungen doch sehr stark an Anfänger richten.
Was ist das?
Mit dem Protokoll Link kann man beispielsweise Server weitergeben, die beim Klick auf den Link direkt im Spiel geöffnet werden.
Mit dem Default Filetype kann man beispielsweise Map Editor Dateien standardmäßig im Mapeditor öffnen.
Die Skripts
Alles anzeigen
Wie nutzt man das ganze im Ziel GameMaker Spiel:
Man nutzt es mit parameter_string(index). Welchen Parameter man laden muss weiß ich nicht genau.
Anwendungsbeispiel: file_open(parameter_string(index));
Ich hoffe die Skripte helfen jemandem.
MfG
Rhedox
Quellen: msdn.microsoft.com/en-us/library/aa767914%28VS.85%29.aspx
//
//WARNUNG
//Die Skripte fügt neue Registry Schlüssel hinzu/ ändert sie.
//BENUTZUNG AUF EIGENE GEFAHR!
//
Ursprünglicher C# Code:
ich bin beim googlen heute zufällig drauf gestoßen und habe mir gedacht, daraus könnte man doch GM Skripts machen.
Es geht um das Verlinken von Programm/ GM Spiel und Protokoll/ Dateityp.
Edit: Mir ist zum Schluss aufgefallen, dass sich die Erklärungen doch sehr stark an Anfänger richten.
Was ist das?
Was bringt das?Protokoll Link: Wie bei Steam oder Skype wird dem Anfang einer Internetadresse ein Programm zugeordnet. Beispiel: steam://steamspielid öffnet steamspielid mit Steam.
Default Filetype: Sollte jeder kennen: Wenn man eine Datei eines beliebigen Dateityps öffnet, dann wird die Datei in dem ihres Types zugeordneten Programm geöffnet. .doc zum Beispiel in Word (normalerweise)
Mit dem Protokoll Link kann man beispielsweise Server weitergeben, die beim Klick auf den Link direkt im Spiel geöffnet werden.
Mit dem Default Filetype kann man beispielsweise Map Editor Dateien standardmäßig im Mapeditor öffnen.
Die Skripts
GML-Quellcode
- //Reg_Protocol_Link
- //Arugemte: 4
- //Argument 0: Protokollname (etwas wie z.B. htttp:// steam://)
- //Argument 1: Pfad zum Icon
- //Argument 2: Pfad zum Programm
- //Argument 3: Programmname (Leerstring tut es auch, nur zu Beschreibungszwecken)
- //
- //Bei Aufrug des Protokolls wird der Text nach dem Protokoll dem Spiel als Start Parameter übergeben. (Funktioniert wie Steam, iTunes)
- //
- //WARNUNG
- //Das Skript fügt neue Registry Schlüssel hinzu/ ändert sie.
- //BENUTZUNG AUF EIGENE GEFAHR!
- //
- //Funktioniert nicht nur mit Game Maker Spielen.
- //Aufrufen im Game Maker Spiel am Anfang mit parameter_string(index)
- //
- if(argument_count>=4) {
- registry_set_root(2);
- if (!registry_exists("\" + argument0)) {
- //Beschreibung
- registry_write_string("\" + argument0 + "\", "URL:"+argument3);
- //Typ
- registry_write_string_ext("\" + argument0 + "\", "URL Protocol", "");
- //Icon
- registry_write_string("\" + argument0 + "\DefaultIcon\",argument1);
- //Pfad
- registry_write_string("\" + argument0 + "\shell\","open");
- registry_write_string("\" + argument0 + "\shell\Open\Command\", argument3 +"\ %1");
- }
- }
- //Reg_Default_Filetype
- //Arugemte: 4
- //Argument 0: Datentypname (etwas wie z.B. .png .cs .gmk)
- //Argument 1: Pfad zum Icon
- //Argument 2: Pfad zum Programm
- //Argument 3: Programmname (Leerstring tut es auch, nur zu Beschreibungszwecken)
- //
- //Bei Aufrug des Protokolls wird der Text nach dem Protokoll dem Spiel als Start Parameter übergeben. (Funktioniert wie Steam, iTunes)
- //
- //WARNUNG
- //Das Skript fügt neue Registry Schlüssel hinzu/ ändert sie.
- //BENUTZUNG AUF EIGENE GEFAHR!
- //
- //Funktioniert nicht nur mit Game Maker Spielen.
- //Aufrufen im Game Maker Spiel am Anfang mit parameter_string(index)
- //
- if(argument_count>=4) {
- registry_set_root(2);
- if (!registry_exists("\" + argument0)) {
- //Beschreibung
- registry_write_string("\" + argument0 + "\", "URL:"+argument3);
- //Icon
- registry_write_string("\" + argument0 + "\DefaultIcon\",argument1);
- //Pfad
- registry_write_string("\" + argument0 + "\shell\","open");
- registry_write_string("\" + argument0 + "\shell\Open\Command\", argument3 +"\ %1");
- }
- }
- //Reg_Protocol_Link_Overwrite
- //Arugemte: 4
- //Argument 0: Protokollname (etwas wie z.B. htttp:// steam://)
- //Argument 1: Pfad zum Icon
- //Argument 2: Pfad zum Programm
- //Argument 3: Programmname (Leerstring tut es auch, nur zu Beschreibungszwecken)
- //
- //Bei Aufrug des Protokolls wird der Text nach dem Protokoll dem Spiel als Start Parameter übergeben. (Funktioniert wie Steam, iTunes)
- //Überschreibt, wenn nötig die Registry Schlüssel
- //
- //WARNUNG
- //Das Skript fügt neue Registry Schlüssel hinzu/ ändert sie.
- //BENUTZUNG AUF EIGENE GEFAHR!
- //
- //Funktioniert nicht nur mit Game Maker Spielen.
- //Aufrufen im Game Maker Spiel am Anfang mit parameter_string(index)
- //
- if(argument_count>=4) {
- registry_set_root(2);
- //Beschreibung
- registry_write_string("\" + argument0 + "\", argument3);
- //Typ
- registry_write_string_ext("\" + argument0 + "\", "URL Protocol", "");
- //Icon
- registry_write_string("\" + argument0 + "\DefaultIcon\",argument1);
- //Pfad
- registry_write_string("\" + argument0 + "\shell\","open");
- registry_write_string("\" + argument0 + "\shell\Open\Command\", argument3 +"\ %1");
- }
- //Reg_Default_Filetype_Overwrite
- //Arugemte: 4
- //Argument 0: Datentypname (etwas wie z.B. .png .cs .gmk)
- //Argument 1: Pfad zum Icon
- //Argument 2: Pfad zum Programm
- //Argument 3: Programmname (Leerstring tut es auch, nur zu Beschreibungszwecken)
- //
- //Bei Aufrug des Protokolls wird der Text nach dem Protokoll dem Spiel als Start Parameter übergeben. (Funktioniert wie Steam, iTunes)
- //Überschreibt, wenn nötig die Registry Schlüssel
- //
- //WARNUNG
- //Das Skript fügt neue Registry Schlüssel hinzu/ ändert sie.
- //BENUTZUNG AUF EIGENE GEFAHR!
- //
- //Funktioniert nicht nur mit Game Maker Spielen.
- //Aufrufen im Game Maker Spiel am Anfang mit parameter_string(index)
- //
- if(argument_count>=4) {
- registry_set_root(2);
- //Beschreibung
- registry_write_string("\" + argument0 + "\", argument3);
- //Icon
- registry_write_string("\" + argument0 + "\DefaultIcon\",argument1);
- //Pfad
- registry_write_string("\" + argument0 + "\shell\","open");
- registry_write_string("\" + argument0 + "\shell\Open\Command\", argument3 +"\ %1");
- }
Wie nutzt man das ganze im Ziel GameMaker Spiel:
Man nutzt es mit parameter_string(index). Welchen Parameter man laden muss weiß ich nicht genau.
Anwendungsbeispiel: file_open(parameter_string(index));
Ich hoffe die Skripte helfen jemandem.
MfG
Rhedox
Quellen: msdn.microsoft.com/en-us/library/aa767914%28VS.85%29.aspx
//
//WARNUNG
//Die Skripte fügt neue Registry Schlüssel hinzu/ ändert sie.
//BENUTZUNG AUF EIGENE GEFAHR!
//
Ursprünglicher C# Code:
public static void RegisterURLProtocol(string protocolName, string applicationPath, string description, string iconPath)
{
// Neuer Schlüssel für das gewünschte URL Protokoll erstellen
RegistryKey myKey = Registry.ClassesRoot.CreateSubKey(protocolName);
Console.WriteLine("RegistryKey Set: " + myKey.ToString());
// Protokoll zuweisen
myKey.SetValue(null, description);
myKey.SetValue("URL Protocol", string.Empty);
myKey.SetValue("Ini", Environment.CurrentDirectory + @"\games.ini");
//Iconwerte
myKey = Registry.ClassesRoot.CreateSubKey(protocolName + "\\DefaultIcon");
myKey.SetValue(null, iconPath);
Console.WriteLine("RegistryKey Set: " + myKey.ToString());
// Shellwerte eintragen
myKey = Registry.ClassesRoot.CreateSubKey(protocolName + "\\Shell");
myKey.SetValue(null, "open");
Console.WriteLine("RegistryKey Set: " + myKey.ToString());
Registry.ClassesRoot.CreateSubKey(protocolName + "\\Shell\\open");
myKey = Registry.ClassesRoot.CreateSubKey(protocolName + "\\Shell\\open\\command");
// Anwendung festlegen, die das URL-Protokoll behandelt
myKey.SetValue(null, "\"" + applicationPath + "\" %1");
Console.WriteLine("RegistryKey Set: " + myKey.ToString());
}
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Rhedox ()