Aktuelle Zeit: 13.12.2017 05:38

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Logitech G15/G19 Shortcut Tool
BeitragVerfasst: 02.10.2017 14:25 
Offline
Benutzeravatar

Registriert: 10.09.2004 09:59
Habe mir gestern eben was zusammengebastelt, vielleicht kann es ja jemand gebrauchen.

Problem war, ich habe auf meinen Gxx Tasten meiner G19 verschiedene Shortcuts angelegt, wie Monitor rechts aus, beide Monitore an, Soundausgabe Lautsprecher, Soundausgabe Kopfhörer, ...
Leider bin ich im fortgeschrittenen Alter und konnte mir ums verrecken nicht merken, welcher Shortcut wo ist.
Bei den Monitorumschaltungen ist es nicht so schlimm, das sieht man's ja eine Sekunde später, aber beim Lautsprecherumschalten, sehe ich nix, und musste es immer erst ausprobieren.

Also dachte ich, das Keyboard hat doch nen Display, wieso kann mir das nicht zusätzlich anzeigen was ich gerade aktiviert habe.
Mit der Logitechsoftware scheint das nur möglich zu sein, wenn ich "mehrere Tasten", also ein Makro verwende, das wollte ich aber nicht.

Also kann man das Tool hier verwenden, es sitzt dann quasi zwischen der Logitechsoftware und dem eigentlichen Tool und aktiviert zusätzlich das Display.
Man kann Texte und/oder Hintergrundbilder angeben und einen Timeout, wie lange das Display angezeigt werden soll.

Genug BlaBla, hier der Code:
Code:
;/-------------------------
;| Logitech G15/G19 Shortcut Tool
;|
;| You select in Logitech Gaming Software this tool as shortcut
;| with the parameter you entered in the app (Shortcut Name),
;| then you are able to use the G15/G19 display also.
;|
;| Written in 2h, because I often forgot which shortcut I set to my G-keys
;| Now the display will inform me also.
;|
;| (c)HeX0R, completely free for personal use
;|
;/-------------------------

;Include G15_G19 Include
HTTPInclude "http://www.purebasic.fr/german/viewtopic.php?f=8&t=23463"
;No HTTP Include??
;Get it from here:
;http://www.purebasic.fr/english/viewtopic.php?f=12&t=62689


UsePNGImageDecoder()
UseJPEGImageDecoder()

Enumeration Window
   #Window_Main
EndEnumeration

Enumeration Gadget
   #Frame_Shortcuts
   #Tree_Shortcuts
   #ButtonImage_Add
   #ButtonImage_Delete
   #Frame_Settings
   #Text_ShortcutName
   #String_Shortcut_Name
   #Text_Shortcut
   #String_Shortcut
   #Button_BrowseShortcut
   #Frame_G19_Settings
   #Text_ShowPicture
   #String_ShowPicture
   #Button_BrowsePicture
   #Text_ShowText
   #Editor_ShowText
   #Text_Duration
   #Button_TestShortCut
   #Button_Apply
   #Text_Params
   #String_Params
   #Text_WorkingDir
   #String_WorkingDir
   #Button_BrowseWorkingDir
   #String_Duration
   #Text_ms
EndEnumeration

Enumeration Image
   #Img_Add
   #Img_Delete
EndEnumeration

EnableExplicit

Structure _SHORTCUTS_
   Name.s
   ShortCut.s
   Parameters.s
   WorkingDir.s
   PathToPicture.s
   Text.s
   Duration.i
EndStructure

Global NewList SC._SHORTCUTS_()
Global EditorBug.i  ;Editor fires an EventType_Change, without user input!

Macro CLEARFIELDS
   SetGadgetText(#String_Shortcut,    "")
   SetGadgetText(#String_Params,      "")
   SetGadgetText(#String_WorkingDir,  "")
   SetGadgetText(#String_ShowPicture, "")
   SetGadgetText(#String_Duration,    "1000")
   ClearGadgetItems(#Editor_ShowText)
EndMacro

Procedure DisableApplyButton()
   Protected i, j, k, State, a$
   
   i = CountGadgetItems(#Tree_Shortcuts)
   If i > -1
      i - 1
      For j = 0 To CountGadgetItems(#Tree_Shortcuts) - 1
         a$ = GetGadgetItemText(#Tree_Shortcuts, j)
         For k = 0 To CountGadgetItems(#Tree_Shortcuts) - 1
            If k <> j
               If a$ = GetGadgetItemText(#Tree_Shortcuts, k)
                  ;double found
                  State = 1
                  Break 2
               EndIf
            EndIf
         Next k
      Next j
   EndIf
   
   DisableGadget(#Button_Apply, State)
EndProcedure

Procedure DoShortCut(Name.s, TestMode = #False)
   Protected Found, ImageID, Logi, i, Color, b$, Type = #LOGI_LCD_TYPE_COLOR
   
   If TestMode
      Found = #True
   Else
      ForEach SC()
         If SC()\Name = Name
            Found = #True
            Break
         EndIf
      Next
   EndIf
   
   If Found And SC()\ShortCut
      If SC()\PathToPicture Or SC()\Text
         If LOGILCD::Init("ShortCut0R", Type)
            Logi = #True
         Else
            Type = #LOGI_LCD_TYPE_MONO
            If LOGILCD::Init("ShortCut0R", Type)
               Logi = #True
            EndIf
         EndIf
         If Logi
            If SC()\PathToPicture
               ImageID = LoadImage(#PB_Any, SC()\PathToPicture)
            EndIf
         EndIf
      EndIf
      
      RunProgram(SC()\ShortCut, SC()\Parameters, SC()\WorkingDir)
      If Logi
         If ImageID
            LOGILCD::SetBackgroundImage(ImageID, Type)
         EndIf
         For i = 0 To CountString(SC()\Text, "\n")
            b$ = StringField(SC()\Text, i + 1, "\n")
            If Left(b$, 1) = "#"
               Color = Val("$" + Mid(b$, 6, 2) + Mid(b$, 4, 2) + Mid(b$, 2, 2))
               b$    = Mid(b$, 8)
            Else
               Color = #White
            EndIf
            If i = 0
               ;title
               LOGILCD::SetTitle(b$, Color)
            Else
               LOGILCD::SetText(b$, i, Color, Type)
            EndIf
         Next i
         LOGILCD::Update()
         
         Delay(SC()\Duration)
         LOGILCD::Shutdown()
         If ImageID
            FreeImage(ImageID)
         EndIf
      EndIf
   EndIf
   
EndProcedure

Procedure DisableGadgets()
   Protected i, State
   
   i = GetGadgetState(#Tree_Shortcuts)
   If i = -1
      State = 1
   EndIf
   
   DisableGadget(#String_Params,           State)
   DisableGadget(#String_Shortcut,         State)
   DisableGadget(#String_Shortcut_Name,    State)
   DisableGadget(#String_ShowPicture,      State)
   DisableGadget(#String_WorkingDir,       State)
   DisableGadget(#Editor_ShowText,         State)
   DisableGadget(#Button_BrowsePicture,    State)
   DisableGadget(#Button_BrowseShortcut,   State)
   DisableGadget(#Button_BrowseWorkingDir, State)
   DisableGadget(#String_Duration,         State)
   DisableGadget(#ButtonImage_Delete,      State)
   DisableGadget(#Button_TestShortCut,     State)
   
EndProcedure

Procedure.s GetAppDataFolder()
   Protected Location.s = Space(#MAX_PATH)
   
   CompilerIf #PB_Compiler_OS = #PB_OS_Windows
      Protected *itemid.ITEMIDLIST
      
      If SHGetSpecialFolderLocation_ (0, #CSIDL_APPDATA, @*itemid) = #NOERROR
         If SHGetPathFromIDList_(*itemid, @Location)
            CoTaskMemFree_(*itemid)
            If Right(Location, 1) <> "\"
               Location + "\"
            EndIf
         EndIf
      EndIf
   CompilerElse
      ;-Mac OS ?
      ;I guess this is o.k., or where does MAC OS save the normal appdata?
      Location = GetHomeDirectory()
   CompilerEndIf
   
   ProcedureReturn Trim(Location)
EndProcedure

Procedure GadgetEvent_TestShortcut()
   
   DoShortCut(SC()\Name, #True)
   
EndProcedure

Procedure GadgetEvent_BrowseWorkingDir()
   Protected a$, i, *SC._SHORTCUTS_
   
   a$ = PathRequester("Select Working Dir", GetGadgetText(#String_WorkingDir))
   SetGadgetText(#String_WorkingDir, a$)
   i = GetGadgetState(#Tree_Shortcuts)
   If i > -1
      *SC = GetGadgetItemData(#Tree_Shortcuts, i)
      *SC\WorkingDir = a$
   EndIf
EndProcedure

Procedure GadgetEvent_BrowsePicture()
   Protected a$, i, *SC._SHORTCUTS_
   
   a$ = OpenFileRequester("Select Picture", GetGadgetText(#String_ShowPicture), "Pictures|*.png;*.jpg;*.jpeg;*.bmp|All Files (*.*)|*.*", 0)
   SetGadgetText(#String_ShowPicture, a$)
   i = GetGadgetState(#Tree_Shortcuts)
   If i > -1
      *SC = GetGadgetItemData(#Tree_Shortcuts, i)
      *SC\PathToPicture = a$
   EndIf
EndProcedure

Procedure GadgetEvent_BrowseShortCut()
   Protected a$, i, *SC._SHORTCUTS_
   
   a$ = OpenFileRequester("Select Executable", GetGadgetText(#String_Shortcut), "Executables (*.exe)|*.exe|All Files (*.*)|*.*", 0)
   SetGadgetText(#String_Shortcut, a$)
   i = GetGadgetState(#Tree_Shortcuts)
   If i > -1
      *SC = GetGadgetItemData(#Tree_Shortcuts, i)
      *SC\ShortCut = a$
   EndIf
EndProcedure

Procedure GadgetEvent_AddShortCut()
   Protected a$, i, k
   
   a$ = "NewShortCut"
   i  = 0
   k  = #True
   While k
      k = #False
      ForEach SC()
         If SC()\Name = a$
            i + 1
            a$ = "NewShortCut_" + Str(i)
            k  = #True
            Break
         EndIf
      Next
   Wend
   AddElement(SC())
   SC()\Name          = a$
   SC()\Duration      = 1000
   SC()\Parameters    = ""
   SC()\PathToPicture = ""
   SC()\ShortCut      = ""
   SC()\Text          = ""
   SC()\WorkingDir    = ""
   i = CountGadgetItems(#Tree_Shortcuts)
   AddGadgetItem(#Tree_Shortcuts, -1, a$)
   SetGadgetItemData(#Tree_Shortcuts, i, @SC())
   
   SetGadgetState(#Tree_Shortcuts, i)
   SetGadgetText(#String_Shortcut_Name, a$)
   CLEARFIELDS
   DisableGadgets()
   
EndProcedure

Procedure GadgetEvent_Tree()
   Protected i, j, *SC._SHORTCUTS_
   
   EditorBug = #True
   i = GetGadgetState(#Tree_Shortcuts)
   If i = -1
      CLEARFIELDS
      SetGadgetText(#String_Shortcut_Name, "")
   Else
      *SC = GetGadgetItemData(#Tree_Shortcuts, i)
      ChangeCurrentElement(SC(), *SC)
      SetGadgetText(#String_Params,        *SC\Parameters)
      SetGadgetText(#String_Shortcut,      *SC\ShortCut)
      SetGadgetText(#String_Shortcut_Name, *SC\Name)
      SetGadgetText(#String_ShowPicture,   *SC\PathToPicture)
      SetGadgetText(#String_WorkingDir,    *SC\WorkingDir)
      ClearGadgetItems(#Editor_ShowText)
      
      For j = 0 To CountString(*SC\Text, "\n")
         AddGadgetItem(#Editor_ShowText, -1, StringField(*SC\Text, j + 1, "\n"))
      Next j
      SetGadgetText(#String_Duration, Str(*SC\Duration))
   EndIf
   
   DisableGadgets()
   
   EditorBug = #False
EndProcedure

Procedure GadgetEvent_DelShortCut()
   Protected a$, i
   
   i = GetGadgetState(#Tree_Shortcuts)
   If i > -1
      ChangeCurrentElement(SC(), GetGadgetItemData(#Tree_Shortcuts, i))
      DeleteElement(SC())
      RemoveGadgetItem(#Tree_Shortcuts, i)
      If CountGadgetItems(#Tree_Shortcuts) > 0
         SetGadgetState(#Tree_Shortcuts, 0)
      EndIf
      GadgetEvent_Tree()
   EndIf
   
EndProcedure

Procedure GadgetEvent_Apply()
   
   If FileSize(GetAppDataFolder() + ".g19scd/") <> -2
      CreateDirectory(GetAppDataFolder() + ".g19scd/")
   EndIf
   If ListSize(SC()) > 0
      If CreateJSON(0)
         InsertJSONList(JSONValue(0), SC())
         SaveJSON(0, GetAppDataFolder() + ".g19scd/g19scd.json", #PB_JSON_PrettyPrint)
         FreeJSON(0)
      EndIf
   EndIf
   
EndProcedure

Procedure GadgetEvent_StringChanged()
   Protected i, j, *SC._SHORTCUTS_
   
   If EventGadget() = #Editor_ShowText And EditorBug
      ProcedureReturn
   EndIf
   
   i  = GetGadgetState(#Tree_Shortcuts)
   *SC = GetGadgetItemData(#Tree_Shortcuts, i)
   *SC\PathToPicture = GetGadgetText(#String_ShowPicture)
   *SC\Duration      = Val(GetGadgetText(#String_Duration))
   If *SC\Duration < 0
      *SC\Duration = 1000
   EndIf
   *SC\Parameters = GetGadgetText(#String_Params)
   *SC\WorkingDir = GetGadgetText(#String_WorkingDir)
   *SC\ShortCut   = GetGadgetText(#String_Shortcut)
   *SC\Text       = ""
   For j = 0 To CountGadgetItems(#Editor_ShowText) - 1
      *SC\Text + GetGadgetItemText(#Editor_ShowText, j) + "\n"
   Next j
   *SC\Text = Left(*SC\Text, Len(*SC\Text) - 2)
   
EndProcedure


Procedure GadgetEvent_ChangeName()
   Protected a$, i, *SC._SHORTCUTS_
   
   a$ = GetGadgetText(#String_Shortcut_Name)
   i  = GetGadgetState(#Tree_Shortcuts)
   SetGadgetItemText(#Tree_Shortcuts, i, a$)
   *SC      = GetGadgetItemData(#Tree_Shortcuts, i)
   *SC\Name = a$
   DisableApplyButton()
   
EndProcedure

Procedure main()
   Protected a$, i
   
   If FileSize(GetAppDataFolder() + ".g19scd/g19scd.json") > 0
      If LoadJSON(0, GetAppDataFolder() + ".g19scd/g19scd.json")
         ExtractJSONList(JSONValue(0), SC())
         FreeJSON(0)
      EndIf
   EndIf
   
   a$ = ProgramParameter()
   If a$
      ;shortcut mode!
      DoShortCut(a$)
   Else
      
      CatchImage(#Img_Add,    ?Img_Add)
      CatchImage(#Img_Delete, ?Img_Delete)
      OpenWindow(#Window_Main, 0, 0, 600, 480, "G15/G19 ShortCut Tool", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
      FrameGadget(#Frame_Shortcuts, 5, 5, 190, 435, "Shortcuts")
      TreeGadget(#Tree_Shortcuts, 10, 25, 180, 385, #PB_Tree_AlwaysShowSelection | #PB_Tree_NoLines | #PB_Tree_NoButtons)
      ButtonImageGadget(#ButtonImage_Add, 10, 415, 20, 20, ImageID(#Img_Add))
      ButtonImageGadget(#ButtonImage_Delete, 169, 415, 20, 20, ImageID(#Img_Delete))
      FrameGadget(#Frame_Settings, 205, 5, 390, 435, "Shortcut Settings")
      TextGadget(#Text_ShortcutName, 215, 40, 90, 25, "Name:")
      StringGadget(#String_Shortcut_Name, 310, 30, 280, 30, "")
      TextGadget(#Text_Shortcut, 215, 75, 90, 25, "Shortcut:")
      StringGadget(#String_Shortcut, 310, 65, 240, 30, "")
      ButtonGadget(#Button_BrowseShortcut, 555, 65, 35, 30, "...")
      FrameGadget(#Frame_G19_Settings, 210, 175, 380, 260, "G15/G19 Settings")
      TextGadget(#Text_ShowPicture, 215, 205, 105, 25, "Show Picture:")
      StringGadget(#String_ShowPicture, 325, 195, 220, 30, "")
      ButtonGadget(#Button_BrowsePicture, 550, 195, 35, 30, "...")
      TextGadget(#Text_ShowText, 215, 235, 105, 25, "Show Text:")
      EditorGadget(#Editor_ShowText, 325, 230, 260, 125)
      TextGadget(#Text_Duration, 215, 365, 100, 25, "Duration:")
      StringGadget(#String_Duration, 325, 360, 220, 30, "")
      ButtonGadget(#Button_TestShortCut, 325, 395, 150, 30, "Test Shortcut")
      TextGadget(#Text_Params, 215, 105, 90, 25, "Parameter:")
      StringGadget(#String_Params, 310, 100, 280, 30, "")
      TextGadget(#Text_WorkingDir, 215, 140, 90, 25, "Working Dir:")
      StringGadget(#String_WorkingDir, 310, 135, 240, 30, "")
      ButtonGadget(#Button_BrowseWorkingDir, 555, 135, 35, 30, "...")
      TextGadget(#Text_ms, 550, 360, 35, 25, "ms")
      ButtonGadget(#Button_Apply, 220, 445, 125, 30, "Save Settings", #PB_Button_Default)
      
      GadgetToolTip(#String_Shortcut_Name,      "Initialize shortcut via '" + GetFilePart(ProgramFilename()) + " NAME' (don't use blanks here!)")
      GadgetToolTip(#String_Duration,           "Duration (in ms) of the G15/G19 showing the message on the display")
      GadgetToolTip(#String_Params,             "Enter parameters for the shortcut")
      GadgetToolTip(#String_ShowPicture,        "Select a picture as background image for the G15/G19 Display")
      GadgetToolTip(#String_WorkingDir,         "Enter working directory for the shortcut (if needed)")
      GadgetToolTip(#Editor_ShowText,           "First line will be the title (leave empty if you don't need a title), add html colors at the beginning of a line, e.g. black text: #000000Test")
      GadgetToolTip(#Button_BrowsePicture,      "Browse for a picture")
      GadgetToolTip(#Button_BrowseShortcut,     "Browse for the application you want to start")
      GadgetToolTip(#Button_BrowseWorkingDir,   "Browse for the working directory")
      GadgetToolTip(#Button_TestShortCut,       "Test your entered data")
      GadgetToolTip(#ButtonImage_Add,           "Add a new shortcut")
      GadgetToolTip(#ButtonImage_Delete,        "Delete selected shortcut")
      GadgetToolTip(#Tree_Shortcuts,            "Here are all of your shortcuts")

      BindGadgetEvent(#ButtonImage_Add,         @GadgetEvent_AddShortCut())
      BindGadgetEvent(#ButtonImage_Delete,      @GadgetEvent_DelShortCut())
      BindGadgetEvent(#Button_Apply,            @GadgetEvent_Apply())
      BindGadgetEvent(#String_Shortcut_Name,    @GadgetEvent_ChangeName(),    #PB_EventType_Change)
      BindGadgetEvent(#String_Shortcut,         @GadgetEvent_StringChanged(), #PB_EventType_Change)
      BindGadgetEvent(#String_ShowPicture,      @GadgetEvent_StringChanged(), #PB_EventType_Change)
      BindGadgetEvent(#String_Duration,         @GadgetEvent_StringChanged(), #PB_EventType_Change)
      BindGadgetEvent(#Editor_ShowText,         @GadgetEvent_StringChanged(), #PB_EventType_Change)
      BindGadgetEvent(#String_Params,           @GadgetEvent_StringChanged(), #PB_EventType_Change)
      BindGadgetEvent(#String_WorkingDir,       @GadgetEvent_StringChanged(), #PB_EventType_Change)
      BindGadgetEvent(#Tree_Shortcuts,          @GadgetEvent_Tree(),          #PB_EventType_Change)
      BindGadgetEvent(#Button_BrowseWorkingDir, @GadgetEvent_BrowseWorkingDir())
      BindGadgetEvent(#Button_BrowsePicture,    @GadgetEvent_BrowsePicture())
      BindGadgetEvent(#Button_BrowseShortcut,   @GadgetEvent_BrowseShortCut())
      BindGadgetEvent(#Button_TestShortCut,     @GadgetEvent_TestShortcut())
      
      i = 0
      ForEach SC()
         AddGadgetItem(#Tree_Shortcuts, -1, SC()\Name)
         SetGadgetItemData(#Tree_Shortcuts, i, @SC())
         i + 1
      Next
      
      DisableGadgets()
      
      Repeat
      Until WaitWindowEvent() = #PB_Event_CloseWindow
      
   EndIf
   
   
EndProcedure

main()

End
DataSection
   ;Both images from:
   ;http://www.famfamfam.com/lab/icons/silk/
   Img_Add:
   Data.l $474E5089, $0A1A0A0D, $0D000000, $52444849, $10000000, $10000000, $00000608, $FFF31F00
   Data.l $00000061, $4D416704, $AF000041, $8A0537C8, $000000E9, $58457419, $666F5374, $72617774
   Data.l $64410065, $2065626F, $67616D49, $61655265, $C9717964, $00003C65, $44496F02, $CB385441
   Data.l $4BEB93A5, $87186193, $2FB65BFD, $86A48305, $29A82859, $6F285825, $8A8A6CD9, $7396DB4E
   Data.l $F6CE8A6B, $BA9D2E6E, $9D2D03CD, $B5150F13, $A468DBA1, $C30F383B, $D4E26603, $EBEA45D2
   Data.l $228DA250, $AFC36A08, $4D15DEBF, $1E88CB47, $E0797DF8, $BEE79EBA, $0024EFB9, $DF93FF49
   Data.l $75D3742E, $848F0ECC, $A889756C, $584109E6, $DC3AA2FE, $9282BCF0, $D148CB5A, $44F33168
   Data.l $4A5A6E81, $424A4FB4, $B17BD6CF, $FF845A1A, $3FD606F3, $603260AD, $0353D287, $E21389BE
   Data.l $244EB93D, $C584FC14, $3B3DE991, $61EDBE0E, $260B83F6, $778F106A, $9BEFB00C, $0E71F4B0
   Data.l $4A1905DA, $DC23F247, $4E223CC1, $32929DA0, $DEE83868, $EBEF60B5, $F5B78636, $81D6B878
   Data.l $0C2B5F6E, $FCFA1D7E, $B66F745A, $07607DC0, $D0A211E9, $D0582578, $0988CD9B, $BFD15868
   Data.l $2FBBC6AC, $7D8BF49B, $42D2DDE8, $5F894AF3, $8326BD47, $C508517C, $FB9C2D72, $C91CDC36
   Data.l $0C83DE41, $E2D04C45, $015CA1AC, $3355FD1B, $6855573A, $3643915B, $04098A2B, $661A2E36
   Data.l $2A9D20CA, $1D1BC0C6, $B8CD4BF4, $C5469DDC, $FE718A04, $0BBDF7A1, $34756FFD, $1D3F84DC
   Data.l $141164F1, $FC587CF3, $A5D2C8C3, $4D04C61E, $44E1DE76, $0DDA0C60, $FD5F2A12, $5BD20289
   Data.l $087FAB0D, $23EC1DE9, $9CADBD41, $30B4FA32, $F4D0696C, $7CF10852, $1BD67805, $77346071
   Data.l $FBF45C3D, $DEF2E8D4, $F27505C3, $B1E20951, $2B6DC512, $02C04701, $24257CD9, $351FD2DE
   Data.l $9C88171F, $8BB9D41C, $E335D8E1, $D82A4F52, $4D4759F7, $188B9A14, $830B4F55, $718047A4
   Data.l $B0D6346A, $8CEB5828, $31730A26, $1DC263B1, $1C28ADCB, $669E564C, $F9520DC4, $64A202A3
   Data.l $D1A46AE8, $2D270951, $41DAFA31, $3E4154CE, $6AE30955, $2C341C1B, $56C070B4, $4C3422B1
   Data.l $CE651C24, $18412E40, $03F94272, $2059E899, $806D7E61, $8D00C379, $5D5911B7, $74385129
   Data.l $4CB84E1C, $CC99F4D7, $32749EDC, $9522F3BB, $A70949A1, $9F0D9FB5, $9D433D6F, $64C8B153
   Data.l $5FE629E5, $F35FF1B7, $CB46411D, $D328001F, $000000C1, $4E454900, $6042AE44
   Data.b $82
   Img_Delete:
   Data.l $474E5089, $0A1A0A0D, $0D000000, $52444849, $10000000, $10000000, $00000608, $FFF31F00
   Data.l $00000061, $4D416704, $AF000041, $8A0537C8, $000000E9, $58457419, $666F5374, $72617774
   Data.l $64410065, $2065626F, $67616D49, $61655265, $C9717964, $00003C65, $44495D02, $CB385441
   Data.l $4BFB93A5, $C7186153, $1FB65BFD, $6E8904A2, $50518484, $7732F398, $A6DCDAD6, $8F4CB3CE
   Data.l $69622C5B, $9A619D8E, $5CC58D41, $A5A843F8, $5FCAD576, $946C4D32, $D76A465A, $F2B1E5A1
   Data.l $6A4D4ED2, $6BB39E6D, $60B9B7CA, $7A232E26, $CBCBFBE1, $3CBCF9FB, $0293CF0F, $B27FE520
   Data.l $AF5662E6, $1550CE17, $1954F7E6, $B925A533, $7B86AD49, $7199AA47, $95766952, $0AEB85C8
   Data.l $E27A74E6, $DFB14523, $0784361C, $19BC889D, $08646445, $CC0EDDFC, $AAF14A1A, $AB9F6090
   Data.l $C15244C5, $4E5D3C32, $3BB70BF1, $16F534B0, $883BBED1, $6D11DBB6, $371F873E, $DC38B09B
   Data.l $80C98F07, $FF366551, $AC499E4C, $74E8CC12, $E6EC1882, $8963B7AE, $F17A2171, $0B767C0C
   Data.l $846AB6FC, $6910582F, $9EB611A0, $0DDEF840, $31251DCC, $FB9F687C, $208F6CB1, $F4C18821
   Data.l $8B19AD7C, $8FF8B1AE, $EF0D0721, $75822359, $4EE155BA, $5D770892, $0CBCCBC1, $E833480C
   Data.l $7503E084, $5D740984, $19B3B445, $BE256B3E, $66934916, $6F0492A1, $52C781AB, $3A448785
   Data.l $E5301093, $7EE460DA, $0B0EA217, $F80DA77C, $7228F1D3, $E10AA5E0, $33846E6F, $2130476F
   Data.l $828B2498, $8456CEA1, $9E080DEB, $30575B2A, $BF82AA5F, $E2FD11A9, $89822B2D, $B5E31512
   Data.l $A76420D6, $C7571DC1, $328D261F, $135ABE0F, $F4464D66, $4A56D289, $69CB1570, $B0422646
   Data.l $AD3E0DB3, $C952DE0C, $6795981A, $20902D83, $43097ED0, $CDE86DE2, $C4D2B4DA, $C15245D7
   Data.l $9EE10D0B, $7020D0AB, $B0DE35AB, $17F89579, $2B05C8A8, $3132C18B, $8C16B6F8, $61974B17
   Data.l $A368B777, $8D20D560, $2310E415, $F4FC038A, $D7021561, $9EBDF15A, $E2548786, $6F015AB3
   Data.l $E5FC199D, $F3A84C16, $CA9593D1, $E92260C7, $EF953F28, $DC1C9E27, $764A8ECB, $11B54BE1
   Data.l $F1F386DE, $863AAA7C, $975B3947, $3877F661, $4A0D32E9, $C4070B77, $B12766E9, $BF907993
   Data.l $6D17EB9D, $D3737AE6, $54EC9E98, $06E67773, $F1B75FE1, $1D13F35F, $49B9CED2, $00FE1B72
   Data.l $49000000, $AE444E45
   Data.b $42, $60, $82
EndDataSection

_________________
Link tot?
Ändere h3x0r.ath.cx in hex0rs.coderbu.de und alles wird gut.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Logitech G15/G19 Shortcut Tool
BeitragVerfasst: 02.10.2017 19:32 
Offline
Benutzeravatar

Registriert: 01.04.2007 20:18
Und an dieser Stelle muss ich wieder dein HTTP_Include loben :allright:

_________________
PureBasic 5.45 LTS / 5.61 (Windows x86/x64) | Windows10 Pro x64 | Z87-PLUS | i7 4770k | 32GB RAM | iChill GeForce GTX 980 X4 Ultra | HAF XF Evo​​


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye