Seite 2 von 2

Re: Texteditor bei Doppelklick auswählen (Dialog)

Verfasst: 9. Okt 2014 07:34
von hoschen
Ich habe das jetzt so gemacht:

Die Plus-Zeichen sind der Code: uFF0B, da das "normale" Plus-Zeichen ja intern genutzt wird für evtl. Auswahlbox (mit kleinem Pfeil)

Re: Texteditor bei Doppelklick auswählen (Dialog)

Verfasst: 9. Okt 2014 08:30
von Kundal
Super, den Code hatte ich nicht gefunden.

Re: Texteditor bei Doppelklick auswählen (Dialog)

Verfasst: 9. Okt 2014 08:57
von hoschen
Jetzt noch eine Frage:
Kann man den Dateinamen in der Box mit anzeigen lassen? Wenn ja, wie?
Probiert hatte ich schon mit %1, aber da wird immer %1 angezeigt, aber nicht der Dateiname!

Re: Texteditor bei Doppelklick auswählen (Dialog)

Verfasst: 9. Okt 2014 13:26
von Kundal
Ich kann es gerade nicht selber testen, aber funktionieren sollte doubleClickData.item.name. Also etwa so:

Code: Alles auswählen

dlg.message = "Datei: " & doubleClickData.item.name & vbCrLf & "Mit Notepad oder WordPad öffnen"

Re: Texteditor bei Doppelklick auswählen (Dialog)

Verfasst: 9. Okt 2014 15:05
von hoschen
Das hat leider nicht funktioniert! Da wird die Datei - z. B. ".cmd" direkt ausgeführt. Wenn ich das "& vbCrLf &" weglasse, dann wird in der Box eine 0 angezeigt - gar kein Text!

Re: Texteditor bei Doppelklick auswählen (Dialog)

Verfasst: 9. Okt 2014 22:26
von Kundal
Da habe ich zu voreilig was gepostet, ohne zu wissen welche Version des Scripts du verwendest. Der Zugang zu Dateinamen ist unterschiedlich für die AddIn-Version und den Schalterbefehl:
AddIn: doubleClickData.item.name
Schalter: clickData.func.command.sourcetab.selected(0) (erste markierte Datei)
Die Syntax ist wiederum unterschiedlich für VBS vs. JScript-Version. Der Code oben war für die VBS-AddIn-Version.
Das & vbCrLf setzt in VBScript einen Textabsatz/neue Zeile. In JScript musst du stattdessen + "\r\n" verwenden. Der gleiche String für JScript würde also lauten:

Code: Alles auswählen

dlg.message = "Datei: " + doubleClickData.item.name + "\r\n" + "Mit Notepad oder WordPad öffnen";
Damit solltest du den für die von dir verwendete Version passenden String zusammensetzen können.

Re: Texteditor bei Doppelklick auswählen (Dialog)

Verfasst: 10. Okt 2014 07:46
von hoschen
Hallo Kundal,

erstmal Danke für die Hilfe! Ich hätte vorher sagen sollen, dass ich JScript verwende. :oops:

Ich habe das ganze jetzt so gelöst:

Code: Alles auswählen

dlg.message = "Datei " + "''" + doubleClickData.item.name + "''" + " mit Notepad++ / Editor öffnen oder ausführen";

Re: Texteditor bei Doppelklick auswählen (Dialog)

Verfasst: 10. Okt 2014 11:31
von Kundal
Schön, dass du es hinbekommen hast.
Anmerkung: In JScript kannst du Anführungsstriche und Apostroph alternativ verwenden. Du kannst also auch "echte" Anführungszeichen einfügen statt 2 x Apostroph, indem du Apostroph-Anführungszeichen-Apostroph schreibst. Das ist in VBScript wesentlich nerviger, weil man da zum Einfügen von Anführungszeichen & [4 Anführungszeichen] schreiben muss. Der Apostroph ist da für Kommentare reserviert (JScript: /).
Den Absatz hatte ich eingefügt, weil bei deiner Lösung der Textumbruch, je nach Länge des Dateinamens, immer an anderer Stelle erfolgt. Wenn du gleich zweizeilig schreibst bestimmst du, wo der Umbruch erfolgt.

Re: Texteditor bei Doppelklick auswählen (Dialog)

Verfasst: 10. Okt 2014 13:37
von hoschen
Ich habe das JScript jetzt noch etwas verändert. Damit werden ausserdem bei den Erweiterungen Groß- und Kleinschreibung ignoriert. Also egal wie die Erweiterung geschrieben ist, ob groß oder klein oder gemischt. Auch sind noch weitere Erweiterungen dazu gekommen - txt, ini, cmd, js, vbs, ps1

Ich hoffe das ich das so verändern und hier zeigen kann!?

Code: Alles auswählen

    // TextEditorChoice-JS
    // (c) 2014 Kundal
    //
    // This is a script for Directory Opus.
    // See http://www.gpsoft.com.au/redirect.asp?page=scripts for development information.
    //
    //
    //
    // Called by Directory Opus to initialize the script
    function OnInit(initData)
    {
       initData.name = "TextEditorChoice-JS";
       initData.desc = "Textdatei mit Notepad oder WordPad Öffnen";
       initData.copyright = "(c) 2014 Kundal";
       initData.version = "v1.1";
          initData.default_enable = true;
    }

    // Called when a file or folder is double-clicked
    function OnDoubleClick(doubleClickData)
    {
    var ext = doubleClickData.item.ext.toLowerCase();
    DOpus.vars.Set ("wp", "C:\\Program Files (x86)\\Notepad++\\notepad++.exe");
    DOpus.vars.Set ("wp1", "C:\\Program Files (x86)\\PSPad editor\\PSPad.exe");
    DOpus.vars.Set ("wp2", "C:\\Windows\\Notepad.exe");
    DOpus.vars.Set ("wp3", "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe");
    DOpus.vars.Set ("wp4", "C:\\Windows\\System32\\cscript.exe //NOLOGO");

    // Do nothing if the filetype isn't ".txt" or ".ini"
    if (!(ext == ".txt" || ext == ".ini" || ext == ".cmd" || ext == ".vbs" || ext == ".js" || ext == ".ps1")) return;

    // Create Dialog
		dlg = DOpus.Dlg;
		dlg.window = DOpus.Listers(0);
		dlg.title = "Editor wählen";
		dlg.message = "Datei " + '"' + doubleClickData.item.name + '"' + "\r\n\n" + "mit Notepad++ / Editor öffnen oder ausführen";
		dlg.buttons = "Notepad\uFF0B\uFF0B|Editor|Ausführen|Abbrechen";

    // Configure actions for filtype ".txt"
       if (ext == ".txt" == true)
       {
		dlg.message = "Datei " + '"' + doubleClickData.item.name + '"' + "\r\n\n" + "mit Notepad++ oder Editor öffnen";
		dlg.buttons = "Notepad\uFF0B\uFF0B|Editor|Abbrechen";
//		dlg.buttons = "Notepad\uFF0B\u207A|Editor|Abbrechen";
		i = dlg.show;
          if (i == 1)
             DOpus.NewCommand.RunCommand('{$glob:wp} "%1"');
          if (i == 2)
             DOpus.NewCommand.RunCommand('{$glob:wp2} "%1"');
       }
    // Configure actions for filtype ".cmd"
       else if (ext == ".cmd" == true)
       {
		i = dlg.show;
          if (i == 1)
             DOpus.NewCommand.RunCommand('{$glob:wp} "%1"');
          if (i == 2)
             DOpus.NewCommand.RunCommand('{$glob:wp2} "%1"');
          if (i == 3)
             DOpus.NewCommand.RunCommand('"%1"');
       }
    // Configure actions for filtype ".js"
       else if (ext == ".js" == true)
       {
		dlg.message = "Datei " + '"' + doubleClickData.item.name + '"' + "\r\n\n" + "mit Notepad++ oder Editor öffnen";
		dlg.buttons = "Notepad\uFF0B\uFF0B|Editor|Abbrechen";
		i = dlg.show;
          if (i == 1)
             DOpus.NewCommand.RunCommand('{$glob:wp} "%1"');
          if (i == 2)
             DOpus.NewCommand.RunCommand('{$glob:wp2} "%1"');
       }
    // Configure actions for filtype ".vbs"
       else if (ext == ".vbs" == true)
       {
		i = dlg.show;
          if (i == 1)
             DOpus.NewCommand.RunCommand('{$glob:wp} "%1"');
          if (i == 2)
             DOpus.NewCommand.RunCommand('{$glob:wp2} "%1"');
          if (i == 3)
             DOpus.NewCommand.RunCommand('{$glob:wp4} "%1"');
       }
    // Configure actions for filetype ".ini" (for testing purposes simply do reverse actions configured for ".txt")
       else if (ext == ".ini" == true)
       {
		dlg.message = "Datei " + '"' + doubleClickData.item.name + '"' + "\r\n\n" + "mit Notepad++ oder Editor öffnen";
		dlg.buttons = "Notepad\uFF0B\uFF0B|Editor|Abbrechen";
		i = dlg.show;
          if (i == 1)
             DOpus.NewCommand.RunCommand('{$glob:wp} "%1"');
          if (i == 2)
             DOpus.NewCommand.RunCommand('{$glob:wp2} "%1"');
       }
    // Configure actions for filetype ".ps1"
       else if (ext == ".ps1" == true)
       {
		i = dlg.show;
          if (i == 1)
             DOpus.NewCommand.RunCommand('{$glob:wp} "%1"');
          if (i == 2)
             DOpus.NewCommand.RunCommand('{$glob:wp2} "%1"');
          if (i == 3)
             DOpus.NewCommand.RunCommand('{$glob:wp3} "-command" "%1"');
       }
    // Prevent the standard double-click action.
    OnDoubleClick = true; return true;
    }

Re: Texteditor bei Doppelklick auswählen (Dialog)

Verfasst: 10. Okt 2014 16:24
von Kundal
hoschen hat geschrieben:Ich hoffe das ich das so verändern und hier zeigen kann!?
Natürlich darfst du hier deine Version posten. Wie eingangs erwähnt, dient dieses Script mehr als eine Vorlage, die jeder nach seinem Bedarf anpassen kann.

Du hast dein Script allerdings viel zu kompliziert aufgebaut. Du musst die Dialogbox nicht x-mal neu definieren und mit i = dlg.show anzeigen lassen. Du kannst die Dialogbox einmal erstellen und nur für die Message und Buttons-Zeilen Bedingungen formulieren. Ich habe dir das mal entsprechend umgeschrieben.
Bist du dir übrigens sicher, dass *.js-Dateien nicht ausführbar sein sollen?

Code: Alles auswählen

    // TextEditorChoice-JS
    // (c) 2014 Kundal
    //
    // This is a script for Directory Opus.
    // See http://www.gpsoft.com.au/redirect.asp?page=scripts for development information.
    //
    //
    //
    // Called by Directory Opus to initialize the script
    function OnInit(initData)
    {
       initData.name = "TextEditorChoice-JS";
       initData.desc = "Textdatei mit Notepad oder WordPad Öffnen";
       initData.copyright = "(c) 2014 Kundal";
       initData.version = "v1.1";
          initData.default_enable = true;
    }

    // Called when a file or folder is double-clicked
    function OnDoubleClick(doubleClickData)
    {
    var ext = doubleClickData.item.ext.toLowerCase();
    DOpus.vars.Set ("wp", "C:\\Program Files (x86)\\Notepad++\\notepad++.exe");
    DOpus.vars.Set ("wp1", "C:\\Program Files (x86)\\PSPad editor\\PSPad.exe");
    DOpus.vars.Set ("wp2", "C:\\Windows\\Notepad.exe");
    DOpus.vars.Set ("wp3", "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe");
    DOpus.vars.Set ("wp4", "C:\\Windows\\System32\\cscript.exe //NOLOGO");

    // Do nothing if the filetype isn't ".txt" or ".ini"
    if (!(ext == ".txt" || ext == ".ini" || ext == ".cmd" || ext == ".vbs" || ext == ".js" || ext == ".ps1")) return;

    // Create Dialog
    dlg = DOpus.Dlg;
    dlg.window = DOpus.Listers(0);
    dlg.title = "Editor wählen";
    if (ext == ".txt" || ext == ".ini" || ext == ".js")
    {
        dlg.message = "Datei " + '"' + doubleClickData.item.name + '"' + "\r\n\n" + "mit Notepad++ / Editor öffnen";
        dlg.buttons = "Notepad\uFF0B\uFF0B|Editor|Abbrechen";
    }
    if (ext == ".vbs" || ext == ".cmd" || ext == ".ps1")
    {
        dlg.message = "Datei " + '"' + doubleClickData.item.name + '"' + "\r\n\n" + "mit Notepad++ / Editor öffnen oder ausführen";
        dlg.buttons = "Notepad\uFF0B\uFF0B|Editor|Ausführen|Abbrechen";
    }
        i = dlg.show

   // Configure actions for filetype ".txt"
    if (ext == ".txt")
    {
        if (i == 1)
            DOpus.NewCommand.RunCommand('{$glob:wp} "%1"');
        if (i == 2)
            DOpus.NewCommand.RunCommand('{$glob:wp2} "%1"');
    }
    // Configure actions for filtype ".cmd"
    if (ext == ".cmd")
    {
        if (i == 1)
            DOpus.NewCommand.RunCommand('{$glob:wp} "%1"');
        if (i == 2)
            DOpus.NewCommand.RunCommand('{$glob:wp2} "%1"');
        if (i == 3)
            DOpus.NewCommand.RunCommand('"%1"');
    }
    // Configure actions for filtype ".js"
    if (ext == ".js")
    {
        if (i == 1)
            DOpus.NewCommand.RunCommand('{$glob:wp} "%1"');
        if (i == 2)
            DOpus.NewCommand.RunCommand('{$glob:wp2} "%1"');
    }
    // Configure actions for filtype ".vbs"
    if (ext == ".vbs")
    {
        if (i == 1)
            DOpus.NewCommand.RunCommand('{$glob:wp} "%1"');
        if (i == 2)
            DOpus.NewCommand.RunCommand('{$glob:wp2} "%1"');
        if (i == 3)
            DOpus.NewCommand.RunCommand('{$glob:wp4} "%1"');
    }
    // Configure actions for filetype ".ini" (for testing purposes simply do reverse actions configured for ".txt")
    if (ext == ".ini")
    {
        if (i == 1)
            DOpus.NewCommand.RunCommand('{$glob:wp} "%1"');
        if (i == 2)
            DOpus.NewCommand.RunCommand('{$glob:wp2} "%1"');
    }
    // Configure actions for filetype ".ps1"
    if (ext == ".ps1" == true)
    {
        if (i == 1)
            DOpus.NewCommand.RunCommand('{$glob:wp} "%1"');
        if (i == 2)
            DOpus.NewCommand.RunCommand('{$glob:wp2} "%1"');
        if (i == 3)
            DOpus.NewCommand.RunCommand('{$glob:wp3} "-command" "%1"');
    }
    // Prevent the standard double-click action.
    OnDoubleClick = true; return true;
    }

Re: Texteditor bei Doppelklick auswählen (Dialog)

Verfasst: 12. Okt 2014 18:22
von josinoro
Hallo Hoschen, Kundal und andere Listlinge,

nun habe ich versucht, das Script um die Möglichkeit einer Auswahl bei Grafikdateien zu erweitern.

Es sollen die Endungen ".jpg", ".jpeg" und ".gif" verarbeitet werden. Die Auswahl soll zwischen Gimp und dem internen Vorschauprogramm von DirectoryOpus stattfinden.

Das Grafikprogramm Gimp wird korrekt aufgerufen. Was ich nicht hinbekomme ist der Aufruf mittels DirectoryOpus.
Wie formuliere ich den Aufruf in der Variablen wp7 in Zeile 29?

Code: Alles auswählen

// TextEditorChoice-JS
// (c) 2014 Kundal
//
// This is a script for Directory Opus.
// See http://www.gpsoft.com.au/redirect.asp?page=scripts for development information.
//
//
//
// Called by Directory Opus to initialize the script
function OnInit(initData)
{
   initData.name = "TextEditorChoice-JS";
   initData.desc = "Textdatei mit Notepad oder WordPad Öffnen";
   initData.copyright = "(c) 2014 Kundal";
   initData.version = "v1.1";
   initData.default_enable = true;
}

// Called when a file or folder is double-clicked
function OnDoubleClick(doubleClickData)
{
	var ext = doubleClickData.item.ext.toLowerCase();
	DOpus.vars.Set ("wp1", "D:\\Editor\\Notepad++\\notepad++.exe");
	DOpus.vars.Set ("wp2", "");
	DOpus.vars.Set ("wp3", "D:\\Editor\\Notepad++\\notepad++.exe");
	DOpus.vars.Set ("wp4", "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe");
	DOpus.vars.Set ("wp5", "C:\\Windows\\System32\\cscript.exe //NOLOGO");
	DOpus.vars.Set ("wp6", "D:\\Grafik\\Gimp\\bin\\gimp-2.8.exe");
	DOpus.vars.Set ("wp7", "D:\\Dateimanager\\DirectoryOpus\\dopus.exe");

	// Do nothing if the filetype isn't ".txt" or ".ini"
	if (!(ext == ".txt" || ext == ".ini" || ext == ".cmd" || ext == ".vbs" || ext == ".js" || ext == ".ps1" || ext == ".jpg" || ext == ".jpeg" || ext == ".gif")) return;

	// Create Dialog
	dlg = DOpus.Dlg;
	dlg.window = DOpus.Listers(0);
	dlg.title = "Editor wählen";

	if (ext == ".txt" || ext == ".ini" || ext == ".js")
	{
		dlg.message = "Datei " + '"' + doubleClickData.item.name + '"' + "\r\n\n" + "mit Notepad++ / Editor öffnen";
		dlg.buttons = "Notepad\uFF0B\uFF0B|Editor|Abbrechen";
	}

	if (ext == ".vbs" || ext == ".cmd" || ext == ".ps1")
	{
		dlg.message = "Datei " + '"' + doubleClickData.item.name + '"' + "\r\n\n" + "mit Notepad++ / Editor öffnen oder ausführen";
		dlg.buttons = "Notepad\uFF0B\uFF0B|Editor|Ausführen|Abbrechen";
	}

	if (ext == ".jpg" || ext == ".jpeg" || ext == ".gif")
	{
		dlg.message = "Datei " + '"' + doubleClickData.item.name + '"' + "\r\n\n" + "mit Gimp / DOpus öffnen";
		dlg.buttons = "Gimp|DOpus|Abbrechen";
	}

	i = dlg.show

	// Configure actions for filetype ".txt"
	if (ext == ".txt")
	{
		if (i == 1)
			DOpus.NewCommand.RunCommand('{$glob:wp1} "%1"');
		if (i == 2)
			DOpus.NewCommand.RunCommand('{$glob:wp3} "%1"');
	}
	// Configure actions for filtype ".cmd"
	if (ext == ".cmd")
	{
		if (i == 1)
			DOpus.NewCommand.RunCommand('{$glob:wp1} "%1"');
		if (i == 2)
			DOpus.NewCommand.RunCommand('{$glob:wp3} "%1"');
		if (i == 3)
			DOpus.NewCommand.RunCommand('"%1"');
	}
	// Configure actions for filtype ".js"
	if (ext == ".js")
	{
		if (i == 1)
			DOpus.NewCommand.RunCommand('{$glob:wp1} "%1"');
		if (i == 2)
			DOpus.NewCommand.RunCommand('{$glob:wp3} "%1"');
	}
	// Configure actions for filtype ".vbs"
	if (ext == ".vbs")
	{
		if (i == 1)
			DOpus.NewCommand.RunCommand('{$glob:wp1} "%1"');
		if (i == 2)
			DOpus.NewCommand.RunCommand('{$glob:wp3} "%1"');
		if (i == 3)
			DOpus.NewCommand.RunCommand('{$glob:wp5} "%1"');
	}
	// Configure actions for filetype ".ini" (for testing purposes simply do reverse actions configured for ".txt")
	if (ext == ".ini")
	{
		if (i == 1)
			DOpus.NewCommand.RunCommand('{$glob:wp1} "%1"');
		if (i == 2)
			DOpus.NewCommand.RunCommand('{$glob:wp3} "%1"');
	}
	// Configure actions for filetype ".ps1"
	if (ext == ".ps1" == true)
	{
		if (i == 1)
			DOpus.NewCommand.RunCommand('{$glob:wp1} "%1"');
		if (i == 2)
			DOpus.NewCommand.RunCommand('{$glob:wp3} "%1"');
		if (i == 3)
			DOpus.NewCommand.RunCommand('{$glob:wp4} "-command" "%1"');
	}
	// Configure actions for filtype ".jpg" ".jpeg" ".gif"
	if (ext == ".jpg")
	{
		if (i == 1)
			DOpus.NewCommand.RunCommand('{$glob:wp6} "%1"');
		if (i == 2)
			DOpus.NewCommand.RunCommand('{$glob:wp7} "%1"');
	}
	// Prevent the standard double-click action.
	OnDoubleClick = true; return true;
}
MfG

josinoro

Re: Texteditor bei Doppelklick auswählen (Dialog)

Verfasst: 12. Okt 2014 22:14
von Kundal
Entweder dopusrt.exe /show %1 oder d8viewer.exe %1. Sollte beides funktionieren.

Re: Texteditor bei Doppelklick auswählen (Dialog)

Verfasst: 12. Okt 2014 23:33
von josinoro
Hallo Kundal,

das funktioniert. Danke!

MfG
josinoro

Re: Texteditor bei Doppelklick auswählen (Dialog)

Verfasst: 16. Okt 2014 14:19
von hoschen
Ich habe das Script jetzt auch in VBS umgesetzt!

Code: Alles auswählen

    ' TextEditorChoice
    '
    '
    ' This is a script for Directory Opus.
    ' See http://www.gpsoft.com.au/redirect.asp?page=scripts for development information.
    '
    '
    '
    ' Called by Directory Opus to initialize the script
    Function OnInit(initData)
          initData.name = "TextEditorChoice"
          initData.desc = "Textdatei mit Notepad oder WordPad Öffnen"
          initData.copyright = "(c) 2014 Kundal"
          initData.version = "v1.1"
          initData.default_enable = true
    End Function

    ' Called when a file or folder is double-clicked
    Function OnDoubleClick(doubleClickData)
    Set filename = doubleClickData.item

	Dim Prog1
	Prog1 = ("C:\Program Files (x86)\Notepad++\notepad++.exe ")
	Dim Prog2
	Prog2 = ("C:\Windows\notepad.exe ")
	Dim Prog3
	Prog3 = ("C:\Windows\System32\cscript.exe /NOLOGO ")
	Dim Prog4
	Prog4 = ("C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe ")
	Dim Prog5
	Prog5 = ("C:\Program Files\GIMP 2\bin\gimp-2.8.exe ")
	Dim Prog6
	Prog6 = ("C:\Program Files\GPSoftware\Directory Opus\dopusrt.exe ")

    ' Do nothing if the filetype isn't ".txt" or ".ini"
    Dim ext
    ext = LCASE(doubleClickData.item.ext)
    If (Not (ext = ".txt" Or ext = ".ini" Or ext = ".cmd" Or ext = ".vbs" Or ext = ".js" Or ext = ".ps1" Or ext = ".jpg" Or ext = ".jpeg" Or ext = ".gif" Or ext = ".tif" Or ext = ".png" Or ext = ".bmp")) Then
          Exit Function
    End If

    ' Create Dialog
    Set dlg = DOpus.Dlg
    dlg.window = DOpus.Listers(0)
    dlg.title = "Editor wählen"
	If (ext = ".txt" Or ext = ".ini") Then
		dlg.message = "Datei: " & doubleClickData.item.name & vbCrLf & "mit Notepad++ oder Editor öffnen"
		dlg.buttons = "Notepad" & ChrW(&HFF0B) & ChrW(&HFF0B) & "|Editor|Abbrechen"
	Elseif (ext = ".cmd" Or ext = ".vbs" Or ext = ".js" Or ext = ".ps1") Then
		dlg.message = "Datei: " & doubleClickData.item.name & vbCrLf & "mit Notepad++ / Editor öffnen oder ausführen"
		dlg.buttons = "Notepad" & ChrW(&HFF0B) & ChrW(&HFF0B) & "|Editor|Ausführen|Abbrechen"
	Elseif (ext = ".jpg" Or ext = ".jpeg" Or ext = ".gif" Or ext = ".tif" Or ext = ".png" Or ext = ".bmp") Then
		dlg.message = "Datei: " & doubleClickData.item.name & vbCrLf & "mit Gimp / DO-Betrachter oder Foto-Anzeige öffnen"
		dlg.buttons = "Gimp|DO-Betrachter|Foto-Anzeige|Abbrechen"
	End If
    i = dlg.show

    ' Prevent the standard double-click action.
    OnDoubleClick = true

    'Configure actions for filtype ".txt"; ".ini"
    If (ext = ".txt" Or ext = ".ini") Then     
          If i = 1 then
                DOpus.NewCommand.RunCommand Prog1 & """" & filename & """"
          Elseif i = 2 then
                DOpus.NewCommand.RunCommand Prog2 & """" & filename & """"
          else
          End If
    End If

    'Configure actions for filetype ".cmd"
    If (ext = ".cmd") Then     
          If i = 1 then
                DOpus.NewCommand.RunCommand Prog1 & """" & filename & """"
          Elseif i = 2 then
                DOpus.NewCommand.RunCommand Prog2 & """" & filename & """"
          Elseif i = 3 then
                DOpus.NewCommand.RunCommand """" & filename & """"
          else
          End If
    End If

    'Configure actions for filetype ".vbs"; ".js"
    If (ext = ".vbs" Or ext = ".js") Then     
          If i = 1 then
                DOpus.NewCommand.RunCommand Prog1 & """" & filename & """"
          Elseif i = 2 then
                DOpus.NewCommand.RunCommand Prog2 & """" & filename & """"
          Elseif i = 3 then
                DOpus.NewCommand.RunCommand Prog3 & """" & filename & """"
          else
          End If
    End If

    'Configure actions for filetype ".ps1"
    If (ext = ".ps1") Then     
          If i = 1 then
                DOpus.NewCommand.RunCommand Prog1 & """" & filename & """"
          Elseif i = 2 then
                DOpus.NewCommand.RunCommand Prog2 & """" & filename & """"
          Elseif i = 3 then
                DOpus.NewCommand.RunCommand Prog4 & """" & filename & """"
          else
          End If
    End If

    'Configure actions for filetype ".jpg"; ".jpeg"; ".gif"; ".tif"; ".png"; ".bmp"
    If (ext = ".jpg" Or ext = ".jpeg" Or ext = ".gif" Or ext = ".tif" Or ext = ".png" Or ext = ".bmp") Then     
          If i = 1 then
                DOpus.NewCommand.RunCommand Prog5 & """" & filename & """"
          Elseif i = 2 then
                DOpus.NewCommand.RunCommand Prog6 & " /show " & """" & filename & """"
          Elseif i = 3 then
                DOpus.NewCommand.RunCommand """" & filename & """"
          else
          End If
    End If

    End Function

[Edit] Grafikbetrachter Gimp + DO Betrachter integriert und zus. Grafikformate [/Edit]

und das ganze auch in .JS eingearbeitet:

Code: Alles auswählen

    // TextEditorChoice-JS
    // (c) 2014 Kundal
    //
    // This is a script for Directory Opus.
    // See http://www.gpsoft.com.au/redirect.asp?page=scripts for development information.
    //
    //
    //
    // Called by Directory Opus to initialize the script
    function OnInit(initData)
    {
       initData.name = "TextEditorChoice-JS";
       initData.desc = "Textdatei mit Notepad oder WordPad Öffnen";
       initData.copyright = "(c) 2014 Kundal";
       initData.version = "v1.1";
          initData.default_enable = true;
    }

    // Called when a file or folder is double-clicked
    function OnDoubleClick(doubleClickData)
    {
    var ext = doubleClickData.item.ext.toLowerCase();
    DOpus.vars.Set ("wp", "C:\\Program Files (x86)\\Notepad++\\notepad++.exe");
    DOpus.vars.Set ("wp1", "C:\\Program Files (x86)\\PSPad editor\\PSPad.exe");
    DOpus.vars.Set ("wp2", "C:\\Windows\\Notepad.exe");
    DOpus.vars.Set ("wp3", "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe");
    DOpus.vars.Set ("wp4", "C:\\Windows\\System32\\cscript.exe //NOLOGO");
    DOpus.vars.Set ("wp5", "C:\\Program Files\\GIMP 2\\bin\\gimp-2.8.exe");
    DOpus.vars.Set ("wp6", "C:\\Program Files\\GPSoftware\\Directory Opus\\dopusrt.exe /show");

    // Do nothing if the filetype isn't ".txt" or ".ini"
    if (!(ext == ".txt" || ext == ".ini" || ext == ".cmd" || ext == ".vbs" || ext == ".js" || ext == ".ps1" || ext == ".jpg" || ext == ".jpeg" || ext == ".gif" || ext == ".tif" || ext == ".png" || ext == ".bmp")) return;

    // Create Dialog
		dlg = DOpus.Dlg;
		dlg.window = DOpus.Listers(0);
		dlg.title = "Editor wählen";
		dlg.message = "Datei " + '"' + doubleClickData.item.name + '"' + "\r\n" + "mit Notepad++ / Editor öffnen oder ausführen";
		dlg.buttons = "Notepad\uFF0B\uFF0B|Editor|Ausführen|Abbrechen";

        if (ext == ".txt" || ext == ".ini")
        {
            dlg.message = "Datei " + '"' + doubleClickData.item.name + '"' + "\r\n" + "mit Notepad++ / Editor öffnen";
            dlg.buttons = "Notepad\uFF0B\uFF0B|Editor|Abbrechen";
        }
        if (ext == ".jpg" || ext == ".jpeg" || ext == ".gif" || ext == ".tif" || ext == ".png" || ext == ".bmp")
        {
            dlg.message = "Datei " + '"' + doubleClickData.item.name + '"' + "\r\n" + "mit Gimp oder DO-Bildbetrachter öffnen";
            dlg.buttons = "Gimp|DO-Bildbetrachter|Bildbetrachter|Abbrechen";
        }
		i = dlg.show;

    // Configure actions for filtype ".txt"; ".ini"
       if (ext == ".txt" || ext == ".ini")
       {
          if (i == 1)
             DOpus.NewCommand.RunCommand('{$glob:wp} "%1"');
          if (i == 2)
             DOpus.NewCommand.RunCommand('{$glob:wp2} "%1"');
       }
    // Configure actions for filtype ".cmd"
       else if (ext == ".cmd" == true)
       {
          if (i == 1)
             DOpus.NewCommand.RunCommand('{$glob:wp} "%1"');
          if (i == 2)
             DOpus.NewCommand.RunCommand('{$glob:wp2} "%1"');
          if (i == 3)
             DOpus.NewCommand.RunCommand('"%1"');
       }
    // Configure actions for filtype ".vbs"; ".js"
       else if (ext == ".vbs" || ext == ".js")
       {
          if (i == 1)
             DOpus.NewCommand.RunCommand('{$glob:wp} "%1"');
          if (i == 2)
             DOpus.NewCommand.RunCommand('{$glob:wp2} "%1"');
          if (i == 3)
             DOpus.NewCommand.RunCommand('{$glob:wp4} "%1"');
       }
    // Configure actions for filetype ".ps1"
       else if (ext == ".ps1" == true)
       {
          if (i == 1)
             DOpus.NewCommand.RunCommand('{$glob:wp} "%1"');
          if (i == 2)
             DOpus.NewCommand.RunCommand('{$glob:wp2} "%1"');
          if (i == 3)
             DOpus.NewCommand.RunCommand('{$glob:wp3} "-command" "%1"');
       }
    // Configure actions for filetype ".jpg"; ".jpeg"; ".gif"; ".tif"; ".png"; ".bmp"
       else if (ext == ".jpg" || ext == ".jpeg" || ext == ".gif" || ext == ".tif" || ext == ".png" || ext == ".bmp")
       {
          if (i == 1)
             DOpus.NewCommand.RunCommand('{$glob:wp5} "%1"');
          if (i == 2)
             DOpus.NewCommand.RunCommand('{$glob:wp6} "%1"');
          if (i == 3)
             DOpus.NewCommand.RunCommand('"%1"');
       }
    // Prevent the standard double-click action.
    OnDoubleClick = true; return true;
    }