Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Wo ist oder wie heißt die Funktion: SHMessageBoxCheck? (https://www.delphipraxis.net/45208-wo-ist-oder-wie-heisst-die-funktion-shmessageboxcheck.html)

Luckie 2. Mai 2005 04:36


Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Laut des PSDK soll die Funktion SHMessageBoxCheck in der DLL shlwapi.dll version 5.0 or later enthalten sein. Ich habe auf meinem System die Version 6.irgendwas. Nur leider finde ich die besagte Funktion in der DLL nicht mit dem Dependece Walker. Und Versuche sie auf "gut Glück" zu importieren:
Delphi-Quellcode:
type
  TSHMessageBoxCheck = function(hWnd: THandle; Text: PChar; Title: PChar;
    Tpye: DWORD; Default: Integer; RegVal: PChar): Integer;

procedure TForm1.Button1Click(Sender: TObject);
var
  hLib: THandle;
  SHMessageboxCheck: TSHMessageBoxCheck;
begin
  hLib := LoadLibrary('shlwapi.dll');
  if hLib <> INVALID_HANDLE_VALUE then
  begin
    @SHMessageboxCheck := GetProcAddress(hLib, 'SHMessageBoxCheckA');
    if Assigned(SHMessageboxCheck) then
    begin
      SHMessageboxCheck(Handle, 'Test', 'Titel', MB_OK, 0, '1CD2DD9C-92CB-4931-B03D-E4164D134501');
    end
    else
      RaiseLastOSError;
  end;
end;
sind mit der Fehlermeldung:
Zitat:

System Error. Code: 127.
Die angegebene Prozedur wurde nicht gefunden.
fehlgeschlagen.

Dabei dachte ich, sie könnte sie ganz nützlich sein.

toms 2. Mai 2005 05:40

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Zitat:

C:\WINDOWS\system32>dumpbin /exports shlwapi.dll | find "SHMessageBoxCheck"
185 00057865 [NONAME] _SHMessageBoxCheckA@24
191 000577DB [NONAME] _SHMessageBoxCheckW@24
291 000579FA [NONAME] _SHMessageBoxCheckExA@28
292 0005797B [NONAME] _SHMessageBoxCheckExW@28

The SHMessageBoxCheck family of functions are apparently exported only
by ordinal.
Also: @SHMessageboxCheck := GetProcAddress(hLib, PChar(185));

Hier noch ein C Fragement:

Code:
+ * @ [SHLWAPI.185]
+ *
+ * Pop up a 'Don't show this message again' dialogue box.
+ *
+ * PARAMS
+ *  hWnd     [I] Window to be the dialogues' parent
+ *  lpszText [I] Text of the message to show
+ *  lpszTitle [I] Title of the dialogue box
+ *  dwType   [I] Type of dialogue buttons (See below)
+ *  iRet     [I] Value to return if dialogue is not shown
+ *  lpszId   [I] Name of registry subkey which determines whether to show the dialog
+ *
+ * RETURNS
+ *  Success: The value returned from the dialogue procedure (e.g. IDOK).
+ *  Failure: iRet, if the default dialogue resource could not be loaded or the
+ *           dialogue should not be shown.
+ *
+ * NOTES
+ *  - Both lpszTitle and lpszId must be less than MAX_PATH in length.
+ *  - Possible values for dwType are:
+ *| Value    Buttons
+ *| -----     -------
+ *|   0       OK
+ *|   1       OK/Cancel
+ *|   2       Yes/No
+ */
+INT_PTR WINAPI SHMessageBoxCheckA(HWND hWnd, LPCSTR lpszText, LPCSTR lpszTitle,
+                                  DWORD dwType, INT_PTR iRet, LPCSTR lpszId)
+{
+  WCHAR szTitleBuff[MAX_PATH], szIdBuff[MAX_PATH];
+  WCHAR *szTextBuff = NULL;
+  int iLen;
+  INT_PTR iRetVal;
+
+  if (lpszTitle)
+    MultiByteToWideChar(CP_ACP, 0, lpszTitle, -1, szTitleBuff, MAX_PATH);
+
+  if (lpszText)
+  {
+    iLen = MultiByteToWideChar(CP_ACP, 0, lpszText, -1, NULL, 0);
+    szTextBuff = HeapAlloc(GetProcessHeap(), 0, iLen * sizeof(WCHAR));
+    MultiByteToWideChar(CP_ACP, 0, lpszText, -1, szTextBuff, iLen);
+  }
+
+  MultiByteToWideChar(CP_ACP, 0, lpszId, -1, szIdBuff, MAX_PATH);
+
+  iRetVal = SHMessageBoxCheckW(hWnd, szTextBuff, lpszTitle ? szTitleBuff : NULL,
+                               dwType, iRet, szIdBuff);
+  if (szTextBuff)
+    HeapFree(GetProcessHeap(), 0, szTextBuff);
+  return iRetVal;
+}
+

Mephistopheles 2. Mai 2005 09:31

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Zitat:

Zitat von toms
Zitat:

The SHMessageBoxCheck family of functions are apparently exported only
by ordinal.
Also: @SHMessageboxCheck := GetProcAddress(hLib, PChar(185));

Woher nimmt DUMPBIN diese Info? Liest es dazu die PDB oder die (vorhandene) LIB ein, oder benutzt es Debuginfos aus der DLL?

Würde mich mal interessieren. Die Formatierung der Funktionsnamen klingt nach LIB-Einlesen.

Luckie 2. Mai 2005 11:21

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
ah, danke. allerdings bekomm eich jetzt eine AccessViolation:
Delphi-Quellcode:
type
  TSHMessageBoxCheck = function(hWnd: THandle; Text: PWideChar; Title: PWideChar;
    Tpye: DWORD; Default: Integer; RegVal: PWideChar): Integer;

procedure TForm1.Button1Click(Sender: TObject);
var
  hLib: THandle;
  SHMessageboxCheck: TSHMessageBoxCheck;
begin
  hLib := LoadLibrary('shlwapi.dll');
  if hLib <> INVALID_HANDLE_VALUE then
  begin
    @SHMessageboxCheck := GetProcAddress(hLib, PChar(185));
    if Assigned(SHMessageboxCheck) then
    begin
      SHMessageboxCheck(Handle, 'Test', 'Titel', MB_OK, 0, '1CD2DD9C-92CB-4931-B03D-E4164D134501');
    end
    else
      RaiseLastOSError;
  end
  else
    RaiseLastOSError;
end;
:gruebel:

NicoDE 2. Mai 2005 11:36

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Zitat:

Zitat von Luckie
ah, danke. allerdings bekomm eich jetzt eine AccessViolation

Ich glaube auch nicht, dass die Windows-Shell mit Delphis register-Aufrufkonvention zurecht kommt :)

Luckie 2. Mai 2005 11:38

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Zitat:

Zitat von NicoDE
Zitat:

Zitat von Luckie
ah, danke. allerdings bekomm eich jetzt eine AccessViolation

Ich glaube auch nicht, dass die Windows-Shell mit Delphis register-Aufrufkonvention zurecht kommt :)

:wall:

Luckie 2. Mai 2005 11:52

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
So geht's:
Delphi-Quellcode:
function MessageBoxCheck(hWnd: THandle; Text: PChar; Title: PChar;
  dwType: DWORD; Default: Integer; RegVal: PChar): Integer;
type
  TSHMessageBoxCheck = function(hWnd: THandle; Text: PChar; Title: PChar;
    dwType: DWORD; Default: Integer; RegVal: PChar): Integer; stdcall;
var
  hLib: THandle;
  SHMessageboxCheck: TSHMessageBoxCheck;
begin
  hLib := LoadLibrary('shlwapi.dll');
  if hLib <> 0 then
  begin
    @SHMessageboxCheck := GetProcAddress(hLib, PChar(185));
    if Assigned(SHMessageboxCheck) then
    begin
      result := SHMessageboxCheck(hWnd, Text, Title, dwType, 0, RegVal);
    end
    else
      result := GetLastError;
  end
  else
    result := GetLastError;
  FreeLibrary(hLib);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  MessageBoxCheck(Handle, 'Dies ist nur ein Testtext.',
    'Und dies ist der Titel', MB_OK or MB_ICONINFORMATION, 0,
    '2A622957-D0A5-41CA-8571-898247531A2C');
end;
Hat noch irgendjemand Verbesserungsvorschläge?

Code verbessert.

Blutiger Anfänger 2. Mai 2005 17:05

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Hallo zusammen,

leider habe ich gleich zwei Probleme. :(

1.Mit dem o.a. Quelltext hat der Button nur ein muedes zucken fuer mich uebrig.

2.Dumpbin liefert mir keine Ergebnisse.

Zu 1.)

Muss zu diesem Quellcode noch irgendetwas hinzugefügt werden, ausser den Vorgaben, die durch die
Unit schon automatisch erfolgen ???

Zu 2.)

Mit dem Aufruf von Dumpbin bekomme ich von keiner Dll den Inhalt angezeigt,
egal ob ich mit der Option out: filname, oder das Ergebnis mit ">" in eine Datei
umleite ! :?:

Betriebssystem: WinXP mit ServicePack 1; Shlwapi.Dll, Version 6.0.2800.1106;
Dumpbin.exe vom 29.03.2002 (2 KB)!

Kann mir jemand sagen (schreiben), was ich falsch mache, leider weiss ich auch, dass 99 % der Fehler
vor der Tastatur sitzen !!

Trotzdem waere es nett, wenn ich einen Tipp bekommen koennte

Danke,OPA :drunken:

Luckie 2. Mai 2005 17:08

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Zitat:

Zitat von Blutiger Anfänger
1.Mit dem o.a. Quelltext hat der Button nur ein muedes zucken fuer mich uebrig.

was meisnt du? Bei mir geht es wunderbar.

Zitat:

2.Dumpbin liefert mir keine Ergebnisse.
Was ist DumpBin?

Zitat:

Muss zu diesem Quellcode noch irgendetwas hinzugefügt werden, ausser den Vorgaben, die durch die
Unit schon automatisch erfolgen ???
Nein.

Zitat:

Mit dem Aufruf von Dumpbin bekomme ich von keiner Dll den Inhalt angezeigt,
egal ob ich mit der Option out: filname, oder das Ergebnis mit ">" in eine Datei
umleite ! :?:
Wenn sich das nicht expliziet auf die DLL aus dem Code bezieht, dann ist das Problem wohl genereller natur und hat hier nichts verloren.

Blutiger Anfänger 2. Mai 2005 17:23

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Sorry,
ich wollte hier keine Themen anschneiden die hier nicht hingehoeren!
Mit Dumpbin wollte ich lt. dem Beispiel von TOMS kontrollieren, ob in meiner
vorhandenen DLL die von dir genannten Funktionen hinterlegt sind!

Was ich meine !!

Wenn das OnClick Ereignis auf Button1 ausgefuehrt wird, erscheint bei mir keine Meldung, keine Box !
Ich ging davon aus, dass das der Sinn des Programm's war .

Ansonsten SORRY :duck:

und Danke

Luckie 2. Mai 2005 17:25

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Dann geh das doch mal in Einzelschritten durch und guck, wo der Fehler liegt, deswegen ist ja die Fehlerbehandlucng mit den if's drinne.

Blutiger Anfänger 2. Mai 2005 17:34

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Hi,
genau das ist ja das Problem, sonst haette ich das auslesen der DLL nicht versucht,
wenn ich das Programm im EinzelschrittModus laufen lasse, werden alle noetigen
Funktionen erfüllt.
Leider erfolgt keine Bildschirmausgabe mit irgendeiner Meldung!
Fehlermeldungen gibt es auch nicht! :gruebel:

marabu 2. Mai 2005 19:14

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Zitat:

Zitat von Blutiger Anfänger
Leider erfolgt keine Bildschirmausgabe mit irgendeiner Meldung!

It's no bug, it's a feature! Wenn du dir den Dialog bereits einmal verbeten hast, dann liefert der Aufruf nur noch den Default-Wert - es erfolgt dann keine Ausgabe mehr auf deinem Bildschirm.

Unblutige Grüße vom marabu

Blutiger Anfänger 2. Mai 2005 19:59

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
hallo Marabu,

vielen Dank fuer die unblutigen Gruesse, aber es hat bisher noch nie eine Bildschirmausgabe stattgefunden, es ei denn, sie erscheint nicht im Vordergrund und nur fuer einen kurzen Moment,
aber das glaube ich nicht.
Vielleicht bin ich einfach nur zu blöde, obwohl ich ja nur den Code von Michael kopiert und in ein
neu erstelltes Formular mit einem Button eingefügt habe.
Nur wenn es bei allen anderen funktioniert, wird es wohl an mir liegen !!

Danke trotzdem
Gruss Opa

marabu 2. Mai 2005 20:09

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Hallo Opa,

schau mal in der Registry nach, ob der Dialog da eingetragen ist:

Code:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\DontShowMeThisDialogAgain
marabu

Blutiger Anfänger 2. Mai 2005 20:19

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Hi Marabu,

nein, der Eintrag ist nicht vorhanden !

Sprint 2. Mai 2005 20:24

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Zitat:

Zitat von Luckie
Delphi-Quellcode:
{...}
  hLib := LoadLibrary('shlwapi.dll');
  if hLib <> INVALID_HANDLE_VALUE then
{...}

Hinweis: Sollte LoadLibrary fehlschlagen, dann ist der Rückgabewert gleich null. Und nicht $FFFFFFFF (-1).

Luckie 2. Mai 2005 20:28

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Zitat:

Zitat von Sprint
Hinweis: Sollte LoadLibrary fehlschlagen, dann ist der Rückgabewert gleich null. Und nicht $FFFFFFFF (-1).

Verdammt. Blöde API.

brechi 2. Mai 2005 20:29

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
hab auch in einem anderen Post von dir (luckie) gelesen das du auch mal eine dll so geladen hast:

Delphi-Quellcode:
h := GetModuleHandle('bla.dll')
if h = 0 {bzw bei dir INVALIDHANDLEVALUE was aber falsch ist} then
  h := LoadLibrary('bla.dll');
das würde ich auf keinem fall so machen aus dem einfachen grund wenn eine andere dll FreeLibrary('bla.dll') ausführt
die dll freigegeben wird und bei jedem aufruf eines exports später es einen crash gibt

lädt man die dll aber ein 2. mal mit LoadLibrary('bla.dll') dann kann die andere dll ruhig FreeLibrary('bla.dll') machen
solange der "loadcount" nicht 0 ist wird die dll nicht freigegeben und du kannst sie ohne probleme weiterbenutzen

ausserdem ist es kürzer :)

Luckie 2. Mai 2005 20:33

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Ist ja mittlerweile korrigiert. Aber es ist nochnicht geklärt, warum es bei dem einem Benutzer noch nicht geht.

Blutiger Anfänger 2. Mai 2005 21:07

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Hallo zusammen,

ich will ja nicht nerven, aber im Einzelschritt-Modus wird alles einwandfrei ausgefuehrt,
aber die Bildschirmausgabe fehlt, beim Betaetigen des Buttons bewegt sich kurz der Cursor,
dass System reagiert also auf die Eingabe, aber nicht mit einer sichtbaren Ausgabe.

Danke,OPA

Blutiger Anfänger 2. Mai 2005 22:59

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
noch einmal hallo zusammen,

das Problem ist teilweise gelöst, d.h. mit der selben DLL laeuft das Programm
unter WIN2k einwandfrei.
Auf einem anderen identischen Rechner unter XP nicht.
Insgesamt sieht es so aus:
Zwei verschiedene Rechner, Installation XP, die selbe DLL, keine Funktion !
Dritter Rechner , die selbe DLL, unter WIN2k , Funktion einwandfrei!

Warum , wieso, weshalb, kann ich noch nicht sagen.
Aber ich werde es Euch mitteilen, sobald ich den Fehler geunden habe!!

Danke noch einmal fuer Eure Mühe !!!

Opa

Mephistopheles 2. Mai 2005 23:22

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Hat der XP-Rechner schon SP2? Dann könnte es sein, daß die DLL irgendwelche Schweinereien im Speicher macht, die man lieber ab SP2 nicht mehr machen sollte. Dann dürfte es auch nicht auf W2K3 SP1 laufen!

Blutiger Anfänger 2. Mai 2005 23:27

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
hallo Mephistopheles,

auf beiden XP Rechnern ist "nur" ServicePack 1, W2K3 besitze ich nicht,
auf W2k einwandfreie Funktion

OPA

Luckie 2. Mai 2005 23:34

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Eventuell wird die Funktion mit der XP DLL mit einem anderen Index Exportiert. Könnte da mal jemand nachgucken?

Mephistopheles 2. Mai 2005 23:38

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Sagst du mal, welche DLL du meinst?

XP hat auch ein anderes Handling des Stack und von SEH. Das sind alles potentielle Inkompatibilitäten!

Blutiger Anfänger 2. Mai 2005 23:47

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
hallo nochmal,

die "XP DLL" habe ich auf W2k in einen "TestPfad" kopiert, in Luckie's Programm gebe ich dann diesen Pfad mit an. Es ist die SELBE DLL, nicht die GLEICHE !

Gruss OPA

Mephistopheles 2. Mai 2005 23:53

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Um welche DLL geht es denn?

Blutiger Anfänger 2. Mai 2005 23:55

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
es geht um die shlwapi.dll
OPA

Blutiger Anfänger 3. Mai 2005 00:06

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Sorry, Nachtrag!

Da es sich aber umdie SELBEN DLL's handelt, wird der Fehler wohl mit meinen Installationen zusammenhaengen, oder bin ich der einzige, der das bisher unter XP Prof. mit SP 1 versucht hat ???

OPA

MathiasSimmack 3. Mai 2005 07:18

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
XP SP2 geht bei mir. Ich wüsste jetzt aber nicht, warum sich der Index von einem Servicepack zum anderen geändert haben soll. :gruebel: Zumal die Funktion im PSDK XP SP2 auch offen erwähnt wird.

NicoDE 3. Mai 2005 08:24

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Zitat:

Zitat von MathiasSimmack
XP SP2 geht bei mir. Ich wüsste jetzt aber nicht, warum sich der Index von einem Servicepack zum anderen geändert haben soll. :gruebel: Zumal die Funktion im PSDK XP SP2 auch offen erwähnt wird.

Wiziger Weise taucht die Funktion in den Headern der aktuellen Beta-Versionen des DDK und des PSDK (w2k3r2) nicht auf...

Luckie 3. Mai 2005 10:07

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
*grml* Das ist so eine schöbe Funktion, wen nman mal so eine Messagebox braucht. Sich so was selber bastelen ist ja doch etwas umständlich. Und dann scheitert das ganze weil MS zu blöd ist das ganz normal zu implementieren wie jede andere Messagebox auch.

Blutiger Anfänger 3. Mai 2005 20:48

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
und noch mal Hallo,

nachdem ich einige Kombinationen mit verschiedenen DLL's ausprobiert habe ,
u.a. hier, dort
wird zwar nicht der aktuelle Fehler beschrieben, aber konnte ja sein, dass
es funktioniert, war nix !!!
Habe dann ein nacktes Sytem neu aufgesetzt, XP SP1, war auch nix !
Soll nur zu Info sein, nicht dass noch jemand das gleiche probiert.
Ansonsten wuerde mich interessieren ob jemand das Programm unter XP SP1,
an's laufen bekommen hat. In dem Fall waere ein Directory - Listing von
Windows\System32 interessant.

Bis dann Opa

Mephistopheles 3. Mai 2005 21:06

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Ich setze mich mal kurz dran. Also es kann schonmal nicht daran liegen, daß die Funktion nicht existiert. Ordinal 187 existiert auch in XP SP1!

Blutiger Anfänger 3. Mai 2005 21:16

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Hi,
es wird aber Ordinal 185 verwendet !!

Gruss OPA

Mephistopheles 3. Mai 2005 21:27

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, ich habe Luckies Code ein wenig angepaßt, damit er direkt aufgerufen werden kann. Es gibt allerdings kein OleInitialize o.ä. (falls das notwendig wäre!). Auf W2K läuft der Code tadellos. Auf WXP erscheint keine MessageBox.

Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE}
uses
  Windows;

function MessageBoxCheck(hWnd: THandle; Text: PChar; Title: PChar;
  dwType: DWORD; Default: Integer; RegVal: PChar): Integer;
type
  TSHMessageBoxCheck = function(hWnd: THandle; Text: PChar; Title: PChar;
    dwType: DWORD; Default: Integer; RegVal: PChar): Integer; stdcall;
var
  hLib: THandle;
  SHMessageboxCheck: TSHMessageBoxCheck;
begin
  hLib := LoadLibrary('shlwapi.dll');
  if hLib <> 0 then
  begin
    @SHMessageboxCheck := GetProcAddress(hLib, PChar(185));
    if Assigned(SHMessageboxCheck) then
    begin
      result := SHMessageboxCheck(hWnd, Text, Title, dwType, 0, RegVal);
    end
    else
      result := GetLastError;
  end
  else
    result := GetLastError;
  FreeLibrary(hLib);
end;

begin
  MessageBoxCheck(0, 'Dies ist nur ein Testtext.',
    'Und dies ist der Titel', MB_OK or MB_ICONINFORMATION, 0,
    '2A622957-D0A5-41CA-8571-898247531A2C');
end.
Ich bin es mit IDAs Debugger durchgegangen und es wird die Funktion 185 aufgerufen. Danach habe ich mit FileMon und RegMon gecheckt, ob es Rechteprobleme o.ä. gibt, was nicht der Fall war. Entsprechend ist meine Diagnose, daß es sich um ein Problem innerhalb von 185 oder einer der aufgerufenen Funktionen handelt. Da ich aber keine Zeit für eine detaillierte Analyse der Funktion im Debugger habe, muß das wohl jemand anderes übernehmen!

PS: Ordinal 187 war ein Verschreiberling ;) ... ich meinte 185

Blutiger Anfänger 3. Mai 2005 21:49

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
habe aber jetzt , wie vorhin beschrieben, ein System ganz neu aufgesetzt, reines BS mit SP1!!
Wahrscheinlich IMHO haengt das mit der Abhaengigkeit verschiedener DLL's zusammen,
nur um das herauszufinden muesste ein System mit o.g. Konfiguration laufen, deswegen waere
ja dann ein Listing von Windows\System32 interessant.
Natuerlich kann das auch mit der Kernel32.dll etc.. zusammenhaengen,
nur bin ich da mit meinem Latein am Ende, dies zu analysieren.
So tief gehen meine Betriebssytemkenntnisse LEIDER nicht !
Wenn du eine Loesung finden solltest, um so besser, dann waere allerdings auch der Loesungsweg
(fuer mich) interessant :)

Gruss OPA

Blutiger Anfänger 3. Mai 2005 22:02

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
hoppla,
da warst du wohl schneller,
nur deine Diagnose wurde schon vorher in Erwaegung gezogen, aber wahrscheinlich hast di dir nicht alle Beitraege angeschaut, habe Eingangs beschrieben (ich meine auf Seite 2), dass der Button
auf das OnClick-Ereignis reagiert, allerdings ohne Bildschirmausgabe!
Schade dass du keine Zeit hast das zu analysieren, meine Faehigkeiten reichen da leider nicht aus.

Trotzdem Danke, OPA

Mephistopheles 3. Mai 2005 22:15

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?
 
Du meinst den TButton auf einem TForm? Ich hatte ja nichtmal ein Form. Fakt ist, daß die Funktion aufgerufen wird, daß sie existiert und daß es möglich sein sollte daß eine MessageBox ausgegeben wird. Leider konnte ich nirgends eine Doku zu dieser Funktion auftreiben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:25 Uhr.
Seite 1 von 4  1 23     Letzte »    

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