AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Vista und Comandlineparamerübergabe, "..ist ja 'n Ding!"
Thema durchsuchen
Ansicht
Themen-Optionen

Vista und Comandlineparamerübergabe, "..ist ja 'n Ding!"

Ein Thema von turboPASCAL · begonnen am 4. Jan 2008 · letzter Beitrag vom 12. Feb 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#1

Vista und Comandlineparamerübergabe, "..ist ja 'n Ding!

  Alt 4. Jan 2008, 14:35
Vista und Comandlineparamerübergabe, "..ist ja 'n Ding!"

@mods:
Tja, ich weis jetzt nich so recht wohin mit dem Thema, ist sowol API als auch BS.



Also, ich wusel gerade ein wenig mit Vista rum und bemerke das einige ältere Programme für XP
probleme mit Parametern haben. Kann ja nun nicht sein dachte ich mir und habe eine kleines Programm
geschrieben welches als Loader dient. Nun siehe da es klappt. Ich frage mich nur woran das liegt?

Delphi-Quellcode:
program ResEd;

{$R '_res\resources.res' '_res\resources.rc'}
{.$DEFINE DEBUG}

uses
  Windows,
  ShellAPI;

const
  OrginalExecFile = 'ResEd!.exe';

function LastDelimiter(S: String; Delimiter: Char): Integer;
var
  i: Integer;
begin
  Result := -1;
  i := Length(S);
  if (S = '') or (i = 0) then
    Exit;
  while S[i] <> Delimiter do
  begin
    if i < 0 then
      break;
    dec(i);
  end;
  Result := i;
end;

function ExtractFilePath(sFilename: String): String;
begin
  if LastDelimiter(sFilename, '\') = -1 then
    Exit;
  Result := Copy(sFilename, 1, LastDelimiter(sFilename, '\'));
end;

{function GetVirtualPathName(path: string): string;
var
  FileInfo: TSHFileInfo;
begin
  SHGetFileInfo( PAnsiChar(path), 0,
    FileInfo, SizeOf(TSHFIleInfo), SHGFI_DISPLAYNAME);

  result := FileInfo.szDisplayName;
end;}


function WinMain(hInstance: HINST; hPrevInstance: HINST;
  lpCmdLine: PChar; nCmdShow: Integer): Integer; stdcall;
var
  Err : Cardinal;
  s : String[128];
  params : string;
  i : integer;
begin
  params := '';
  s := '';

  if ParamCount > 0 then
  begin
    for i := 1 to ParamCount do
    begin
      params := params + #32 + ParamStr(i);
    end;

    if params[1] = #32 then Delete(params, 1, 1);
  end;


  Err := ShellExecute(GetDesktopWindow, 'open', PCHAR(OrginalExecFile), PCHAR(Params),
    PCHAR(ExtractFilePath(ParamStr(0))), nCmdShow);
  if Err <= 32 then
  begin
    case err of
      0    : s:= 'The operating system is out of memory or resources.';
      ERROR_FILE_NOT_FOUND : s:= 'The specified file was not found.';
      ERROR_PATH_NOT_FOUND : s:= 'The specified path was not found.';
      // ... *schnipp*
    end;

    MessageBox(0, PChar('Error:'#10#13#10#13'CmdLine: '+ Paramstr(0) + #10#13+
      params+#10#13#10#13+s), '!Launcer', MB_ICONERROR or MB_OK);
  end;

  Result := 0;
end;

BEGIN
  WinMain(hInstance, System.hPrevInst, System.CmdLine, System.CmdShow);
  
  {$IFDEF DEBUG}
    MessageBox(GetDesktopWindow, System.CmdLine,
      '!Launcer: CmdLine:', MB_ICONINFORMATION or MB_OK);
  {$ENDIF DEBUG}
END.
Kann so etwas an Unicode liegen ?
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Vista und Comandlineparamerübergabe, "..ist ja 'n D

  Alt 4. Jan 2008, 14:43
Hast du die User-Gängelung UAC (User Account Control) aktiv und übergibst Dateien die unter C:\Programme oder C:\Windows liegen? Dann könnte die Virtualisierung des Dateisystems zuschlagen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#3

Re: Vista und Comandlineparamerübergabe, "..ist ja 'n D

  Alt 4. Jan 2008, 16:30
Das dürfte egal sein da der bzw. die übergebenen Datei.- und Pfadnamen den realen entsprechen.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Vista und Comandlineparamerübergabe, "..ist ja 'n D

  Alt 4. Jan 2008, 16:32
Schalte doch mal Testhalber UAC ab und probier es dann. Unter Vista würde ich nichts als egal ansehen. Dazu sind noch zu viele Macken/Fehler vorhanden.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#5

Re: Vista und Comandlineparamerübergabe, "..ist ja 'n D

  Alt 4. Jan 2008, 17:03
Was genau haben denn diese Programme für ein Problem?
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#6

Re: Vista und Comandlineparamerübergabe, "..ist ja 'n D

  Alt 4. Jan 2008, 17:20
Teilweise schmieren die einfach ab. Mit dem Launcher klappts ohne (fasst immer) Probleme.
Nur die Delphi32.exe sagt sie könne die Datei XYZ nicht finden. Die Delphi32.exe ohne den
Launcher gestartet gibt folgenden Fehler aus:

Zitat:
Zugriffsverletzung bei Adresse 00881890 in Modul 'coreide60.bpl' ...
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#7

Re: Vista und Comandlineparamerübergabe, "..ist ja 'n D

  Alt 11. Feb 2009, 07:03
Moin, ich wollte mal nachfragen ob der ein oder andere auch soche Dinge beobachten konnte.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

Re: Vista und Comandlineparamerübergabe, "..ist ja 'n D

  Alt 11. Feb 2009, 07:24
Startest du Delphi im Admin Modus? Wenn nicht, könnte das daran liegen.
  Mit Zitat antworten Zitat
grizzly

Registriert seit: 10. Dez 2004
150 Beiträge
 
Delphi XE4 Professional
 
#9

Re: Vista und Comandlineparamerübergabe, "..ist ja 'n D

  Alt 11. Feb 2009, 08:20
Mein Delphi 7 schmiert auch ab, wenn ich es mit einer Projektdatei als Parameter starten will. Lustigerweise erinnert es sich aber an den Namen, wenn ich es anschließend nochmal regulär starte und dann das Projekt über den Laden-Dialog öffnen will: Es steht dann schon in der Liste der zuletzt geöffneten Projekte...
Wenigstens gibt es sich Mühe...

Gruß
Michael
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#10

Re: Vista und Comandlineparamerübergabe, "..ist ja 'n D

  Alt 11. Feb 2009, 08:38
Naja, es geht nicht nur um Delphi, meines läuft ja bis auf den kleinen Fehler.
Generell haben manche ältere Programme dieses Problem.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:52 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