Scripte per Shortcut

Wenn Sie Hilfe benötigen oder über MediaMonkey diskutieren möchten...

Moderator: onkel_enno

mahoney2002
Posts: 8
Joined: Sat May 03, 2008 6:39 am

Scripte per Shortcut

Post by mahoney2002 » Sat May 03, 2008 6:42 am

Hallo,
ist es möglich scripte wie den Case Checker per shortcut zu starten ?

MfG
Stefan

Maaspuck
Posts: 155
Joined: Thu Dec 28, 2006 4:41 am
Location: Hamburg, Germany

Post by Maaspuck » Sat May 03, 2008 11:31 am

Hallo mahoney2002,

jo, das geht sogar mit verschiedenen Möglichkeiten. In der Datei Script.ini im Scripts Verzeichnis kann man beim gewünschten Skript noch die Zeile 'Shortcut=...' einfügen. Näheres dazu siehe hier.

Die zweite Möglichkeit besteht in einer Festlegung innerhalb eines Skript als Autostart Option. Dann wird der Shortcut sozusagen beim MediaMonkey Start eingerichtet. Das sieht dann in etwa wie folgt aus:

Code: Select all

'
' Complete Album v1.0
' 
' This script sets CustomField of the selected files to 'ja' or ''
'
' first version: 2007-09-02
' last version : 2007-09-02
'
' Installation:
' - just copy this code to a new text file, name it 'CompleteAlbum.vbs'
'   and save into your 'MediaMonkey\Scripts\Auto'-Folder
'
Option Explicit

Dim i
Dim List, Song

Sub OnStartup()
	'
	Dim MenuItemFolder, MenuItemBackward, MenuItemForward
	'
	Set MenuItemFolder = SDB.UI.AddMenuItemSub(SDB.UI.Menu_Scripts,1,1)
	MenuItemFolder.Caption = "Complete Album..."
	'
	Set MenuItemBackward = SDB.UI.AddMenuItem(MenuItemFolder,2,1)
	MenuItemBackward.Caption = "ja"
	MenuItemBackward.ShortCut = SDB.Localize("Ctrl+") & "8"
	MenuItemBackward.UseScript = Script.ScriptPath
	MenuItemBackward.OnClickFunc = "AlbumComplete"
	'
	Set MenuItemForward = SDB.UI.AddMenuItem(MenuItemFolder,2,2)
	MenuItemForward.Caption = "nein"
	MenuItemForward.ShortCut = SDB.Localize("Ctrl+") & "9"
	MenuItemForward.UseScript = Script.ScriptPath
	MenuItemForward.OnClickFunc = "AlbumNotComplete"
	'
End Sub

Sub AlbumComplete(MenuItemBackward)
	'
	Set List = SDB.SelectedSongList
	For i = 0 To List.Count-1
		Set Song = List.Item(i)
		Song.Custom1 = "ja"
		Song.UpdateDB
		Song.WriteTags
	Next 'i
	Set List = Nothing
	'
End Sub

Sub AlbumNotComplete(MenuItemForward)
	'
	Dim i, List, Song
	'
	Set List = SDB.SelectedSongList
	For i = 0 To List.Count-1
		Set Song = List.Item(i)
		Song.Custom1 = ""
		Song.UpdateDB
		Song.WriteTags
	Next 'i
	Set Song = Nothing
	Set List = Nothing
	'
End Sub
Kannst Du damit etwas anfangen?

Gruß

Maaspuck

mahoney2002
Posts: 8
Joined: Sat May 03, 2008 6:39 am

Post by mahoney2002 » Sun May 04, 2008 5:32 am

Hmm nicht ganz,
wie müsste ich es denn eintragen.

Habe es so probiert Shortcut = ("Ctrl+") & "8" wie aus deinem beispiel
dann:
Shortcut = "Ctrl+" & "8"
Shortcut = "Ctrl+" "8"
Wenn ich dann das script normal aufrufe kommt ein fehler " Variable nicht definiert " Shortcut "
Hab auch anere buchstaben verwendet aber will nicht so.
Bin aber auch kein Scripting guru...eher ein lamer :-?

Bex
Posts: 6316
Joined: Fri May 21, 2004 5:44 am
Location: Sweden

Post by Bex » Sun May 04, 2008 6:13 am

Advanced Duplicate Find & Fix Find More From Same - Custom Search. | Transfer PlayStat & Copy-Paste Tags/AlbumArt between any tracks.
Tagging Inconsistencies Do you think you have your tags in order? Think again...
Play History & Stats Node Like having your Last-FM account stored locally, but more advanced.
Case & Leading Zero Fixer Works on filenames too!

All My Scripts

Maaspuck
Posts: 155
Joined: Thu Dec 28, 2006 4:41 am
Location: Hamburg, Germany

Post by Maaspuck » Sun May 04, 2008 7:17 am

Hi mahoney2002,

in der Script.ini müsste es wohl 'Shortcut=Ctrl+8' heißen, also ohne Anfürungszeichen etc. Versuch es mal mit 'Shortcut=Strg+8'. Das habe ich zwar noch nicht probiert, aber vielleicht klappt es. Eine theoretische Erklärung hätte ich dafür, siehe dazu unten.

Das 'SDB.Localize("Ctrl+") & "8"' muss innerhalb eines Skripts verwendet werden:

Localize : damit es auf verschiedenen Sprachversionen läuft
"Ctrl+" & "8": Hier werden zwei Zeichenkettenvariablen verknüpft, nämlich die Zeichenkette 'Ctrl+' und die Zeichenkette '8'. Zusammen ergibt dies dann 'Ctrl+8', also genau die Zeichenkette, die in der script.ini stehen müsste.

Hier die theoretische Erklärung für ein 'Strg+8' in der script.ini. Innerhalb eines Skripts benötige ich das SDB.Localize, damit die im Englischen verwendete Abkürzung 'Ctrl+' ins Deutsche, also 'Strg+' übersetzt wird. Die '8' hänge ich dann lediglich an die entstandene deutsche Übersetzung an. Bei einer deutschen MediaMonkey Installation auf einem deutschen Betriebssystem wäre es also denkbar, dass in der script.ini ebenfalls diese Übersetzung vorgenommen werden muss. Da ein Skriptbefehl wie 'SDB.Localize' in der ini-Datei jedoch nicht funktioniert, muss vielleicht die übersetzte Variante, also 'Strg+' verwendet werden.

So, jetzt habe ich hier unheimlich viel geschrieben... es wäre vermutlich schneller gegangen, wenn ich es gleich ausprobiert hätte. Das werde ich nun tun und vermutlich kann ich die gesamte Theorie dann über den Haufen werfen... wir werden sehen.

Viel Erfolg

Maaspuck

Post Reply