Um dem neuen "Feature" der 5.00Beta2 zu huldigen, hab ich da mal was vorbereitet
Werkzeugeinstellungen :
Kommandozeile : hier die NST.exe mit kompletten Pfad
Argumente :
"@TEMPLATEFILE:VollerPfaddesTemplatefile" - Hier kann ein eigenes Templatefile eingestellt werden.
"@AUTHOR:Name des Authors" - Hier kann dein Name eingetragen werden.
Die Argumente sind nicht zwingend notwendig.
Sollte kein Templatefile gefunden werden wird ein Standard Template genommen.
Ansonsten bleiben die Platzhalter einfach leer innerhalb des Templates...
Ereignis zum Auslösen des Werkzeugs : New sourcecode created (anscheinend ist das noch nicht übersetzt)
Haken bei :
Warten bis zum Beenden des Werkzeugs
Werkzeug vom Hauptmenu verstecken
und fertig konfiguriert.
Als bisherige Platzhalter wären im Angebot :
%AUTHOR%, %PBVERSION%, %DATE%
hier mal ein Beispiel-Templatefile ... ich nenne es mal nsc.txt
Code: Alles auswählen
; -----------------------------------------------------------------------------
; - Project :
; - Author : George Bisonte
; - Date : %DATE%
; - PB-Version : %PBVERSION%
; -----------------------------------------------------------------------------
; Description :
; -----------------------------------------------------------------------------
; License :
; -----------------------------------------------------------------------------
EnableExplicit
;
"@TEMPLATEFILE:D:\nsc.txt"
und hier nun das Tool...
Code: Alles auswählen
;-@TOP
; ----------------------------------------------------------------------------
; -
; - File : NewSourceTemplate
; - Author : George Bisonte
; - Date : September 1st, 2012
; - PBVersion : V5.00 Beta 2
; - Windows only : IDE_SendText()
; ----------------------------------------------------------------------------
EnableExplicit
;
Procedure.s IDE_GetPureBasicCompilerVersion()
; Holt sich die Versionsnummer der PBCompiler.exe
; Original : Droopy's Lib
Protected hCompiler, Version.s = "n/a", f
Protected PBC.s = GetEnvironmentVariable("PB_TOOL_Compiler")
If FileSize(PBC) > 0
hCompiler = RunProgram(PBC, "/VERSION", "", #PB_Program_Open|#PB_Program_Read|#PB_Program_Hide)
If hCompiler
While ProgramRunning(hCompiler)
If AvailableProgramOutput(hCompiler)
Version = ReadProgramString(hCompiler)
CloseProgram(hCompiler)
If Version <> "n/a"
f = FindString(Version, "(")
If f
Version = Mid(Version, 1, f-2)
EndIf
Version = ReplaceString(Version, "PureBasic ", "V")
EndIf
ProcedureReturn Version
EndIf
Wend
EndIf
EndIf
ProcedureReturn Version
EndProcedure
Procedure IDE_SendText(buffer.s)
; Sendet Buffer.s zum aktuellen Quellcode
; Original from ts-soft
Protected hProc, mem, bW, hsci, len, pid, Result = #False
hsci = Val(GetEnvironmentVariable("PB_TOOL_Scintilla"))
If GetWindowThreadProcessId_(hsci, @pid)
hProc = OpenProcess_(#PROCESS_ALL_ACCESS, #False, pid)
EndIf
If hProc
len = Len(buffer)
mem = VirtualAllocEx_(hProc, 0, len, #MEM_RESERVE | #MEM_COMMIT, #PAGE_EXECUTE_READWRITE)
If mem
WriteProcessMemory_(hProc, mem, @buffer, len, @bW)
SendMessage_(hsci, #SCI_ADDTEXT, len, mem)
VirtualFreeEx_(hProc, mem, len, #MEM_RELEASE)
EndIf
CloseHandle_(hProc)
Result = #True
EndIf
ProcedureReturn Result
EndProcedure
Procedure NST_ReadTemplate(FileName.s, List File.s())
Protected Nr
If FileSize(FileName)>0
ClearList(File())
Nr = ReadFile(#PB_Any, FileName)
If Nr
While Not Eof(Nr)
AddElement(File())
File() = ReadString(Nr, #PB_UTF8)
Wend
CloseFile(Nr)
EndIf
Else
AddElement(File()) : File() = ";-@TOP"
AddElement(File()) : File() = "; ----------------------------------------------------------------------------"
AddElement(File()) : File() = "; -"
AddElement(File()) : File() = "; - File : "
AddElement(File()) : File() = "; - Author : %AUTHOR%"
AddElement(File()) : File() = "; - Date : %DATE%"
AddElement(File()) : File() = "; - PBVersion : %PBVERSION%"
AddElement(File()) : File() = "; -"
AddElement(File()) : File() = "; ----------------------------------------------------------------------------"
EndIf
ProcedureReturn ListSize(File())
EndProcedure
Procedure Main()
Protected PCount = CountProgramParameters()
Protected Dim PParam.s(PCount)
Protected i, pp.s, help.s
Protected Dim Replacer.s(2)
Protected TemplateFile.s = "", Author.s = ""
Protected NewList File.s()
For i = 0 To PCount -1
pp.s = ProgramParameter(i)
If UCase(Left(pp, Len("@TEMPLATEFILE:"))) = "@TEMPLATEFILE:"
TemplateFile = Mid(pp, Len("@TEMPLATEFILE:")+1)
EndIf
If UCase(Left(pp, Len("@AUTHOR:"))) = "@AUTHOR:"
Author = Mid(pp, Len("@AUTHOR:")+1)
EndIf
Next i
NST_ReadTemplate(TemplateFile.s, File())
CreateRegularExpression(0,"%DATE%")
CreateRegularExpression(1,"%AUTHOR%")
CreateRegularExpression(2,"%PBVERSION%")
Replacer(0) = FormatDate("%dd.%mm.%yyyy",Date())
Replacer(1) = Author
Replacer(2) = IDE_GetPureBasicCompilerVersion()
ForEach File()
help = File()
For i=0 To 2
If MatchRegularExpression(i, File())
help = ReplaceRegularExpression(i, File(), Replacer(i))
EndIf
Next i
File() = help
Next
help = ""
ForEach File()
help + File() + #CR$
Next
If IDE_SendText(help) = #False
MessageRequester("Fehler","Das Programm kann nicht außerhalb von PureBasic gestartet werden!")
EndIf
EndProcedure : Main()
Immer her damit