WinFuture-Forum.de: Autoit 3: Relative Pfadangabe Zur Anwendung - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Autoit 3: Relative Pfadangabe Zur Anwendung

#1 Mitglied ist offline   Erte 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.059
  • Beigetreten: 03. Januar 07
  • Reputation: 0

geschrieben 23. November 2008 - 18:28

Moin

Ich bin grade dran ein kleines Script mit AutoIt 3 zu schreiben welches ein Fenster aufmacht wenn die Anwendung zum ersten Mal gestartet wird. Daraufhin erstellt er eine .txt Datei im Userprofil. Beim nächsten Start überprüft die Anwendung dann ob eine Exist.txt Datei im Userprofil besteht. Falls ja, wird das Fenster nicht nochmal gezeigt. Mein Problem allerdings ist, dass die Anwendung portabel ist, und somit ich mit relativen Pfadangaben arbeiten muss. Hier mal der Quellcode:
$check = FileExists("%userprofile%\Exist.txt")
If $check = 1 then
	run(@ScriptDir & "files\a.exe")
else
	run(@ScriptDir & "files\a.exe")
WinWaitActive("Counter-Strike")
msgbox(64, "Titel", "Inhalt vom Fesnter")
WinActivate("Titel")
FileOpen("%userprofile%\Exist.txt", 8)
endif


Die AutoIt .exe befindet sich im Hauptordner. Neben dieser .exe befindet sich ein Ordner "files" in welchem sich die eigentliche Anwendung befindet. Da die Anwendung portabel ist kann ich nich einfach einen statischen Pfad angeben. Aber wie ich einen relativen Pfad hinbringe habe ich nicht ganz verstanden. In dem Script habe ich es mal mit run(@ScriptDir & "files\a.exe") versucht, aber die Anwendung wird nicht gestartet. Es wird wohl möglich sein der Anwendung zu sagen dass er die a.exe im Ordner "files" ausführen soll.

Erte
0

Anzeige

#2 Mitglied ist offline   DarkMole 

  • Gruppe: aktive Mitglieder
  • Beiträge: 422
  • Beigetreten: 28. August 05
  • Reputation: 0

geschrieben 23. November 2008 - 18:57

Also bei mir funktioniert es wenn ich einfach
run("files\a.exe")
schreibe.
Live for nothing or die for something

Silverstone Sugo-SG05 - ZOTAC GeForce 9300-ITX WiFi - Core 2 Quad Q8400 - Radeon HD 4850 Silent
OCZ Vista Performance Platinum 4Gb Kit - Samsung EcoGreen F2 1TB - Win 7 Pro
0

#3 Mitglied ist offline   Erte 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.059
  • Beigetreten: 03. Januar 07
  • Reputation: 0

geschrieben 23. November 2008 - 19:07

Beitrag anzeigenZitat (DarkMole: 23.11.2008, 19:57)

Also bei mir funktioniert es wenn ich einfach
run("files\a.exe")
schreibe.

oO

Ich schau's mir an aber bei mir will's irgendwie nicht klappen. Kanns daran liegen dass es auf einer externen Festplatte liegt?
No way, bei mir startet da rein gar nichts... Kann doch nicht sein. Der Pfad stimmt.

Liegt irgendwie an der Anwendung... wenn ich mir die notepad.exe aus c:\windows anstelle von der a.exe hinstelle, dann gehts...

Dieser Beitrag wurde von Erte bearbeitet: 23. November 2008 - 19:13

0

#4 Mitglied ist offline   DarkMole 

  • Gruppe: aktive Mitglieder
  • Beiträge: 422
  • Beigetreten: 28. August 05
  • Reputation: 0

geschrieben 23. November 2008 - 19:57

Anwendungen unter C:\Windows gehen immer, die sind systemweit verfügbar.

Habs grade nochmal getestet, bei mir funktionieren die folgenden Varianten alle:
run("files\a.exe")
run("files/a.exe")
run(".\files\a.exe")
run("./files/a.exe")

An der externen festplatte dürfte es eigentlich nicht liegen, die wird von Windows ja wie ein normales Laufwerk angesprochen. Aber du kannst es ja vorsichtshalber mal auf ne interne kopieren.

edit: Auf meinem Notebook (Vista) funktioniert es auch. Auch wenn ich es aus einem Netzwerordner raus starte

Dieser Beitrag wurde von DarkMole bearbeitet: 23. November 2008 - 20:48

Live for nothing or die for something

Silverstone Sugo-SG05 - ZOTAC GeForce 9300-ITX WiFi - Core 2 Quad Q8400 - Radeon HD 4850 Silent
OCZ Vista Performance Platinum 4Gb Kit - Samsung EcoGreen F2 1TB - Win 7 Pro
0

#5 Mitglied ist offline   Erte 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.059
  • Beigetreten: 03. Januar 07
  • Reputation: 0

geschrieben 23. November 2008 - 22:35

Beitrag anzeigenZitat (DarkMole: 23.11.2008, 20:57)

Anwendungen unter C:\Windows gehen immer, die sind systemweit verfügbar.

Habs grade nochmal getestet, bei mir funktionieren die folgenden Varianten alle:
run("files\a.exe")
run("files/a.exe")
run(".\files\a.exe")
run("./files/a.exe")

An der externen festplatte dürfte es eigentlich nicht liegen, die wird von Windows ja wie ein normales Laufwerk angesprochen. Aber du kannst es ja vorsichtshalber mal auf ne interne kopieren.

edit: Auf meinem Notebook (Vista) funktioniert es auch. Auch wenn ich es aus einem Netzwerordner raus starte

Danke für deine Tests. Also ich habe einfach mal nur ein Skript erstellt wo ich nur eine von den vier genannten Methoden reinkopiert habe. Die Anwendung befand sich dann auf dem Desktop. Auf dem Desktop war auch ein Ordner files, und dann die a.exe im Ordner. Ich habe es oft ausprobiert, aber er startet es einfach nicht. Ich sehe die Anwendung selbst als den schuldigen, da ich jede beliebige andere Anwendung so starten kann. Mich interessiert jetzt warum kann ich diese Anwendung nicht einfach über ein Skript starten. Ich habs sogar mit Batch versucht, selbiges Ergebnis.

Erte
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0