| |
Visual-Basic Einsteigerget specialfolder probrem | | | Autor: RDXDustin | Datum: 29.06.15 19:57 |
| Guten abend leute,
ich schreibe gerade ein kleines Text Adventure für die Schule und muss dieses morgen abgeben , ich bin so gut wie fertig nur mit den Ordnern hab ich ein Problem.
Einmal möchte ich eine gif anzeigen was ich aber nur hinbekomme wenn ich den kompletten pfad mit user hinschreibe , aber gerade das geht ja nicht wenn es auch an ne anderen pc genutzt wird
so geht es auch nicht :/ : GetSpecialFolder ssfCOMMONDOCUMENTS
strCurrentURL = "C:\Documents\gif - Datei.gif"
Ich hoffe mir kann jemand helfen
edit: Die Gif wird über Die webbrowser Anwendung angezeigt
Beitrag wurde zuletzt am 29.06.15 um 20:11:12 editiert. | |
Re: get specialfolder probrem | | | Autor: Blackbox | Datum: 29.06.15 20:41 |
| Hi,
Du drehst Dich eh im Kreis: Auf die Schule-Rechner musst Du deine Dateien in diese öffentliche Ordner kopieren.
Warum nimmst Du nicht den Pfad deiner App? Behalte die Resourcen bei der App und nimm einfach:
App.Path. | |
Re: get specialfolder probrem | | | Autor: Zardoz | Datum: 29.06.15 20:45 |
| Hallo RDXDustin,
welche VB-Version? Du kannst die Pfade der Systemordner mit
Environ$() aufrufen und den Pfad der Anwendung mit App.Path.
Gruss,
Zardoz | |
Re: get specialfolder probrem | | | Autor: RDXDustin | Datum: 29.06.15 20:47 |
| Erstmal danke für die Antwort.
Das app.path sagt mri leider überhaupt nix :/
und Environ$() noch weniger.
Wir müssen mit vb 6 arbeiten.
UNd nein ich muss es auf einen Stick abgeben und er guckt sich das dann sonst wo an.. | |
Re: get specialfolder probrem | | | Autor: Manfred X | Datum: 29.06.15 21:28 |
| Hallo!
VB 6? Wirklich?
Welche Institution besitzt die Unverschämtheit,
Menschen dazu zu zwingen, ihre Zeit mit dem Erlernen
von völlig veraltetem Schrott zu vergeuden?
| |
Re: get specialfolder probrem | | | Autor: RDXDustin | Datum: 29.06.15 21:31 |
| Ja das ist eine gute frage ^^
Naja kann man leider nix machen .
Hast du vieleicht einen Tipp? | |
Re: get specialfolder probrem | | | Autor: Manfred X | Datum: 29.06.15 21:50 |
|
Die anderen Kursteilnehmer aufhetzen und dann: Streik!
VB6 diente der Entwicklung von Windows-Anwendungen unter
der Version Windows98 und war etwa bis Windows XP parallel
zu Net-Framework 1 im Einsatz.
Microsoft hat den VB6-Support bereits 2006 (den erweiterten 2008)
endgültig eingestellt.
VB6 Programme und die diversen Komponenten laufen seitdem
unter aktuellen Windows-Versionen "As Is" (Compliance-Statement).
Fast alle aus VB6 bekannten Konzepte sind im Net-Framework anders
organisiert worden. Vieles, was in VB6 noch programmiert werden muß,
ist im Framework bereits als fertige Klasse vorhanden.
Was Du heute zu VB6 erlernst und übst, kannst Du später meist nicht mehr
verwenden oder - schlimmer - Du kannst sie im Prinzip noch verwenden,
aber die Lösungen sind ineffizient oder unsicher.
| |
Re: get specialfolder probrem | | | Autor: RDXDustin | Datum: 29.06.15 21:55 |
| Ja das weiß ich auch leider :/ einer der gründe warum man kaum Lösungen findet.
Naja streiken wird nix mehr morgen ist die Abgabe | |
Re: get specialfolder probrem | | | Autor: Manfred X | Datum: 29.06.15 22:00 |
| Den Pfad der Anwendung kannst Du einfach abfragen.
Schreibzugriff auf diesen Ordner ist aber unter aktuellen
Windows-Versionen nicht möglich.
Dim mypath As String
mypath = App.Path | |
Re: get specialfolder probrem | | | Autor: RDXDustin | Datum: 29.06.15 22:02 |
| okay.. und unter welchen ordner müsste ich die dateien dann schieben damit ich sie dann mit app.path habe ? | |
Re: get specialfolder probrem | | | Autor: Manfred X | Datum: 29.06.15 22:06 |
| Bei der EXE.
Du bist Dir im Klaren darüber, daß vom Programm genutzte
ActiveX-Komponenten auf dem Zielrechner installiert
und registriert sein müssen?
| |
Re: get specialfolder probrem | | | Autor: RDXDustin | Datum: 29.06.15 22:12 |
| Ok das ist mir jetzt definitiv zu hoch
Bin noch fast blutiger Anfänger.
| |
Re: get specialfolder probrem | | | Autor: Manfred X | Datum: 29.06.15 22:16 |
| Wenn auf dem Zielrechner VB6 bereits korrekt installiert ist,
sollte es keine Probleme mit der direkten Ausführung von VB6 Programmen geben,
die nicht auf "sonstige" ActiveX-Komponenten verweisen.
Normalerweise erstellt man für VB6-Programme mit dem Weitergabe-Assistenten
ein Installationspaket.
| |
Re: get specialfolder probrem | | | Autor: RDXDustin | Datum: 29.06.15 22:29 |
| WO bekomme ich den assistenten her ?:/ | |
Re: get specialfolder probrem | | | Autor: RDXDustin | Datum: 29.06.15 22:33 |
| Alles klar hab den assis gefunden ich probier es mal
Vielen dank | |
Re: get specialfolder probrem | | | Autor: RDXDustin | Datum: 29.06.15 22:41 |
| der Assistent zeigt mir jetzt nur noch fehler 429:/ | |
Re: get specialfolder probrem | | | Autor: Manfred X | Datum: 29.06.15 23:04 |
| Wenn in Deinem Kurs bislang die Weitergabe von Anwendungen nicht behandelt
wurde, ist die Erstellung eines Installationspaketes vermutlich nicht
Teil Deiner Aufgabe und der Kursleiter ist mit dem VB-Code zufrieden.
| |
Re: get specialfolder probrem | | | Autor: RDXDustin | Datum: 29.06.15 23:09 |
| jein
Wir hatten das zwar noch nie aber trotzdem erwartet er das die Dateien selbst kopiert werden oder die Dateien egal wo auf dem pc gefunden werden bzw alles nur noch in einen ordner muss | |
Re: get specialfolder probrem | | | Autor: Manfred X | Datum: 29.06.15 23:19 |
| Probiere es mit App.Path und stelle das GIF in den Ordner mit der Exe.
Es ist echt zum Heulen.
Aktuelle Windows-Versionen stellen umfangreiche, spezialisierte
Ordnerstrukturen für solche Aufgaben zu Verfügung,
bei denen z.B. auch Sicherheitskonzepte berücksichtigt werden.
Das Net-Framework bietet die entsprechenden "SpecialFolders" an.
VB6 kennt das nicht, weil es seit mehr als 15 Jahren nicht mehr
weiterentwickelt wurde.
| |
Re: get specialfolder probrem | | | Autor: RDXDustin | Datum: 29.06.15 23:21 |
| Okay hast du den ein kleines beispiel wie ich das app.path schreibe , weil habe damit noch nie etwas gemacht... | |
Re: get specialfolder probrem | | | Autor: Manfred X | Datum: 29.06.15 23:33 |
| Picture1 ist eine Picturebox.
Die Gif-Datei heißt "138.gif" und steht bei der EXE.
Picture1.Picture = LoadPicture(App.path & "\138.gif") | |
Re: get specialfolder probrem | | | Autor: RDXDustin | Datum: 29.06.15 23:42 |
| naja aber in einer picture box zeigt er keine gif an darum ja der browser und
strCurrentURL = (App.Path & "\GIF-Datei.gif") funktioniert wieder nicht | |
Re: get specialfolder probrem | | | Autor: Manfred X | Datum: 29.06.15 23:52 |
| [I]Ein Bildfeld-Steuerelement (PictureBox) kann eine Grafik
aus einer Bitmap einem Symbol oder einer Datei im Metafile- oder
im erweiterten Metafile-Format sowie aus JPEG- oder GIF-Dateien anzeigen[/I]
WebBrowser1.Navigate App.path & "\138.gif" | |
Re: get specialfolder probrem | | | Autor: RDXDustin | Datum: 29.06.15 23:58 |
| in meinen fall bewegt sich die gif aber nur in dem webbrowser
und mit der variable von oben markiert er das ,,path" und sagt mitgliedsdaten nicht gefunden. | |
Re: get specialfolder probrem | | | Autor: Manfred X | Datum: 30.06.15 00:09 |
| Warum navigierst Du nicht - wie gezeigt - zu dem animierten Gif?
Wenn Dein GIF lokal abgelegt ist benötigst Du keine URL-Methoden.
| |
Re: get specialfolder probrem | | | Autor: RDXDustin | Datum: 30.06.15 00:11 |
| WebBrowser1.Navigate App.path & "\138.gif" habe ich von dir übernommen nur den gif namen korigiert
dann kam die eben genannte fehler meldung | |
Re: get specialfolder probrem | | | Autor: Manfred X | Datum: 30.06.15 00:18 |
| Hast Du etwa in Deiner Anwendung eine Variable namens "App" deklariert?
Dim App As ....
Das darfst Du nicht. Du benötigst Zugriff auf das App-Objekt.
| |
Re: get specialfolder probrem | | | Autor: RDXDustin | Datum: 30.06.15 00:23 |
| oh man .. ja hatte ne app modul.
hab jetzt kein Fehler mehr aber die gif wird nicht angezeigt. | |
Re: get specialfolder probrem | | | Autor: Manfred X | Datum: 30.06.15 00:40 |
| strCurrentURL = "file:///" & app.path & "/138.gif"
| |
Re: get specialfolder probrem | | | Autor: RDXDustin | Datum: 30.06.15 07:07 |
| Funktioniert auch alles nix :/
so sieht es bis jetzt aus
Private Sub Form_Load()
'Startseite festlegen
strCurrentURL = "file:///" & App.Path & "/GIF-Datei.gif"
'Startseite im Adressfeld anzeigen
Me.TxtUrl.Text = strCurrentURL
'Webbrowser-Komponente mit URL
Me.WebBrowser1.Navigate strCurrentUR
Me.CmdWeiter.Visible = False
End Sub | |
Re: get specialfolder probrem | | | Autor: Manfred X | Datum: 30.06.15 07:14 |
| Fehlt da womöglich ein L am Schluß?
Me.WebBrowser1.Navigate strCurrentUR
Schreibe Option Explicit an den Anfang der Codedatei.
| |
Re: get specialfolder probrem | | | Autor: Franki | Datum: 02.07.15 08:52 |
| Hallo Manfred X
Zitat: | | Es ist echt zum Heulen. | |
Ja, da hast du recht, aber nicht weil VB6 veraltet ist sondern weil weder heute noch damals in schulischen Ausbildungen auf so etwas wert gelegt wird, bzw. wurde.
Zitat: | |
Aktuelle Windows-Versionen stellen umfangreiche,
spezialisierte
Ordnerstrukturen für solche Aufgaben zu Verfügung,
bei denen z.B. auch Sicherheitskonzepte berücksichtigt werden.
| |
Richtig, aber das gibt es schon seit Win NT 3.5 ging weiter mit Version 4 und Win 2K. Und das musste man auch damals schon berücksichtigen unter VB6.
Zitat: | |
Das Net-Framework bietet die entsprechenden
"SpecialFolders" an.
VB6 kennt das nicht, weil es seit mehr als 15 Jahren nicht mehr
weiterentwickelt wurde. | |
Da liegst du falsch, man konnte mit VB6 immer schon und kann auch unter aktuellen Windows Versionen über die API die entsprechenden Verzeichnisse ermitteln. (Klar gibt es heute Änderungen / Erweiterungen)
Private Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" ( _
ByVal hWndOwner As Long, _
ByVal nFolder As Long, _
pidl As ITEMIDLIST) As Long Und auch damals war es für gewerblich genutzte Rechner meist schon tabu ins Anwendungsverzeichnis zu schreiben, das hat bei Privatrechnern funktioniert weil der angemeldete User ADMIN war, UAC gab es noch nicht usw. Aber bei Firmenrechnern (meist in damaligen Netzwerken) hat das schon 1985 nicht wirklich mehr funktioniert.
Dass heutzutage noch VB6 gelehrt wird finde ich gar nicht so schlecht, denn wenn es vernünftig gelehrt wird, sind die Grundlagen der Programmierung einfacher vermittelbar als mit .NET. Es werden ja auch noch die Grundlagen der Mathemathik unterrichtet, obwohl jeder Taschenrechner vom Aldi für unter 10 Euro das heute kann. Also warum noch Dreiecksberechnungen lernen in der Mittelstufe oder Extremwertaufgaben lösen müssen? Die haben sich schon was dabei gedacht beim Lehrplan vermute ich.
Gruß
Frank
| |
Re: get specialfolder probrem | | | Autor: Manfred X | Datum: 02.07.15 09:36 |
| Ich hatte geschrieben, VB6 kennt die Specialfolders nicht,
Windows hatte natürlich entsprechende APIs angeboten.
Und die Kooperation mit UAC kennt VB6 überhaupt nicht.
Ich stimme Dir keinesfalls zu, wenn Du schreibst,
durch VB6 wären Grundlagen leichter zu vermitteln.
Was denn?
Die Sprachsyntax ist ähnlich, aber
- mit VB.Net kann man "richtig" objekt-orientiert programmieren
- die ActiveX-Komponenten auf denen VB6 beruht, sind inzwischen obsolet
- in VB6 gibt es kein Framework - solche Klassenmodelle sind aber
heute die Basis des produktiven Programmierens
- die erforderlichen Sicherheitskonzepte sind unter VB6 nicht
verfügbar und nicht erlernbar
- ADO.Net ist völlig anders konstruiert als ADO (veraltete, ineffiziente
unsichere Treiber)
- zentrale VB6-Konzepte sind veraltet (Twips, Variant usw.)
Diese Liste könnte ich beliebig verlängern.
VB6 ist tot und Punkt. Bitte keine Romantik!
| |
Re: get specialfolder probrem | | | Autor: Franki | Datum: 05.07.15 02:54 |
| Hallo Manfred X
Zitat: | | Ich hatte geschrieben, VB6 kennt die Specialfolders nicht,
Windows hatte natürlich entsprechende APIs angeboten.
| |
Genau und VB6 konnte APIs welcher Art auch immer schon nutzen. Es war ja nie der Anspruch, dass VBClassic nur die eigenen Features nutzen kann, sondern auch die Möglichkeiten die die jeweilig aktuelle Windows Version halt bietet. Zitat: | |
Und die Kooperation mit UAC kennt VB6 überhaupt nicht.
| |
Natürlich nicht, hatte ich ja auch gesagt, dass es UAC danals noch nicht gab. Aber ob das jetzt UAC lautet, oder wie damals schon gewisse Verzeichnisrechte gegolten haben usw. spielt ja keine Rolle, es war immer schon wichtig dahin zu schreiben wo es auch Schreibrechte gab.
Zitat: | |
Ich stimme Dir keinesfalls zu, wenn Du schreibst,
durch VB6 wären Grundlagen leichter zu vermitteln.
Was denn?
Die Sprachsyntax ist ähnlich,
| |
Richtig, sie ist ähnlich, aber wenn man absoluter Anfänger ist, dann ist es einfacher zu vermitteln was eine Schleife überhaupt ist. Also warum For x = 1 to 10 jetzt 10 oder 9 Elemente enthält, oder warum x(0) funktioniert, x(10) dagegen nicht, oder wann ein Array 0 oder 1 basierend ist usw. usw. Das sind Grundlagen die allgeimeingültig sind, egal in welcher Sprache.
Zitat: | | aber
- mit VB.Net kann man "richtig" objekt-orientiert
programmieren
| |
Was man aber als Anfänger auch erst mal lernen muss was objektorientier überhaupt bedeutet.
Zitat: | |
- die ActiveX-Komponenten auf denen VB6 beruht, sind
inzwischen obsolet
- in VB6 gibt es kein Framework - solche Klassenmodelle sind
aberheute die Basis des produktiven Programmierens
VB6 ist tot und Punkt. Bitte keine Romantik!
| |
Ja natürlich, in VB6 gab es kein Framework, da hast du recht. Aber dennoch funktionieren VB6 Anwendungen noch immer auf aktuellen Windows Versionen. Und du hast auch recht, dass keine neue Anwendung mehr in VB6 entwickelt werden sollte. Soweit so gut, aber Romantik hin oder her, Tatsache ist, dasss "gewachsene" VB6 Anwendungen immer noch auf aktuellen Betriebssystemen funktionieren und die Anwender damit zufrieden sind.
Und das ist nicht vergleichbar mit einem KFZ-Oldtimer der auch noch funktioniert und durch die Gegend fährt.
Du sprichst das Framework an, das ist super, du hast recht, dass es mehr und bessere Möglichkeiten bietet, das sehe ich ja auch so, aber zur Ausgangsfrage stehe ich immer noch, dass die Grundlagen (die auf für das Framework gelten) mit einefachereren oder veralteten Programmiersprachen einfachen zu erlernen sind.
Und zum OT, du sagst, dass VB 6 gestorbwen ist, soweit so gut, aber wie erklärst du dir, das heute noch Bildungseinrichtungen VB6 léhren bzw. unterrichten? Da hilft es ja wenig gegen VB6 zu wettern, wenn die Schule das unterrichtet dann hat der Schüler keine Wahl.
Ob das jetzt richtig ist oder nicht, da haben wir hier im Forum leider keine Entscheidungsbefugnis was die Schule unterrichtet. Mehr als eine Empfhelung kann man hier nicht aussprechen, aber wenn die Schule das nicht liest...
Gruß
Frank
Gru0
Frank
| |
Re: get specialfolder probrem | | | Autor: Manfred X | Datum: 05.07.15 06:56 |
| Hallo!
Ich kann Deine Argumente nicht nachvollziehen.
Du schreibst selbst, daß man neue Anwendungen nicht mit VB6 entwickelt.
Warum also sollte ein Anfänger diese Programmiersprache lernen?
Du verweist auf die VB6-Option, Array-Indices auch eins-basiert zu erstellen.
(Das ist übrigens auch im Net-Framework möglich.)
Die Behandlung von Arrays gehört inzwischen eigentlich nicht mehr in einen
Kurs für Programmier-Einsteiger, weil sie in der Handhabung zu unflexibel sind.
Dafür gibt es im Framework generische Listen/Dictionaries/Queues usw.
Klassen die umfangreiche Methoden für spezifische Zwecke verfügbar machen und
eine geeignete Datenhaltung (Sortiert/Hashed/Keyed) ermöglichen.
(Im Net-Einsteigerforum muß alle paar Wochen erneut darauf hingewiesen werden,
daß Arrays für den jeweils angefragten Zweck kaum geeignet sind, weil es
effiziente und einfacher zu nutzende Alternativen gibt).
Du schreibst, objekt-orientiertes Programmieren muß man erst lernen.
Die OOP-Prinzipien sind tatsächlich nur am Rande Gegenstand eines Einsteigerkurses.
Aber auch als Anfänger benötigt man als Fundament den Einstieg in eine
Entwicklungsumgebung, mit der man sich (aufbauend) entsprechende Kenntnisse
aneignen kann.
Wohin die Beschäftigung mit VB6 führt, kannst Du an diesem Foren-Thema sehen.
Da wird das total überholte Konzept der INI-Datei aufgegriffen - und es
sollen offenbar Daten eingetragen werden, für die Dateien dieses Typs nicht
vorgesehen waren.
Es bleibt nicht dabei, im Kurs ein wenig VB-Syntax zu lernen - sondern die
Kursteilnehmer werden mit dem veralteten Drumherum aus Windows98-Zeiten konfrontiert
und müssen sich damit abquälen. Sinnlose Zeitverschwendung.
(In dieser Zeit hätte man lernen können, wie man mit dem VS-Assistenten eine
Datenbank-Anwendung erstellt.)
Beitrag wurde zuletzt am 05.07.15 um 06:57:54 editiert. | |
Re: get specialfolder probrem | | | Autor: Franki | Datum: 13.07.15 05:29 |
| Hallo Manfred,
du hast ja recht, ich bin da mit dir auch einer Meinung.
Aber dennoch scheint es ja so zu sein, dass heutzutage noch VB6 unterrichtet wird. Und wenn das für einem Fragesteller hier relevant ist, dann bringt es ja nichts dagegen zu sprechen, der Lehrplan ist halt nun mal so und er kann seinem Lehrer garantiert nicht antworten, dass VB6 veraltet ist. (Der Lehrer wird das auch wissen).
Aber andererseits bin ich nach wie vor der Meinung, dass Grundlagen der Programmierung halt Grundlagen sind, also man schon wissen sollte was null- oder einsbasierend ist, egal ob Array, Collection oder was auch immer und egal in welcher Sprache. Solche Grundlagen helfen später ungemein weiter egal mit was man später arbeitet oder worauf man umlernt.
Dazu kommt noch, dass die Programmierung auf dem Lehrplan steht, aber nur ein Nebenschauplatz bei vielen Ausbildungen ist. Wir reden ja nicht von einem Studium der Informatik oder einer Ausbildung als Anwendungsentwickler usw. Oft ist es so, dass z.B. ein Hartz 4 Empfänger eine Weiterbildung verordnet bekommt und dann halt was lernen muss. Oder in einer schulischen Ausbildung zu was auch immer.
Das mit den INI Dateien ist so eine Sache, die waren unter XP schon veraltet, bzw. seit es die Registry gibt. Soweit so gut, aber es waren im Endeffekt immer nur Textdateien nicht mehr und ncht weniger. Und auch heute gibt es von Windows aus noch jede Menge INI Dateien selbst wenn man eine neuen Rechner kauft und Windows 8 installiert hat man über 200 auf dem Rechner als normaler Anwender ohne zu wissen was INI Dateien überhaupt sind.
Um das Thema zu beenden, ich bin der Meinung, dass wenn Fragen zu alten Sachen kommen, man diese schon beantworten sollte anstatt die Leute zu belehren, dass sie was fortschrittlicheres nehmen sollen. Wäre ja so wie in einem Forum wo es um Oldtimer geht zu sagen: Hey du hast dir jetzt einen VW Käfer von 1970 gekauft, es gibt neuere Modelle.... (klar gibt es die, aber kompetente Antworten beziehen sich dann auf den Käfer von 1970)
Ich sehe das nicht so ernst, dass es neuere Versionen sowohl in Autos, Windows, .NET Versionen gibt, alles hat und hatte seine Berechtigung, und ob ich eine alte Programmiersprache oder Auto aus welchen Gründen auch immer verwende, da möchte der Fragesteller halt Hilfe zu dem was er hat.
Grúß
Frank
| |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats TOP! Unser Nr. 1
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere Infos
|