Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

Grundgerüst für Autohotkey Projekte


  • Please log in to reply
12 replies to this topic
Alibaba
  • Members
  • 435 posts
  • Last active: Nov 19 2014 04:21 PM
  • Joined: 01 Nov 2012

Script aus altem Forum übernommen: Originalthread von bichlepa

Dieses Tool bietet die Möglichkeit, ein Autohotkey Projekt mit allen für eine Veröffentlichung benötigten Features, wie Lizenzbedingungen, Installer und Update Checker auszustatten. Ein eigenes System zur Dateiauswahl macht es möglich, schnell alle einzubindenden Dateien/Ordner auszuwählen.

In diesem Thread kann die gesamte Weiterentwicklung mitverfolgt werden, die neueste Version ist immer hier verfügbar:

Download Exe
Download Sourcecode

(Die Links wurden ebenfalls nur aus dem alten Thread übernommen, für ihre Verfügbarkeit ist bichlepa verantwortlich.)

Nach Updates meldet sich das Programm jedoch automatisch, es ist also nur ein Download nötig.

 

 

 


Changelog:

 

2.1:

v2.01.01 - Erste "stabile" GUI-Version

 

2.2:

v2.02.01 - Übernahme aus altem Forum

 

2.3:

v2.03.01 - GUI Übersetzung, Translation Tool

v2.03.02 - Hilfe überarbeitet

v2.03.03 - Changelog im Installer, Modifizierung für weitere Änderungen

v2.03.04 - Weitere Modifizierungen

v2.03.05 - Bugfix (Lizenz)


Find the recent autohotkey version here: ahkscript.org


bichlepa
  • Members
  • 62 posts
  • Last active: Dec 17 2016 08:45 PM
  • Joined: 04 Jul 2011

Hiermit melde ich mich als "Erfinder" icon_mrgreen.gif des Grundgerüsts.

Ich selbst arbeite gelegentlich daran, finde aber selten Zeit und habe für manche Verbesserungen nicht genügend Kenntnisse.
Folgende Weiterentwicklungen wären meiner Meinung nach sinnvoll:

  • Installer in verschiedenen Sprachen. Auch mehrsprachig.
  • "Richtige" Installation samt System-Einträgen und Deinstallationsdatei. (Derzeit ist nur portable Installation möglich)
  • Einbindung weiterer Lizenzbedingungen. (Derzeit nur GPL)

Ich möchte nochmal darauf hinweisen, dass jede Hilfe an der Weiterentwicklung von Grundgerüst erwünscht ist, auch solche Verbesserungen, die nicht auf der Liste stehen. Modifizierte Code-Schnipsel bitte gut durchkommentieren und an mich senden.

Großes Dankeschön für die Mithilfe geht an:

  • Alibaba


bichlepa
  • Members
  • 62 posts
  • Last active: Dec 17 2016 08:45 PM
  • Joined: 04 Jul 2011
Ich habe daran weitergearbeitet.
Die GUI kann nun übersetzt werden. Auf Englisch habe ich bereits übersetzt. Weitere Sprachen können leicht mithilfe von "Traslation Tool" hinzugefügt, und bestehende bearbeitet werden.

Posted Image

Alibaba
  • Members
  • 435 posts
  • Last active: Nov 19 2014 04:21 PM
  • Joined: 01 Nov 2012
Angepasste Hilfe für v2.3:
Hilfe.rar

Wir sollten mal rausfinden was eine "richtige" Windows-Installation erst ausmacht. "Richtig" im Sinne von "In der Systemsteuerung unter Programme erscheinend, möglichst mit Deinstallation."

Find the recent autohotkey version here: ahkscript.org


ripper121
  • Members
  • 114 posts
  • Last active: Jan 16 2014 11:06 AM
  • Joined: 01 Nov 2012
Wollt ihr PUR AHK lösung weil ansonsten gibts ja schon software für sowas

Ripper121 aka Ripp3r]D3[
Deutsches (original) Forum: Seit: 11.11.2007 Beiträge: 1912
ripper.gif
Top-10 German


ripper121
  • Members
  • 114 posts
  • Last active: Jan 16 2014 11:06 AM
  • Joined: 01 Nov 2012
kannst du ein Programm splitt machen in welchen nur die Update funktion ist?

Ripper121 aka Ripp3r]D3[
Deutsches (original) Forum: Seit: 11.11.2007 Beiträge: 1912
ripper.gif
Top-10 German


Alibaba
  • Members
  • 435 posts
  • Last active: Nov 19 2014 04:21 PM
  • Joined: 01 Nov 2012

Ja plain AHK wäre fein...


Find the recent autohotkey version here: ahkscript.org


bichlepa
  • Members
  • 62 posts
  • Last active: Dec 17 2016 08:45 PM
  • Joined: 04 Jul 2011
Ich bevorzuge auch eine plain AHK Lösung. Damit alles in eine Oberfläche gepackt werden kann und mit einem Klick eine neue Version kompiliert und in eine Installationsdatei gepackt wird.
Z.B. Brauchte ich heute für das herausbringen einer neuen Version von Grundgerüst mit den neuen Hilfedateien von QaMarath gerade mal 3 Minuten: Hilfedateien herunterladen und im Projektordner ersetzen -> Auf den Grundgerüst-Link zum sofort Kompilieren doppelklicken -> Versionsnummer erhöhen -> Installationsdatei generieren -> Installationsdatei im DropBox-Ordner ersetzen -> Textdatei mit Update-Info editieren -> fertig!

Die Installationsdatei von AHK selbst ist auch AHK pur, mit dem Sourcecode kann ich aber nicht viel anfangen. Zu viele kryptische Befehle.
Da es im englischen Forum mehr Experten gibt und eventuell dort jemand Lust am professionellerem Weiterentwickeln hat, habe ich damit begonnen, es ins Englische zu übersetzen.

bichlepa
  • Members
  • 62 posts
  • Last active: Dec 17 2016 08:45 PM
  • Joined: 04 Jul 2011
Da nach dem isolierten Update Checker gefragt wurde:

Update Checker Standalone.ahk

ripper121
  • Members
  • 114 posts
  • Last active: Jan 16 2014 11:06 AM
  • Joined: 01 Nov 2012
danke

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
;~ #Warn  ; Recommended for catching common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

;eins von Beiden verwenden
modus=laut
;~ modus=leise

; -----------Hier alle Informationen über das Programm ergänzen. Beispiele wurden eingefügt------------
AppVersion=1.0
AppGenaueVersion=1.00.02
AppName=Programm
AppNameLang=Programm zum Testen
AppDateiName=Programm.exe
stringtrimright,AppDateiName,AppDateiName,4 ;Dateiendung entfernen
AppUrlTxt1:="http://www.update-check.de/download/update%20info.txt" ;Seite fiktiv!
AppUrlTxt2:=""
AppUrlTxt3:=""


msgbox,%AppVersion% %AppGenaueVersion% %AppName% %AppNameLang% %AppDateiName% %AppUrlTxt1% %AppUrlTxt2% %AppUrlTxt3% ;Debugging
if modus=laut ;Wenn leise, keine Meldung zeigen
splashtexton,300,70,Update Checker für %AppName%,Lade Update-Informationen für %AppNameLang% herunter
FileDelete,%A_WorkingDir%\Online verfügbare Version.txt ;Alte Dateien löschen
;Ermittelt die Anzahl der mitgegebenen Update-Info-URLs
AnzahlvonTxtUrls=0
ifinstring, AppUrlTxt1,http
AnzahlvonTxtUrls++
ifinstring, AppUrlTxt2,http
AnzahlvonTxtUrls++
ifinstring, AppUrlTxt3,http
AnzahlvonTxtUrls++
;Lade Version herunter
DownloadedVersion=0
if modus=laut ;Wenn laut, dann alle URLs Checken
{
loop %AnzahlvonTxtUrls%
{
  TempDownloadURL:=AppUrlTxt%a_index%
  URLDownloadToFile,%TempDownloadURL%,%A_WorkingDir%\Online verfügbare Version.txt ;Txt file mit den Update Informationen runterladen
 
 
 
  ;Txt File Auslesen. Wenn die Datei korrupt ist, dann wird error gespeichert.
  iniread,TempDownloadedVersion,%A_WorkingDir%\Online verfügbare Version.txt,Update Info,Version,error
  iniread,TempAppUpdateExe,%A_WorkingDir%\Online verfügbare Version.txt,Update Info,Download Path,error
  iniread,TempWebseiteÖffnen,%A_WorkingDir%\Online verfügbare Version.txt,Update Info,Open Site,error
  ;~ msgbox,%DownloadedVersion%,%AppUpdateExe%
 
  if TempDownloadedVersion<>error
  {
   ;~ msgbox
   ifinstring,TempDownloadedVersion,.
   {
    ;~ msgbox
    if (TempDownloadedVersion>DownloadedVersion)
    {
	 DownloadedVersion:=TempDownloadedVersion
	 AppUpdateExe:=TempAppUpdateExe
	 WebseiteÖffnen:=TempWebseiteÖffnen
	
    }
   
   
   }
  }
 
  ;~ msgbox,%DownloadedVersion%`n%GrößteDownloadedVersion%
 
}
}
else ;Wenn leise, dann eine zufällige URL checken
{
random,zahl,1,%AnzahlvonTxtUrls%
TempDownloadURL:=AppUrlTxt%zahl%
URLDownloadToFile,%TempDownloadURL%,%A_WorkingDir%\Online verfügbare Version.txt ;Txt file mit den Update Informationen runterladen



;Txt File Auslesen. Wenn die Datei korrupt ist, dann wird error gespeichert.
iniread,TempDownloadedVersion,%A_WorkingDir%\Online verfügbare Version.txt,Update Info,Version,error
iniread,TempAppUpdateExe,%A_WorkingDir%\Online verfügbare Version.txt,Update Info,Download Path,error
iniread,TempWebseiteÖffnen,%A_WorkingDir%\Online verfügbare Version.txt,Update Info,Open Site,error
;~ msgbox,%DownloadedVersion%,%AppUpdateExe%

if TempDownloadedVersion<>error
{
  ifinstring,TempDownloadedVersion,.
  {
   DownloadedVersion:=TempDownloadedVersion
   AppUpdateExe:=TempAppUpdateExe
   WebseiteÖffnen:=TempWebseiteÖffnen
  
  
  }
}

}
SplashTextOff
if DownloadedVersion=0
{
if modus=laut ;Wenn leise, keine Meldung zeigen
  msgbox,0,Update Checker für %AppName%,Beim Download der Updateinformationen trat ein Fehler auf.
exitapp
}

if DownloadedVersion<>error ;Prüfen, ob die heruntergeladene korrekt ist.
{
If(DownloadedVersion>AppGenaueVersion) ;Wenn Gedownloadete Version grösser als jetzige dann...
{
 
  MsgBox, 68, Update Checker für %AppName%, Eine neue Version von %AppNameLang% ist verfügbar!`nMöchten Sie sie jetzt herunterladen?`n`nAktuelle Version:`tVerfügbare Version:`n%AppGenaueVersion% `t`t%DownloadedVersion%
 
  IfMsgBox,yes ;Nur wenn benutzer zustimmt
  { 
   process,close,%AppDateiName%.exe ;Programm wird geschlossen.
   FileDelete,%A_WorkingDir%\Online verfügbare Version.txt ;Die Datei mit der Versionsnummer löschen, weil sie nicht mehr benötigt wird
  
  
   if AppUpdateExe<>error ;Wenn ein Download Link in der Textdatei vorhanden war.
   {
    splashtexton,300,70,Update Checker,Download der neuen Version...
    FileDelete,%A_WorkingDir%\%AppDateiName%_Installation.exe ;Alte Installationsdatei löschen (Falls vorhanden)
    URLDownloadToFile,%AppUpdateExe% ,%A_WorkingDir%\%AppDateiName% Installation.exe ;lade Installationsdatei runter
    SplashTextOff
    if errorlevel=0 ;Wenn alles glatt lief
    {
	 Msgbox,0,Update Checker für %AppName%, Download erfolgreich `,Die neue Version wurde erfolgreich heruntergeladen. Installation wird gestartet... , 2
	 run,"%A_WorkingDir%\%AppDateiName% Installation.exe" ;Installation starten
    }
    else ;Wenn Download fehl schlägt
    {
	 if WebseiteÖffnen<>error ;Wenn eine Webseite drin stand
	 {
	  Msgbox,0,Update Checker für %AppName%, Download schlug fehl. Stattdessen wird jetzt die Projektseite geöffnet.
	  run, %WebseiteÖffnen% ;Webseite öffnen
	 }
	 else ;Wenn keine Seite drin steht, pech
	 {
	  Msgbox,0,Update Checker für %AppName%, Download schlug fehl. Vielleicht klappt es, wenn Sie es erneut versuchen.
	 }
    }
   }
   else ;Wenn kein Download Link drin steht
   {
    if WebseiteÖffnen<>error ;Wenn stattdessen ein Webseiten Link drin steht
    {
	 run, %WebseiteÖffnen% ;Webseite öffnen
    }
    else ;Wenn nix drin steht, pech
    {
	 msgbox,0,Update Checker für %AppName%, In der Heruntergeladenen Update-Info steht nicht, wo sich die neue Version befindet. Download nicht möglich.
    }
   }
  
  }
 
}
Else ;Keine neuere Version verfügbar
{
 
  if modus=laut ;Wenn leise, keine Meldung zeigen
   MsgBox, 0,Update Checker für %AppName%, Keine neue Version verfügbar.`nAktuelle Version: %AppGenaueVersion%`nVerfügbare Version: %DownloadedVersion%
  FileDelete,%A_WorkingDir%\Online verfügbare Version.txt ;Die Datei mit der Versionsnummer löschen, weil sie nicht mehr benötigt wird
 
}
}
else ;txt defekt.
{
if modus=laut ;Wenn leise, keine Meldung zeigen
  msgbox,0,Update Checker für %AppName%,Es trat ein Fehler auf. Möglicherweise ist der im Programm gespeicherte Link zu den Update Informationen korrupt. Es könnte sein, dass dennoch eine neue Version verfügbar ist.
}
ExitApp

Ripper121 aka Ripp3r]D3[
Deutsches (original) Forum: Seit: 11.11.2007 Beiträge: 1912
ripper.gif
Top-10 German


CallHimX
  • Members
  • 2 posts
  • Last active: Nov 28 2012 07:18 PM
  • Joined: 21 Nov 2012
Verdammt gute Idee und sehr sehr hilfreich,.

fump2000
  • Members
  • 591 posts
  • Last active: Nov 11 2015 07:52 AM
  • Joined: 01 Nov 2012
Danke für die Update Funktion!
Hab das Grundgerüst ebenfalls versucht. Finde es leider etwas kompliziert daher bisher nicht genutzt. Aber ich denke die Entwicklung geht weiter. Ich bin gespannt :)

MfG
fump

Marshall666
  • Members
  • 45 posts
  • Last active: May 16 2013 04:03 PM
  • Joined: 09 Mar 2013

Woooow..  suuuuper Arbeit Jungs.. so gut will ich auch mal werden! ;P

Habe es zwar noch nicht getestet aber allgemein gesagt  ein sehr hilfreiches Tool!!!!