Delphi-Forum.de Delphi-Library.de
C-Sharp-Forum.de C-Sharp-Library.de
Registrieren Login Suche Hilfe Sitemap
GUID-Plugin für Proton
spacer
Autor Nachricht
MathiasSimmack
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star

Beiträge: 4092
Dabei seit: 13.07.2002



SharpDevelop 4
BeitragVerfasst: Fr 04.02.05 13:45  Antworten mit Zitat Beitrag melden
Das DF soll natürlich auch in den Genuss meines GUID-Plugins für Proton kommen. Irgendwer hat mir erzählt, das Ding wäre sogar Phase5-kompatibel. :gruebel: Keine Ahnung. Ich brauche es nur, damit ich mir in Proton ein paar GUIDs im Format {aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee} einfügen lassen kann. Dann brauche ich kein Hilfsprogramm oder gar Delphi dazu. Allerdings werden bei mir die Klammern weggelassen. Wer die braucht, kommentiert die zwei Zeilen aus, die im Quellcode markiert sind:
ausblenden volle Höhe Delphi-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
(* =============================================================================
   Wenn noch kein Plugin-Ordner für Proton benutzt wird, dann einen Ordner
   anlegen und den Pfad im Registryschlüssel
           HKEY_CURRENT_USER\Software\meybohm\proton\global
   als "PLUGINDIR" eintragen. Dann die DLL in diesen Ordner kopieren, und
   der Dateiname erscheint als neuer Menüpunkt (s. auch "make.bat") und
   fügt beim Aufruf eine neue GUID ein.
   --------------------------------------------------------------------------
   Hier noch die "make.bat", die aus dem Delphiprojekt "uuidplg.dpr" die
   "&Create GUID.dll" erzeugt
            @echo off
            setlocal
            set dcc32="k:\programme\borland\delphi5\bin\dcc32.exe"
            del *.~*
            del *.cfg
            del *.dof
            del *.dll
            %dcc32% uuidplg.dpr
            ren uuidplg.dll "&Create GUID.dll"
            set dcc32=
============================================================================= *)

library createuuid;

uses
  Windows,
  ComObj;

{$E dll}


const
  INTERFACEVERSION             = 1;
  KEINE_RUECKGABE              = 0;
  RUECKGABE_ERSETZT_MARKIERUNG = 1;
  RUECKGABE_ERSETZT_EDITORTEXT = 2;


function pluginStart(Text: pchar; SelStart, SelLength: integer): pchar;
  exportstdcall;
var
  tmp : string;
begin
  tmp          := CreateClassId;

// --- auskommentieren, wenn Klammern {} gewünscht sind -->
  delete(tmp,1,1);
  delete(tmp,length(tmp),1);
// <-------------------------------------------------------
  Result       := pchar(tmp);
end;

function pluginRueckgabetyp: integer; exportstdcall;
begin
  Result := RUECKGABE_ERSETZT_MARKIERUNG;
end;

function pluginInterfaceVersion: integer; exportstdcall;
begin
  Result := INTERFACEVERSION;
end;


exports
  pluginRueckgabetyp,
  pluginInterfaceVersion,
  pluginStart;

end.

Und weil der Installer nicht fehlen darf:
ausblenden volle Höhe RegisterPlugin.vbs markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
' Register Plugin Script
' Copyright (c) 2005, Mathias Simmack
'
Dim Sh, fso
Set Sh = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")


' is Proton installed?
Dim ProtonPath, PluginPath
ProtonPath = Sh.RegRead("HKEY_CURRENT_USER\Software\meybohm\proton\global\DIR")
PluginPath = Sh.RegRead("HKEY_CURRENT_USER\Software\meybohm\proton\global\PLUGINDIR")

If ProtonPath = "" Then
  MsgBox "Proton is not installed.", vbOk + vbExclamation, "Register Plugin"
  WScript.Quit
End If

' create a plugin folder
If PluginPath = "" Then
  PluginPath = ProtonPath + "\plugins"
  fso.CreateFolder(PluginPath)
  Sh.RegWrite "HKEY_CURRENT_USER\Software\meybohm\proton\global\PLUGINDIR", _
    PluginPath, "REG_SZ"
End If

' does the folder exist?
If Not fso.FolderExists(PluginPath) Then
  fso.CreateFolder(PluginPath)
End If

' copy plugin
fso.CopyFile "*GUID.dll", PluginPath

So, fertig. :)
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
Beiträge vom vorherigen Thema anzeigen:   
home home