Seite 2 von 2

Re: Sammelliste für PureBasic Werkzeuge

Verfasst: 07.02.2012 17:46
von WPö
Didelphodon hat geschrieben:Hinzufügungsvorschlag
Hallo, Didel!

Sei bitte so nett und setze einen Querverweis dazu, damit man nicht erst das ganze Netz umgraben muß, um Deine Projekte zu sehen. Kurzbeschreibung, Versionierung, Zielplattform (wenn nicht unabhängig) usw. als Zusatzinfos wären sicherlich auch nicht schlecht.

Gruß - WPö

Re: Sammelliste für PureBasic Werkzeuge

Verfasst: 08.02.2012 08:56
von Danilo
  • VS2010 Help Integration
    Beschreibung: Integration des neueren 'Microsoft Help System 1.x' in die PureBasic IDE.
    Dieses neue Hilfesystem wird seit VisualStudio 2010 und auch im aktuellen Microsoft Platform SDK 7.1 verwendet.
    Dieses kleine IDE-Werkzeug öffnet dieses neue, lokal installierte Hilfesystem für das Wort unter dem Cursor in der PB-IDE.
    Bei API-Funktionen mit '_' am Ende wird versucht gleich die entsprechende Hilfeseite für diese Funktion zu öffnen,
    andernfalls wird die Hilfe nach dem entsprechenden Begriff durchsucht (z.B. bei API-Konstanten und -Strukturen).
    Geöffnet wird der Default-Browser für das 'Microsoft Help System 1.x'. In der ersten Version war das der im System
    eingestellte Internetbrowser, seit VisualStudio 2010 SP1 liefert Microsoft einen eigenen Hilfebrowser dafür mit.
    Ich empfehle dafür H3Viewer zu benutzen und als Standard einzustellen.
    Wenn man als Argument -search übergibt, wird immer im Suchmodus geöffnet, auch für Funktionen die mit '_' enden
    und wo die Hilfeseite bekannt ist.
    Ich habe bei mir für das Tool ALT+F1 ohne Argumente eingestellt und nochmal dazu ALT+F2 mit der -search Option.

    Voraussetzung: Installiertes 'Microsoft Help System 1.x', z.B. durch VisualStudio 2010, VisualStudio 2010 Express, MS Platform SDK 7.1, o.ä.

    Entwickler: Danilo

    Link zum Thread: [Editor Tool] VS2010 Help Integration

    Download: Open_VS2010_Help.zip
Bild

Re: Sammelliste für PureBasic Werkzeuge

Verfasst: 17.02.2012 17:06
von ts-soft
Kleine Drop-GUI, zum konvertieren von binären Dateien
in DataSection, also ähnlich dem Tool von STARGÅTE,
es muß aber nicht als IDE Tool konfiguriert werden und
ist Crossplattform (Linux, MacOS, Windows)

Thread im engl Forum: http://www.purebasic.fr/english/viewtop ... 83#p374183


Source-Download: http://dl.dropbox.com/u/3086026/Bin2Data.pb

Bild

Re: Sammelliste für PureBasic Werkzeuge

Verfasst: 17.02.2012 17:31
von rolaf
Hey MrSoft cool 8) :allright:

Re: Sammelliste für PureBasic Werkzeuge

Verfasst: 27.02.2012 14:47
von Didelphodon
WPö hat geschrieben:
Didelphodon hat geschrieben:Hinzufügungsvorschlag
Hallo, Didel!

Sei bitte so nett und setze einen Querverweis dazu, damit man nicht erst das ganze Netz umgraben muß, um Deine Projekte zu sehen. Kurzbeschreibung, Versionierung, Zielplattform (wenn nicht unabhängig) usw. als Zusatzinfos wären sicherlich auch nicht schlecht.

Gruß - WPö
Ja, sorry, hatte nicht mehr Zeit als für die kurze Anmerkung.
Ich werd schauen, dass ich nächste Woche mal Zeit finde.
Bis danne.

LG Didel.

Re: Sammelliste für PureBasic Werkzeuge

Verfasst: 11.11.2020 23:07
von STARGÅTE
Auch diese Thema muss ich mal wieder aus Archiv-Kiste ziehen um ein paar Updates zu geben.
Hier mal eine aktuelle Version eines meiner wichtigsten Werkzeuge:

Schlüsselwort schließen oder Zwischen-Schlüsselwort einfügen

Typische Werkzeugeinstellungen für Schlüsselwort schließen (z.B. EndIf zum If):
Argumente: "%TEMPFILE" 0
Tastenkürzel: ALT + EINGABE
[x] Warte bis zum Beenden des Werkzeugs

Typische Werkzeugeinstellungen für Zwischen-Schlüsselwort einfügen (z.B. Case zum Select):
Argumente: "%TEMPFILE" 1
Tastenkürzel: UMSCHALT + EINGABE
[x] Warte bis zum Beenden des Werkzeugs

Quellcode: (! Benötigt außerdem die SyntaxHilighting.lib und SyntaxHilighting.dll aus PureBasic\SDK\Syntax Highlighting !)

Code: Alles auswählen

Enumeration
	#SYNTAX_Text
	#SYNTAX_Keyword  
	#SYNTAX_Comment
	#SYNTAX_Constant
	#SYNTAX_String
	#SYNTAX_Function
	#SYNTAX_Asm
	#SYNTAX_Operator
	#SYNTAX_Structure
	#SYNTAX_Number
	#SYNTAX_Pointer
	#SYNTAX_Separator
	#SYNTAX_Label  
EndEnumeration

Prototype SyntaxHighlightCallback(*Position, Length.i, Color.i)

Import "SyntaxHilighting.lib"
	SyntaxHighlight(*Buffer, Length.i, Callback.SyntaxHighlightCallback, ASM.i)
EndImport

Global NewList *Keyword.String()
Global NewMap Keyword.String()
Global NewMap CloseKeyword.i()
Global NewMap BetweenKeyword.String()



Procedure GetProcessFromWindow(WindowID.i)
	Protected ProcessID.i
	If GetWindowThreadProcessId_(WindowID, @ProcessID)
		ProcedureReturn OpenProcess_(#PROCESS_ALL_ACCESS, #False, ProcessID)
	EndIf
EndProcedure

Procedure SendText(Text.s)
	Protected ScintillaID.i = Val(GetEnvironmentVariable("PB_TOOL_Scintilla"))
	Protected ProcessID.i = GetProcessFromWindow(ScintillaID)
	Protected Length.i, *MemoryID, *Buffer, Format.i
	If ProcessID
		Select SendMessage_(ScintillaID, #SCI_GETCODEPAGE, #Null, #Null)
			Case 0     : Format = #PB_Ascii
			Case 65001 : Format = #PB_UTF8
		EndSelect
		Length.i = StringByteLength(Text, Format)
		*Buffer = AllocateMemory(Length+SizeOf(Character))
		If *Buffer
			PokeS(*Buffer, Text, #PB_Default, Format)
			*MemoryID = VirtualAllocEx_(ProcessID, #Null, Length, #MEM_RESERVE|#MEM_COMMIT, #PAGE_EXECUTE_READWRITE)
			If *MemoryID
				WriteProcessMemory_(ProcessID, *MemoryID, *Buffer, Length, #Null)
				SendMessage_(ScintillaID, #SCI_ADDTEXT, Length, *MemoryID)
				VirtualFreeEx_(ProcessID, *MemoryID, Length, #MEM_RELEASE)
			EndIf
			FreeMemory(*Buffer)
		EndIf
		CloseHandle_(ProcessID)
	EndIf
EndProcedure

Procedure Callback(*Position, Length.i, Color.i)
	Protected Name.s
	Select Color
		Case #SYNTAX_Keyword
			Name = RemoveString(RemoveString(PeekS(*Position, Length, #PB_UTF8|#PB_ByteLength), " "), #TAB$)
			If FindMapElement(Keyword(), Name)
				AddElement(*Keyword())
				*Keyword() = @Keyword()
			ElseIf FindMapElement(CloseKeyword(), Name)
				If LastElement(*Keyword())
					DeleteElement(*Keyword())
				EndIf
			EndIf
	EndSelect
EndProcedure



; Definition of corresponding close-keywords
Keyword("CompilerIf")\s        = "CompilerEndIf"
Keyword("CompilerSelect")\s    = "CompilerEndSelect"
Keyword("DataSection")\s       = "EndDataSection"
Keyword("DeclareModule")\s     = "EndDeclareModule"
Keyword("EnableASM")\s         = "DisableASM"
Keyword("EnableDebugger")\s    = "DisableDebugger"
Keyword("EnableExplicit")\s    = "DisableExplicit"
Keyword("Enumeration")\s       = "EndEnumeration"
Keyword("EnumerationBinary")\s = "EndEnumeration"
Keyword("For")\s               = "Next"
Keyword("ForEach")\s           = "Next"
Keyword("If")\s                = "EndIf"
Keyword("Import")\s            = "EndImport"
Keyword("ImportC")\s           = "EndImport"
Keyword("Interface")\s         = "EndInterface"
Keyword("Macro")\s             = "EndMacro"
Keyword("Module")\s            = "EndModule"
Keyword("Procedure")\s         = "EndProcedure"
Keyword("ProcedureC")\s        = "EndProcedure"
Keyword("ProcedureDLL")\s      = "EndProcedure"
Keyword("ProcedureCDLL")\s     = "EndProcedure"
Keyword("Repeat")\s            = "ForEver"
Keyword("Select")\s            = "EndSelect"
Keyword("Structure")\s         = "EndStructure"
Keyword("StructureUnion")\s    = "EndStructureUnion"
Keyword("With")\s              = "EndWith"
Keyword("While")\s             = "Wend"

; Definition of corresponding in-between-keywords
BetweenKeyword("CompilerEndIf")\s     = "CompilerElse"
BetweenKeyword("CompilerEndSelect")\s = "CompilerCase"
BetweenKeyword("EndIf")\s             = "Else"
BetweenKeyword("EndSelect")\s         = "Case"
BetweenKeyword("EndProcedure")\s      = "ProcedureReturn"
BetweenKeyword("ForEver")\s           = "Until"
BetweenKeyword("Next")\s              = "Break"
BetweenKeyword("Wend")\s              = "Break"

; Definition of close-keywords
CloseKeyword("CompilerEndIf")     = #True
CloseKeyword("CompilerEndSelect") = #True
CloseKeyword("DisableASM")        = #True
CloseKeyword("DisableDebugger")   = #True
CloseKeyword("DisableExplicit")   = #True
CloseKeyword("EndDataSection")    = #True
CloseKeyword("EndEnumeration")    = #True
CloseKeyword("Next")              = #True
CloseKeyword("EndIf")             = #True
CloseKeyword("EndImport")         = #True
CloseKeyword("EndInterface")      = #True
CloseKeyword("EndMacro")          = #True
CloseKeyword("EndProcedure")      = #True
CloseKeyword("Until")             = #True
CloseKeyword("ForEver")           = #True
CloseKeyword("EndDeclareModule")  = #True
CloseKeyword("EndModule")         = #True
CloseKeyword("EndSelect")         = #True
CloseKeyword("EndStructure")      = #True
CloseKeyword("EndStructureUnion") = #True
CloseKeyword("EndWith")           = #True
CloseKeyword("Wend")              = #True



Enumeration
	#File
EndEnumeration

Define String.s
Define FileName.s = ProgramParameter(0)
Define Flag.i = Val(ProgramParameter(1))
Define Selection.s = GetEnvironmentVariable("PB_TOOL_Selection")
Define Row.i = Val(StringField(Selection, 1, "x"))
Define Column.i = Val(StringField(Selection, 2, "x"))
Define Line.i = 1
Define Format.i

If ReadFile(#File, FileName)
	Select ReadStringFormat(#File)
		Case #PB_Ascii   : Format = #PB_Ascii
		Case #PB_UTF8    : Format = #PB_UTF8
		Case #PB_Unicode : Format = #PB_Unicode
	EndSelect
	While Line < Row
		String = ReadString(#File, Format)
		*Buffer = UTF8(String)
		SyntaxHighlight(*Buffer, StringByteLength(String, #PB_UTF8), @Callback(), #False)
		FreeMemory(*Buffer)
		Line + 1 
	Wend
	String = ReadString(#File, Format)
	*Buffer = UTF8(String)
	SyntaxHighlight(*Buffer, StringByteLength(Left(String, Column-1), #PB_UTF8), @Callback(), #False)
	FreeMemory(*Buffer)
	If LastElement(*Keyword())
		If Flag
			SendText(BetweenKeyword(*Keyword()\s)\s)
		Else
			SendText(*Keyword()\s)
		EndIf
	EndIf
	CloseFile(#File)
EndIf

Re: Sammelliste für PureBasic Werkzeuge

Verfasst: 12.11.2020 21:11
von HeX0R
Lustig wie solche, eigentlich nützlichen Beiträge immer wieder in der Versenkung verschwinden.
Leider sind (mal wieder) einige der Tools nicht mehr erreichbar.
Selbst mein History Viewer, aber auch nur, weil es den alten Link nicht mehr gibt.
Hier gibt's das Ding noch: https://hex0rs.coderbu.de/de/node/12


Ausserdem sollte mein DialogDesign0R hier auch Erwähnung finden.
Beitrag: viewtopic.php?f=11&t=30657
Link: https://hex0rs.coderbu.de/de/dialogdesign0r