JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=9ce7b589b056e1cdc6a08008369073cbMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

ShellExecute() stört Programm

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 06.10.2007, 22:28    Titel: ShellExecute() stört Programm Antworten mit Zitat

Es handelt sich um eine Windowsapplikation mit mehreren Dialogen unter Verwendung von der winapi. Dummerweise scheint ShellExecute das Programm in bestimmten Fällen zu stören.
Übergebe ich einen Pfad zu einer lokalen Datei o.ä., geht das ganze gut. Sobald ich allerdings eine URL übergebe/aufrufen lassen, gibt es seltsame Probleme:
Ich muss oft "wie wild" herumklicken, bis sich endlich die erwünschte Wirkung zeigt. Das Seltsame ist, dass ShellExecute immer ausgeführt wird, wenn per Maus/Tastatur der entsprechende Befehl gegeben wird - ich hab das mit dem Debugger überprüft.
Bei folgendem Aufruf passiert dann (fast) nichts:
CPP:
ShellExecute(NULL,L"open",L"http://google.de",NULL,NULL,SW_SHOW);

Das einzige was passiert, ist dass zunächst offenbar das Programm "gestört" wird. Es lässt sich nicht mehr auf herkömmlichem Weg schließen. Bei Alt+F4 passiert einfach gar nichts und ich muss den Taskmanager zur Hilfe nehmen.
Versuche ich, den ein und denselben ShellExecute noch weitere Male auszuführen, so passiert irgendwann mal was und im Browser öffnet sich tatsächlich google. Allerdings bleibt die "Störung" des Programms immer noch und zwar genau ab dem Zeitpunkt, ab dem ShellExecute zum ersten Mal mit einer URL als Parameter aufgerufen wird. (Kommentiere ich diese Zeile aus, verhält sich alles normal.)

Meine Vermutung ist, dass ja durch ShellExecute soweit ich weiß ein neuer Prozess erstellt wird und dieser aus irgendeinem Grund das Programm blockiert bzw. am Schließen hindert. Ich hab keine Ahnung, woran das liegen könnte, aber das kann doch nicht normal sein...
Bekommt ihr es hin, so eine URL aufzurufen oder seid ihr schon mal auf ähnliche Probleme gestoßen?
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Maxim
Senior JLI'ler



Anmeldedatum: 28.03.2004
Beiträge: 249

Medaillen: Keine

BeitragVerfasst am: 07.10.2007, 06:03    Titel: Antworten mit Zitat

Also beim mir hat es immer ohne Probleme funktioniert:

CPP:
ShellExecute(0, _T("open"), _T("http://newmaxim.ne.funpic.de"), NULL, NULL, SW_SHOWNORMAL);


Vielleicht liegt es an dem letzten Parameter??? Versuche mal mit SW_SHOWNORMAL.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 07.10.2007, 13:15    Titel: Antworten mit Zitat

Das bringt nichts, das hab ich auch schon mal versucht Wink
Irgendwas kann da doch nicht in Ordnung sein. Ich hab das sogar mal an den Anfang eines minimalistischen Konsolenprogramms gepackt und ShellExecute() wird zwar ausgeführt, aber weder öffnet sich irgendwas im Browser noch wird irgendeine Codezeile hinter dem ShellExecute() ausgeführt.
Beim Debuggen verschwindet der gelbe Pfeil einfach, der normalerweise die nächste Codezeile anzeigt...
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 07.10.2007, 15:22    Titel: Antworten mit Zitat

hast du das mal auf nem anderen Rechner probiert? Das könnte jetzt etwas weit hergeholt sein, aber manchmal hindern bestimmte "Schutz"programme (wie Virenscanner etc.) bestimmte softwarearten vor solchen Aktionen die dein Programm fälschlicherweise als gefährlich einstufen. Bei mir hat bspw. f-secure mal mein Programm vor einem einfachen registrylesezugriff gehindert aus versch. gründen.

Gruß DXer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 07.10.2007, 17:22    Titel: Antworten mit Zitat

Bei mir scheint es auch zu klappen - allerdings wird das 2. ShellExecute() erst aufgerufen, wenn die 1. Seite komplett geladen ist.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 07.10.2007, 18:01    Titel: Antworten mit Zitat

DirectXer hat Folgendes geschrieben:
hast du das mal auf nem anderen Rechner probiert? Das könnte jetzt etwas weit hergeholt sein, aber manchmal hindern bestimmte "Schutz"programme (wie Virenscanner etc.) bestimmte softwarearten vor solchen Aktionen die dein Programm fälschlicherweise als gefährlich einstufen. Bei mir hat bspw. f-secure mal mein Programm vor einem einfachen registrylesezugriff gehindert aus versch. gründen.

Gruß DXer

Das ist in der Tat weit hergeholt und ich find irgendwie schwachsinnig, aber offenbar hast du recht...
Danke für deine/eure Hilfe Wink

Einerseits beschränkt von ZoneAlarm, dass es den Zugriff ins Netz meinem Programm zuschreibt (dabei greift ja letztendlich nur der entsprechende Browser drauf zu...) und andererseits komisch, dass es nach mehreren Versuchen doch zugelassen wird.
Naja, jedenfalls gings jetzt beim ersten Mal, als ich dem Programm auch Zugriff aufs Netzwerk gegeben hab Smile
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum