Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Shellexecute AmdX2 problem ? (https://www.delphipraxis.net/78688-shellexecute-amdx2-problem.html)

th_bone 9. Okt 2006 13:43


Shellexecute AmdX2 problem ?
 
Hi,

seit kurzem habe ich ein Problem auf allen PCs mit Amd X2 (dual core konnte ich nicht testen)

ich starte ein Javaprogramm mittels eines links der auf dem Desktop angezeigt wird (hat bisher auch mit X2s gefunzt)

Delphi-Quellcode:

ShellExecute(Application.Handle, 'open' , PChar('progname') , nil, PChar('programmpfad'), sw_ShowNormal);
ich kann das Problem nur insoweit eingrenzen das es erst so ab dem letzten Sicherheitsupdate von MS auftritt

aber wie gesagt nur auf den X2s - auf verschieden 1CPU Rechnern geht es ohne probleme -

Ich habe auch schon versucht das programm mit

SetProcessAffinityMask(GetCurrentProcess, 1);

auf eine CPU festzulegen was in der Vergangenheit öfters solche probleme gelöst hat.

Bin im moment einfach ratlos wo das problem stecken könnte - Pfade/namen etc. stimmen alle

Danke

Ralf

P.S. der Rückgabewert von Shellexecute ist 42 (und damit identisch mit dem der 1CPU PCs wo es ohne Probleme funktioniert)

supermuckl 9. Okt 2006 14:48

Re: Shellexecute AmdX2 problem ?
 
und was ist jetzt das problem?

th_bone 9. Okt 2006 16:25

Re: Shellexecute AmdX2 problem ?
 
shellexecute funktioniert nicht mehr auf den AMD 3800 X2 Rechnern... aber dieselbe exe funktioniert auf 1CPU Rechnern

und natürlich soll es auch auf den X2s laufen ...

Delphi-Quellcode:

ShellExecute(Application.Handle, 'open' , PChar('progname') , nil, PChar('programmpfad'), sw_ShowNormal);

th_bone 10. Okt 2006 16:49

Re: Shellexecute AmdX2 problem ?
 
Hi,

das Problem lies sich nur durch eine Krücke lösen...

statt shellexecute verwende ich zum Aufruf des links Tastaturcodes mit Sendkey

Delphi-Quellcode:
SendKeys('^{ESC 1}', true); delay(30);
Sendkeys('u', true); delay(30);
Sendkeys(pchar('linkname_mit_pfad'), false); delay(30);
Sendkeys('{ENTER}', false);
so funktioniert der Aufruf des Java links auch wieder auf den X2's

(wobei ich immer noch nicht weiss wieso shellexecute nicht mehr funktioniert)

Tschö

Ralf

Daniel 10. Okt 2006 16:51

Re: Shellexecute AmdX2 problem ?
 
Hast Du mal ein Mini-Beispielprogramm für mich? Ich würde das gerne mal auf meiner DualCore-CPU testen.

th_bone 10. Okt 2006 18:03

Re: Shellexecute AmdX2 problem ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Anbei eine Demo..

ich muß aber nochmal dazu sagen, dass es bis zum letzten Patch Day von MS problemlos auch auf
den X2s funktioniert hat.

mein WinXP home ist also auf dem wörtlich "allerletzen" patchstand

Tschüss

Ralf

TKC 10. Okt 2006 18:49

Re: Shellexecute AmdX2 problem ?
 
Hi,

seltsam .. ich habe zwar kein Dualcore ... jedoch funktioniert es bei mir auch nicht.

Bei mir kommt ein Verzeichnisauswahl Fenster mit dem Titel "Elemente Verschieben" .

Daniel 10. Okt 2006 18:56

Re: Shellexecute AmdX2 problem ?
 
Merkwürdig.

Ich musste den Pfad anpassen, aber diese Änderung sollte die Situation ja nicht grundlegend ändern.

Delphi-Quellcode:
Fpfad ='c:\Documents and Settings\All Users\Desktop\';
Hier funktioniert aber alles wie erwartet. Ist zwar DualCore, aber auch ein WinXP Pro x64.

NicoDE 10. Okt 2006 18:59

Re: Shellexecute AmdX2 problem ?
 
1) Du solltest dir angewöhnen Rückgabewerte zu überprüfen
2) versuch's mit fpath + fname

th_bone 10. Okt 2006 19:46

Re: Shellexecute AmdX2 problem ?
 
@NicoDE

1. Rückgabewerte sind immer in Ordnung (prüfe ich natürlich im Hauptprogramm)
2. hatte ich auch schon probiert - keine Änderung

kann den jemand das Problem auf einem AMD X2 mit WinXP home nachvollziehen ?

wenns bei DualCore funktioniert scheint sich das Problem wohl auf die X2s und auf
links einzugrenzen... exe lassen sich ja seltsamerweise starten...
(hatte es wie gesagt auf 2 unabhängigen X2s probiert - und zur Sicherheit auch als Admin
angemeldet)

naja morgen ist ja wieder Patchday mal sehen obs dann wieder geht...

Tschö

Ralf

th_bone 4. Nov 2006 05:51

Re: Shellexecute AmdX2 problem ?
 
Hi,

muß den Thread nochmal hochholen, nach dem letzten sicherheitsupdate lassen sich links auch nicht mehr mit meinem 1CPU Toshiba
Notebook mit WinXP home per shellexecute ausführen... :(

Bei meinem Samsung Notebook mit WinXP Pro funktioniert es aber weiterhin problemlos...

gibt es noch eine andere Möglichkeit links auszuführen, meine sendkey lösung ist halt fehleranfällig, wenn jemand an dem PC gerade arbeitet

oder

kann man den den java-link irgendwie direkter aufrufen ?

hier der inhalt des links:

Zitat:

C:\WINDOWS\system32\javaw.exe -cp jts.jar;pluginsupport.jar;jcommon-1.0.0.jar;jfreechart-1.0.0.jar;jhall.jar;other.jar;rss.jar -Dsun.java2d.noddraw=true -Xmx256M jclient/LoginFrame C:\JTS
ich habe es leider bisher nicht geschafft dies über shellexecute direkt auszuführen...

und wie gesagt das Problem tritt NUR beim aufruf von .LNK files auf - .EXE werden weiterhin OHNE probleme von shellexecute ausgeführt

UND nein das Sicherheitsupdate zu deinstallieren ist hier keine Lösung, da die Kiste 24h am Internet hängt..


wer ne Lösung hierfür kennt den könnte ich echt :kiss: ,

den dieser Fehler treibt mich langsam in den Wahnsinn :wall:

Tschö und danke im voraus

Ralf :dp:

BeeJay 18. Nov 2006 16:52

Re: Shellexecute AmdX2 problem ?
 
Hi

Sieht so aus als wolltest Du die Trader Workstation starten. Ich mache das in TWSStart mit CreateProcess.

Selbst habe ich keinen Dual Core oder AMD X2 aber sicher einige Anwender von TWSStart und von denen habe ich noch keine Nachricht erhalten, daß es nicht funktionieren würde.

Wenn Du allerdings nicht den Link der Trader Workstation Installation startest, mußt Du Dich immer selbst drüm kümmern, daß der ClassPath etc. akutell ist. Sonst klappt der Start der TWS nicht.

th_bone 18. Nov 2006 18:35

Re: Shellexecute AmdX2 problem ?
 
@BeeJee

Hi,

richtig ich ich möchte die TWS automatisiert aus meinem Programm heraus starten.

Dass hatte bisher auch über "shellexecute" problemlos funktioniert, aber wie gesagt seit den
letzten updates von MS funktioniert es auf 2 AMD X2s beim aufruf von links nicht mehr.

Und da sich der ClassPath ja laufend ändert war das eigentlich die einzige praktikable Möglichkeit.

Im moment habe ich mir damit beholfen, dass der link über start->ausführen geladen wird...

Createprocess muß ich mir mal anschauen - danke für den Tip

Tschüss und schönes Wochenende

Ralf

BeeJay 19. Nov 2006 01:36

Re: Shellexecute AmdX2 problem ?
 
Na ja, so oft ändert sich der ClassPath nun auch wieder nicht.

Wenn Du das Programm nur für Dich verwendest sollte es kein Problem sein.

N8

BeeJay


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz