You are not logged in.

  • "engelmarkus" started this thread

Posts: 479

Date of registration: Sep 23rd 2008

  • Send private message

1

Sunday, October 12th 2008, 12:04am

Up-to-date Loader

Nachdem ja schon mehrfach danach gefragt worden ist, haben JoEtHeKiLlEr und ich jetzt mal ein kleines Programm gebastelt, das automatisch auf den Hersteller-Webseiten die aktuellsten Programmversionen sucht und auf Knopfdruck herunterlädt.
Im Ordner "Programme" liegt ein Haufen DLLs, quasi als eine Art Plug-Ins. Das Programm lädt diese beim Start und sucht mit deren Hilfe erstmal die aktuellsten Versionen raus. Jetzt kann es natürlich passieren, dass ein Server nicht antwortet. Deswegen bricht das Programm nach 30 Sekunden automatisch die noch nicht beantworteten Anfragen ab. Nachdem ihr alle runterzuladenden Programme ausgewählt und auf den Button unten geklickt habt, fragt das Programm nach einem Speicherort für die Dateien und beginnt den Download.

[downloaddatabase]28[/downloaddatabase]

Posts: 1,955

Date of registration: Sep 23rd 2008

  • Send private message

2

Sunday, October 12th 2008, 12:22am

beendet sich direkt nach dem start.
man sieht noch für nicht mal ne sekunde das fenster, was dann auch schon zu ist...
There are three sides to every story: ours, theirs, and the truth...

  • "engelmarkus" started this thread

Posts: 479

Date of registration: Sep 23rd 2008

  • Send private message

3

Sunday, October 12th 2008, 12:24am

Welche Versionen von .Net hast du installiert? Welches Betriebssystem?

rs90

User

Posts: 2,277

Thanks: 48 / 29

  • Send private message

4

Sunday, October 12th 2008, 12:24am

Man sollte vielleicht dazu schreiben dass das Programm .Net 3.5 braucht. Installiert?

  • "engelmarkus" started this thread

Posts: 479

Date of registration: Sep 23rd 2008

  • Send private message

5

Sunday, October 12th 2008, 12:29am

;D Noch... das stimmt. Aber ich werd mal schauen, dass ich das auch für 3.0 zum Laufen kriege...

Posts: 1,955

Date of registration: Sep 23rd 2008

  • Send private message

6

Sunday, October 12th 2008, 12:39am

also...
ich habe das zu erst auf meinem test rechner mal probiert. da läuft XP mit SP3 und dem .NET aus dem AIO von sereby...
seit einiger zeit habe ich aber bei meiner aktuellen cd jegliche sereby packs rausgenommen. da ist nun die 3.5 SP1 Redist drinne. da läuft dann auch euer tool.
warum das mit dem AIO nicht geht ka. da sollte auch das gleiche drinne sein... aber ich seh das momentan als eine weitere bestätigung, das es gut war die packs raus zu nehmen...

mal schauen wie sich euer tool so entwickelt. interressant wird es für mich erst wenn ich da selbst programme einbinden kann...
There are three sides to every story: ours, theirs, and the truth...

  • "engelmarkus" started this thread

Posts: 479

Date of registration: Sep 23rd 2008

  • Send private message

7

Sunday, October 12th 2008, 4:44pm

Erstellen eigener Programm-DLLs

Hier möchte ich euch jetzt mal schnell am Beispiel von Firefox erklären, wie man selber so eine Programm-DLL erstellt:

  • Erstellt eine neue Datei "Firefox.vb"
  • In diese kommt folgender Code (nein, das ist KEIN PHP):

PHP Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Imports System.Text.RegularExpressions
Imports System.Net

Public Class Firefox
Inherits Up_to_date_Loader.Programm

Sub New()
    Dim wc As New WebClient()
    Dim r As New Regex("<a href=""Firefox Setup (.*).exe"">")
    Dim source wc.DownloadString("http://mozilla.mirrors.easynews.com/mozilla/firefox/releases/latest/win32/de/")

    _programmname "Mozilla Firefox"
    _programmversion r.Match(source).Groups.Item(1).Value
    _downloadadresse "http://mozilla.mirrors.easynews.com/mozilla/firefox/releases/latest/win32/de/Firefox Setup " _programmversion ".exe"
End Sub
End Class


Ich werde jetzt mal versuchen, kurz zu erklären, was da eigentlich passiert.
Zeilen 1-8: müssen eigentlich immer so bleiben wie sie sind, nur bei "Class" den Namen des Programms einsetzen.
Zeile 9: Hinten kommt in die Klammern der reguläre Ausdruck, mit dem die Versionsnummer im Seitenquelltext gesucht werden soll.
Zeile 10: In die Anführungszeichen einfach die Adresse der auszulesenden Webseite eingeben.
Zeile 12: Den Programmnamen ersetzen.
Zeile 13: Hier wird die Programmversion gesucht.
Zeile 14: Die Downloadadresse der Datei wird erzeugt. Durch & kann man Zeichenketten verbinden, in diesem Fall wird die Programmversion hinten eingefügt.

  • Jetzt die Datei speichern.
  • Der nächste Teil wird interessant. Öffnet die Eingabeaufforderung und wechselt in das Verzeichnis mit der "Firefox.vb".
  • Dort gebt ihr jetzt folgenden Befehl ein:

Quoted

%windir%\Microsoft.NET\Framework\v2.0.50727\vbc.exe /out:Firefox.dll /target:library /reference:"c:\Up-to-date Loader\Up-to-date Loader\Debug\Up-to-date Loader.exe" Firefox.vb
Die farbigen Teile müsst ihr anpassen, das erste ist der Name der DLL, die erzeugt werden soll. Das zweite ist der Pfad zur Exe-Datei vom Up-to-date Loader. Ganz hinten kommt der Name der oben erstellten Quellcode-Datei hin.

Jetzt kommt eine Ausgabe, ihr seht, ob alles funktioniert hat:

Quoted

Microsoft (R) Visual Basic, Compilerversion 8.0.50727.3053
für Microsoft (R) .NET Framework, Version 2.0.50727.3053
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

E:\FirefoxDLL\Firefox.vb(10) : warning BC42020: Variablendeklaration ohne As-Klausel. Der Typ "Object" wird angenommen.

Dim source = wc.DownloadString("http://mozilla.mirrors.easynews.com/mozilla/firefox/releases/latest/win32/de/")
~~~~~~~~~
In diesem Fall ist das nur eine Warnung, die ignoriert werden kann. Die DLL sollte damit funktionsfähig sein. Einfach in den Programme-Ordner des Up-to-date Loaders kopieren und testen!

Posts: 1,955

Date of registration: Sep 23rd 2008

  • Send private message

8

Sunday, October 12th 2008, 6:10pm

hm... eigentlich soll euer tool einem doch die sache erleichtern ?
bleiben wir bei firefox, warum sollte man dafür euer tool nehmen, wenn das firefox von haus aus selbst wesentlich besser und einfacher macht ?

zudem finde ich die "dll variante" extrem schlecht. wenn ich dich richtig verstanden habe, ist das was die dlls unterscheidet immer nur der programm name und die 2 url adressen... warum lest ihr das nicht aus einer ini datei ?
persönlich sehe ich das so, bietet mir euer tool einen zeitvorteil - macht es für mich sinn. wenn ich aber jedes meiner programme so umständlich einfügen muss mit so wenig "intelligenz" bei der erkennung, bin ich auf die "alte" weise wesentlich schneller und sicherer...

ein kritik punkt ist auch das system mit dem ihr nach updates sucht. das passiert über eine art "anouce url". nicht jedes programm hat sowas auf seiner hp. manche programme haben nicht mal eine eigene hp. ich sagte (bevor) ihr euer tool gebaut habt ja schon einiges im alten forum dazu...
aber da ich ja immer versuche nicht nur zu "nörgeln", sondern auch ansätze für verbesserungen zu machen....

baut das so um das man die einträge zentral in einer ini machen kann, oder diese sogar über eine kleine GUI selbst in eine ini eingefügt werden.
versteift auch nicht so auf eine "announce url" - diese gibts nicht immer oder sie ändert sich öfters.
ansätze wären z.b. eine webadresse nach einem begriff zu durchsuchen, anhand einer logik dann die versions nr. auszulesen. oder bei grossen software seiten einfach deren hauseigene datenbank abzufragen, oder z.b. google zu befragen... anhand einer logik könnte man die ergebnisse dann auswerten vor der ausgabe...
There are three sides to every story: ours, theirs, and the truth...

This post has been edited 2 times, last edit by "netcaster" (Oct 12th 2008, 6:13pm)


  • "engelmarkus" started this thread

Posts: 479

Date of registration: Sep 23rd 2008

  • Send private message

9

Sunday, October 12th 2008, 6:51pm

Quoted from "netcaster"

bleiben wir bei firefox, warum sollte man dafür euer tool nehmen, wenn das firefox von haus aus selbst wesentlich besser und einfacher macht ?

Das ist vielleicht ein schlechtes Beispiel. Aber stell dir vor, du möchtest ein Programm runterladen, das keinen Auto-Updater mitbringt. Oder du willst aus dem Firefox ein Addon basteln.

Quoted from "netcaster"

zudem finde ich die "dll variante" extrem schlecht. wenn ich dich richtig verstanden habe, ist das was die dlls unterscheidet immer nur der programm name und die 2 url adressen... warum lest ihr das nicht aus einer ini datei ?

Du hast mich falsch verstanden. Der Code in der DLL macht alles, und liefert an das Hauptprogramm nur die Daten zurück: Programmname, Aktuellste Versionsnummer, Downloadlink. Was in dem Code der DLL passiert, ist egal. Im Firefox-Beispiel benutze ich einen regulären Ausdruck, um aus dem Webseiten-Quellcode die aktuellste Version und den passenden Link rauszusuchen.

Quoted from "netcaster"

ein kritik punkt ist auch das system mit dem ihr nach updates sucht. das passiert über eine art "anouce url". nicht jedes programm hat sowas auf seiner hp. manche programme haben nicht mal eine eigene hp. ich sagte (bevor) ihr euer tool gebaut habt ja schon einiges im alten forum dazu...

Falsch. Durch die DLLs haben wir die Möglichkeit, die aktuellste Version irgendwo rauszusuchen, völlig egal wo. Obs eine lokale Datei ist, eine Webseite, ein FTP-Verzeichnis, ... . Alles möglich.

Quoted from "netcaster"

ansätze wären z.b. eine webadresse nach einem begriff zu durchsuchen, anhand einer logik dann die versions nr. auszulesen. oder bei grossen software seiten einfach deren hauseigene datenbank abzufragen, oder z.b. google zu befragen... anhand einer logik könnte man die ergebnisse dann auswerten vor der ausgabe...

Genau das tun wir.

Ich hoffe, damit hab ich deine "Fragen" beantwortet :)

Diveman28

Unwissender

Posts: 746

Date of registration: Sep 23rd 2008

  • Send private message

10

Sunday, October 12th 2008, 7:35pm

ich habe vor langer zeit auch mal so etwas gebastelt mit wget und autoit.

Beschreibung:
Auto-Download-Updater

ein programm, dass wichtige "must-have-tools" auf dem neusten stand hält
so entfällt die lästige url-suche der einzelnen programme und der versionsvergleich und es wird nur dann runtergeladen, wenn es eine neue version des programms gibt.
hierbei wird nur mit der vorhandenen datei verglichen, welche auf der festplatte im entsprechenden ordner liegt.
zum programm gehören:
auto.bat => hier wird eine dir.bat erstellt, daher muss eventuell das verzeichnis in der auto.bat angepasst werden (dir.bat wird automatisch gelöscht)
auto_update.exe => startet die auto.bat
und in den jeweiligen verzeichnissen der programme:
sets.ini => muss entsprechend der jeweiligen programme angepasst werden, beschreibung in sets.ini lesen!!!
start_download.exe => der name "start_download.exe" sollte nicht verändert oder anderweitig benutzt werden, da auto.bat danach in den verzeichnissen sucht und die dir.bat entsprechend erstellt.
wget.exe
update_download.txt => nach dem update wird eine logdatei "update_download.txt" auf dem desktop erstellt, in der alle updates aufgelistet werden und man so erkennen kann, welche programme erneuert wurden und welche nicht.

hier mal ein beispiel anhand von mp3tag:
im wurzelverzeichnis der festplattenpartition haben wir den ordner "Auto-Update" darin enthalten:
auto_update.exe (auto_update.au3) - diese braucht nur ausgeführt werden, mehr muss man nicht machen.

Source code

1
2
3
RunWait("auto.bat", @ScriptDir, @SW_HIDE)
RunWait("dir.bat", @ScriptDir, @SW_HIDE)
FileDelete(@ScriptDir & "\" & "dir.bat")

auto.bat

Source code

1
2
3
4
5
6
7
8
9
@ECHO OFF
cd\
for /F "delims=#" %%a in ('dir /b /s start_download.exe') do call :for1 "%%a"
GOTO for1ende
 :for1
 set XYZPATH=%~dp1
 echo start /D "%XYZPATH%" /wait start_download.exe >> \Auto-Update\dir.bat
 GOTO :EOF
:for1ende


im wurzelverzeichnis der gleichen festplattenpartition befindet sich z.b. der ordner mp3tag
darin enthalten:
wget.exe
die jeweilige version von mp3tag z.b. mp3tagv241csetup.exe
sets.ini => die ini muss entsprechend für das programm eingerichtet werden, das macht man aber nur einmal, um wget zu sagen, was es tun soll.

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[Versions]
;Dateiname_alt wird automatisch vergeben
Dateiname_alt=mp3tagv241bsetup.exe
;Dateiname_neu wird automatisch vergeben
Dateiname_neu=mp3tagv241csetup.exe
;Datei muss eingegeben werden, um lokal im Verzeichnis den Search String (der Dateien), der immer gleich bleibt, zu finden mit "*" oder einzeln mit "?"
Datei=???????????setup.exe
;Datei_entpacken muss nur dann eingegenben werden, wenn entpackt werden soll (Search String mit Datei-Endung), sonst leer
;WinRAR muss installiert sein und der Install-Pfad in den Umgebungsvariablen > Systemvariablen > Path eingetragen werden
Datei_entpacken=
;Log_Zeile_Nr muss eingetragen werden um die entsprechende Zeile in einer Log-Datei auswerten zu können (Zeile 1 oder 5) 
Log_Zeile_Nr=5
;Log_Zeile wird automatisch vergeben
Log_Zeile=URL:http://data.mp3tag.de/mp3tagv241csetup.exe [1723803/1723803] -> "mp3tagv241csetup.exe" [1]
;Download muss eingegeben werden um die Datei aus dem Internet runterzuladen
Download=wget -r -nd -N -A *setup.exe -I /download http://www.anytag.de/forums/index.php?showtopic=57.html -nv -o log.txt
Download1=

start_download.exe (start_download.au3) => die auch von hand ausgeführt werden kann

Source code

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
$dateiname_alt = IniRead(@ScriptDir & "\" & "sets.ini", "Versions", "Dateiname_alt", "")

$datei = IniRead(@ScriptDir & "\" & "sets.ini", "Versions", "Datei", "")
$datei_entpacken = IniRead(@ScriptDir & "\" & "sets.ini", "Versions", "Datei_entpacken", "")
$Download = IniRead(@ScriptDir & "\" & "sets.ini", "Versions", "Download", "")
RunWait(@ComSpec & " /c " & $Download, @ScriptDir, @SW_HIDE)
$Download1 = IniRead(@ScriptDir & "\" & "sets.ini", "Versions", "Download1", "")
RunWait(@ComSpec & " /c " & $Download1, @ScriptDir, @SW_HIDE)

$exist = FileExists($datei_entpacken)
If $exist Then
 RunWait(@ComSpec & " /c " & "winrar E -ibck -o+ " & $datei_entpacken, @ScriptDir, @SW_HIDE)
EndIf

$search = FileFindFirstFile($datei)
$file = FileFindNextFile($search)
$file1 = FileFindNextFile($search)

IniWrite(@ScriptDir & "\" & "sets.ini", "Versions", "Dateiname_alt", $file)
IniWrite(@ScriptDir & "\" & "sets.ini", "Versions", "Dateiname_neu", $file1)
If $file1 = "" Then
IniWrite(@ScriptDir & "\" & "sets.ini", "Versions", "Dateiname_neu", "NotFound")
EndIf

If IniRead(@ScriptDir & "\" & "sets.ini", "Versions", "Dateiname_neu", "") <> "NotFound" Then
FileDelete($file)
EndIf

FileClose($search)

$log = FileOpen("log.txt", 0)
$line = FileReadLine($log, IniRead(@ScriptDir & "\" & "sets.ini", "Versions", "Log_Zeile_Nr", ""))
$line1 = StringTrimLeft($line, 9)
IniWrite(@ScriptDir & "\" & "sets.ini", "Versions", "Log_Zeile", $line1)
$line2 = IniRead(@ScriptDir & "\" & "sets.ini", "Versions", "Log_Zeile", "")
If $line2 <> "" Then
_FileWriteLog(@DesktopDir & "\update_download.txt", $line2)
Else
_FileWriteLog(@DesktopDir & "\update_download.txt", @ScriptDir & " " & "kein Update")
EndIf

FileClose($log)
FileDelete(@ScriptDir & "\" & "log.txt")


das ganze ist sicherlich noch verbesserungswürdig und nicht perfekt, ist auch schon lange her, als ich mir das mal ausgedacht habe...
hier das ganze mal als downloadpaket, wer es mal ausprobieren möchte.
"Brain 1.0 (die Vollversion, nicht die limitierte Sharewarevariante, die viele im Einsatz haben) ist wohl immer noch der beste Schutz..."
Mein System

This post has been edited 2 times, last edit by "Diveman28" (Oct 12th 2008, 7:40pm)


  • "engelmarkus" started this thread

Posts: 479

Date of registration: Sep 23rd 2008

  • Send private message

11

Monday, October 13th 2008, 10:29pm

Was hat denn das hier verloren, Diveman28? ;D

Ich hab jetzt mal oben eine neue Version hochgeladen, diesmal mit dem Quellcode der einzelnen DLLs, damit ihr euch das mal für verschiedene Programme ansehen könnt, für Sourceforge-Server schaut mal bei 7-zip.

Diveman28

Unwissender

Posts: 746

Date of registration: Sep 23rd 2008

  • Send private message

12

Monday, October 13th 2008, 11:46pm

Was hat denn das hier verloren, Diveman28? ;D

wie soll ich das jetzt verstehen?
ich hatte eigentlich gedacht es passt ganz gut hier mit rein und dass man sich ein paar anregungen/ideen abschaut und eventuell mit einfließen lässt in den "Up-to-date Loader", ich will dir hier keine konkurrenz machen und bin auch kein begnadeter programmierer.
in großen teilen kann ich netcaster nur zustimmen, das mit den vb/dll-dateien ist doch recht umständlich gelöst.
desweiteren wird bei deinem programm nicht geprüft, ob die datei schon auf der festplatte vorhanden ist (wie bei wget, z.b. mit dem schalter -N timestamping), es wird jedesmal neu runtergeladen und es wird immer wieder gefragt wohin gespeichert werden soll.
das sagt mir ehrlich gesagt nicht so zu.
"Brain 1.0 (die Vollversion, nicht die limitierte Sharewarevariante, die viele im Einsatz haben) ist wohl immer noch der beste Schutz..."
Mein System

Posts: 304

Date of registration: Sep 23rd 2008

  • Send private message

13

Tuesday, October 14th 2008, 2:18pm

Naja sagen wir es mal so: Unser Programm soll nicht auf Aktualisierungen abgestimmt sein, sondern einfach nur die neueste Version von einem Programm herunterladen.
Die .vb-Dateien können Problemlos gelöscht werden, die sind dazu da, um zu veranschaulichen, wie das Programm funktioniert.
Die .dll-Dateien sind nur die kompilierten .vb-Dateien, was stört euch denn daran?

Und wenn das umständlich gelöst ist, dann doch mit deinem Programm oder?
Ich versteh immernoch nicht, warum du mit so vielen verschiedenen Dateien arbeitest...
Egal, aber kann mir mal bitte ein ARGUMENT GEGEN die dll-Variante NENNEN UND AUSFÜHREN?

Posts: 1,955

Date of registration: Sep 23rd 2008

  • Send private message

14

Tuesday, October 14th 2008, 2:35pm

@ JoEtHeKiLlEr
das hatte ich bereits. nur weil du mit der reaktion auf das tool nich zufrieden bist, brauchst du nicht schreien.
ihr macht da euer ding, kritik, anregungen oder verbesserungs vorschläge braucht ihr offensichtlich nicht.
was ja auch euer gutes recht ist.
warum macht ihr den thread dann aber nicht zu ?
ich brauche jedenfalls kein tool was mir mehr arbeit verursacht als es mir abnimmt. und ich sehe auch keinen sinn darin, jemand auf defizite hin zu weisen, mit ansätzen diese zu verbessern, wenn daran offensichtlich kein interresse besteht. der freundliche tonfall, rundet die sache dann ab...
There are three sides to every story: ours, theirs, and the truth...

This post has been edited 1 times, last edit by "netcaster" (Oct 14th 2008, 2:40pm)


Posts: 304

Date of registration: Sep 23rd 2008

  • Send private message

15

Tuesday, October 14th 2008, 2:45pm

Sorry, wenn es so rüberkommt, als ob ich mich angegriffen fühle, aber ich verstehe einfach nicht, was denn nun das Problem mit der dll-Variante ist?
Wenn jemand ein vernünftiges Argument dagegen nennt und ausführt, dann kann das ja noch geändert werden, ist doch gar kein Problem?!
Bis jetzt kommen eher so sachen, wie "ich finde WIM-Dateien sch***", aber damit kann doch niemand etwas anfanen -.-

Edit: es liegen jetzt doch genügend beispiele vor, um selber hinter das System zu kommen oder etwa nicht?
Und warum dauert es dadurch nur noch länger?
In einer dll kannst du reinschreiben, was du willst und wie du willst, das ist der Vorteil gegenüber von ini-Dateien...
Denn man kann nicht für alle Programme die gleiche Routine verwenden, das sollte ja klar sein und somit gegen ini-Dateien sprechen oder?

This post has been edited 1 times, last edit by "JoEtHeKiLlEr" (Oct 14th 2008, 2:49pm)


Diveman28

Unwissender

Posts: 746

Date of registration: Sep 23rd 2008

  • Send private message

16

Tuesday, October 14th 2008, 3:03pm

danke netcaster, sehe ich auch so *GOOD2*

Naja sagen wir es mal so: Unser Programm soll nicht auf Aktualisierungen abgestimmt sein, sondern einfach nur die neueste Version von einem Programm herunterladen.

was bringt das, wenn stupide die neuste version runtergeladen wird, wenn man das programm schon auf der festplatte zu liegen hat und nicht geprüft/verglichen wird und die alte version nach möglichkeit gleich gelöscht wird, diese funktionalität bietet mir keines der bekannten programme wie appsnap usw.
mein lösungsweg schließt das aber mit ein und ich hatte ja geschrieben, das es sicher nicht perfekt ist und ich nicht DER programmierer bin - jeder nach seinen möglichkeiten.

Quoted

Die .vb-Dateien können Problemlos gelöscht werden, die sind dazu da, um zu veranschaulichen, wie das Programm funktioniert.
Die .dll-Dateien sind nur die kompilierten .vb-Dateien, was stört euch denn daran?

ganz einfach, es ist umständlich erst ne vb-datei zu erstellen, zudem muss man hier die deklarationen kennen, nicht jeder kennt sich damit aus.
anschließend muss die vb-datei dann zur dll kompiliert werden.
das ganze ist nicht anwenderfreundlich.
besser wäre es mit einer ini oder xml zu arbeiten, die entsprechend vom programm eingelesen wird und die man eventuell leichter anpassen kann.

Quoted

Und wenn das umständlich gelöst ist, dann doch mit deinem Programm oder?
Ich versteh immernoch nicht, warum du mit so vielen verschiedenen Dateien arbeitest...

das mag für dich vielleicht so aussehen, dass das bei mir umständlich gelöst ist, aber für mich ist das eine gute und ausreichende lösung, welche weitestgehend automatisch abläuft - wie schon geschrieben, jeder nach seinen möglichkeiten und ist sicherlich auch verbesserungswürdig.
das in jedem programm-ordner die dateien vorhanden sein müssen, stört mich dabei recht wenig - mir ist da zu dem zeitpunkt kein besserer lösungsweg eingefallen.
"Brain 1.0 (die Vollversion, nicht die limitierte Sharewarevariante, die viele im Einsatz haben) ist wohl immer noch der beste Schutz..."
Mein System

This post has been edited 2 times, last edit by "Diveman28" (Oct 14th 2008, 3:06pm)


Posts: 1,955

Date of registration: Sep 23rd 2008

  • Send private message

17

Tuesday, October 14th 2008, 3:33pm

nun gut ich versuch das nochmal...

ich habe, sagen wir mal ca 100 programme, die ich regelmässig benutze (auch wenn das wesentlich mehr sind).
mit eurem tool müsste ich für jedes eine DLL bauen. von der ich weder sonderlich ahnung habe, noch wirklich durch steige was ich da genau rein schreiben müsste. alleine wenn ich mir die ausführungen von engelmarkus anschaue, ist das doch sehr weit von dem begriff "einfach" oder "schnell" entfernt. ich kenne mich recht gut mit batch programierung aus, habe selbst sachen in assembler gebaut, bischen php geht auch... wie sieht das dann erst bei leuten aus die diese kenntnisse nicht haben ?

ich bin mir sicher engelmarkus hat nicht verstanden, was ich meinte als ich von einer "logik" sprach.
gehen wir also mal davon aus man möchte gerne programm XYZ mit in die liste nehmen. dann könnte eine logik jegliche arbeiten erledigen. gehen wir weiter mal davon aus ihr arbeitet mit einer INI, so könnte man da den namen des programms einfach mit einem texteditor eintragen. noch einfacher wenn euer tool dafür eine GUI anbietet.
die logik könnte dann (gehen wir den gedanken zug einfach mal weiter) z.b. bei google und div. software seiten den namen abfragen. die ergebnisse könnten dann durch ein voteing system ausgewertet werden. darüber liesse sich komplett unabhängig von jeglichen weiteren eingaben oder DLLs, ein ergebnis auswerten. dieses würde dann (falls die logik intelligent ist) zu hoher wahrscheinlichkeit die aktuelle version anzeigen können, sowie einen downloadlink. das würde zentral funktionieren, und müsste nicht für jedes programm einzeln eingetragen werden.
spinnt man den gedanken weiter, so könnte man die liste um weitere angaben erweitern. z.b. die hompage des programms, die man dann im voteing system mit einem höheren wert mit in die gesammte logik nimmt. man könnte auch einen registry key mit aufnehmen, wo man z.b. eine registry stelle eingeben könnte, in der die installierte versions nr abgelegt ist, mit der man dann die aus dem netz vergleichen könnte...

genau das wäre was wo ich sagen würde, hey - super einfach, schnell und das teil nimmt mir massig arbeit ab. denn alles was ich machen muss, wäre ein name eingeben. keine DLL für jedes progamm aufwendig erstellen. in genau dieser einen INI datei könntet ihr also die komplette liste wie auch eure konfiguration für das programm ablegen. somit wäre das portable, braucht auch keine registry einträge und ist komplett transparent und besteht aus ganzen 2 dateien - keine evtl. paar hundert (wobei in vielen dlls auch noch fast genau das gleiche stehen wird).

je mehr aufwand ich habe, desto nutzloser wird die sache für mich persönlich. es kostet mich 2-3 mouse clicks um mir eine aktuelle version eines programms zu saugen. habe ich ein bookmark dauert das sagen wir mal 10 sekunden. eine dll zu erstellen (auch wenn das einmalig wäre) dauert sicher min. 10 minuten, rechnet man ein das man fehler beheben muss, sich damit nicht auskennt usw... vermutlich sogar mehr... - macht einen faktor von 1:60. euer tool würde also den 60 fachen aufwand erzeugen. wenn man es dann zum 61x benutzt, würde man das erste mal zeit einsparen, natürlich nur wenn dann die informationen in der DLL noch greifen...

wenn ihr was für andere bauen wollt, so solltet ihr euch zumindest mal bischen gedanken um die vorschläge machen. weder diveman noch ich sind noobs die nicht wissen von was sie reden...
There are three sides to every story: ours, theirs, and the truth...

Diveman28

Unwissender

Posts: 746

Date of registration: Sep 23rd 2008

  • Send private message

18

Tuesday, October 14th 2008, 3:44pm

@netcaster
schau dir mal appsnap an, eventuell kennst du es ja auch schon.
das programm macht in etwa das, was du beschrieben hast, arbeitet mit einer db.ini in der alle programme drin stehen und hier wird die installierte version des jeweiligen programms in appsnap angezeigt und die neuste download-version, falls vorhanden.
"Brain 1.0 (die Vollversion, nicht die limitierte Sharewarevariante, die viele im Einsatz haben) ist wohl immer noch der beste Schutz..."
Mein System

Posts: 304

Date of registration: Sep 23rd 2008

  • Send private message

19

Tuesday, October 14th 2008, 4:02pm

@netcaster:
Einen Algorithmus zu entwickeln, der die Programme richtig erfassen kann ist nur schwer möglich.
Wir haben auch schon überlegt ein ebensolches Programm zu programmieren, wie von dir angesprochen("dll-Ersteller"), allerdings ist das verfahren von Seite zu Seite verschieden, z.B. muss man bei Sourceforge eine andere Seite laden, bevor man an die "wertvollen" Informationen gelangt. Mit den dll-Dateien, können solche und andere Problemfälle individuell behoben werden. Die erste dll hat bei mir auch noch 10 Minuten gedauert und die 5.te nur noch 2 *BOAST*

Posts: 1,781

Date of registration: Sep 23rd 2008

Thanks: 1 / 0

  • Send private message

20

Tuesday, October 14th 2008, 5:21pm

Ich denke ihr solltet euch zumindestens eine Frage stellen: Was ist eure Zielgruppe?
Wer soll das Programm vorrangig benutzen?
Denn daran orientiert sich dann erst die Bedienung.

Für Anfänger? - Wenn man erst VB-Skripte kompilieren muss wohl eher weniger - oder?
Für etwas fortgeschrittenere welche schon grundlegende Kenntnisse im Skripten haben? - wohl auch weniger - wenn schon reguläre Ausdrücke vorausgesetzt werden.

Ich will damit sagen das die Bedienung, zumindestens was die Erweiterung mit zusätzlichen Programmen angeht momentan nur fortgeschrittene Nutzer anspricht - wenn überhaupt.
Ich glaube allerdings das dies von euch nicht so beabsichtigt war - oder?

Die Zweifel an der Machbarkeit, als ihr die Idee das erste mal geäußert habt, haben sich, wie ihr sicher gerade merkt, zu einem gewissen Teil bestätigt.
Es ist natürlich nicht möglich einen allgemeingültigen Weg zu finden ein Programm auf Updates zu überprüfen.
Es muss für jedes Programm eine extra Anpassung hinterlegt werden und selbst die muss nicht immer funktionieren (z.B. wenn irgendwann mal ein Serverwechsel stattfindet oder ähnliches).
Prinzipiell glaube ich das das Problem der Ansatz ist - so wird man nur sehr schwer und mit sehr viel Aufwand verbunden eine genügend große Anzahl an Programmen ständig aktuell halten können.

Die bereits vorhandenen und erfolgreichen Programme mit dieser Funktion funktionieren in der Regel nach einem ganz anderen Prinzip:
Es wird z.B. lediglich eine Datenbank angelegt in der verzeichnet ist wie von installierten Programmen die Versionsnummer ermittelt werden kann - in der Regel meist nur ein Registry-Wert oder eine Dateiversion.
Alternativ dazu kann man auch einfach die Liste integrierter Software vom System abfragen - da ist oftmals auch gleich die Version mit hinterlegt - so brauch man z.b. gar keine Information vorher hinterlegen.
Diese Information wird dann an einen Server übertragen.
Hat ein User nun die allerneueste Version wird diese Versionsnummer an den Server übertragen und der Server weiß nun was die derzeit höchste Versionsnummer dieses Programmes ist und meldet es an die anderen User die ihre Version abfragen.
Fairerweise muss man da allerdings sagen das dieses Prinzip natürlich nur funktioniert wenn ein entsprechender Server + die Community dieses Programms existiert.
Es wird für euch daher nicht wirklich umsetzbar sein.
Ein Programm welches nach diesem System arbeitet ist mein persönlicher Liebling dazu: >>SUMo<<
Damit ist es natürlich ungleich leichter eine Vielzahl an Programmen abzudecken.

Versteht mich bitte nicht falsch - ich will euch die Sache nicht vermiesen aber ich sehe persönlich ein paar Probleme die schon im Ansatz begründet sind und damit euch und dem User die Sache sehr erschweren.
Natürlich würde ich und alle anderen hier sich freuen wenn ihr uns vom Gegenteil überzeugen könnt. - deswegen weiterhin viel Erfolg beim Weiterentwickeln *GOOD2*

AgiHammerklau

Anwender mit beschränkten Kenntnissen

Posts: 1,723

Date of registration: Sep 23rd 2008

  • Send private message

21

Tuesday, October 14th 2008, 11:51pm

Nur mal so, als Ansatzpunkt für einen anderen Weg :
Wie macht FireFox das, mit der Aktualisierung der Erweiterungen ?
Die GUI gibt ja schon einiges her.
Im übertragenen Sinn, müßte auf installierte/ registrierte Programme überprüft werden und wenn diese nicht erkannt werden, manuell hinzugefügt werden können.
Nach Programmstart hinzugekommenen Programmen, müßte "beigebracht" werden, ihre eingebauten update-links zu exportieren oder der updater greift die Informationen bei der Installation selber ab.

Nur ein theoretischer Gedankenansatz.
Agi