Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Anfängerhilfe : Inkompatible Chars? (https://www.delphipraxis.net/129408-anfaengerhilfe-inkompatible-chars.html)

coolio 18. Feb 2009 17:04


Anfängerhilfe : Inkompatible Chars?
 
Guten Nachmittag!

Wie vielleicht einige wissen, gibt es eine Möglichkeit bei Windows, das Passwort über Cmd zu ändern.
Der Befehl dafür lautet z.B. : "net user Administrator passwort" .
So etwas wollte ich in Delphi programmieren. In ein Edit-Feld wird das neue Passwort eingeben, und über einen Button dann geändert.
Eigentlich nicht schwer dachte ich, doch ich bekam immer wieder Fehlermeldungen. Im Moment ist es die hier:

"[DCC Fehler] Unit1.pas(32): E2010 Incompatible types: 'Char' and 'AnsiChar'"

Hier mal mein Quellcode:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Passwort : String;
begin
  Passwort := Edit1.Text;
  windows.WinExec(PChar('net user Administrator' + Passwort),0);
end;
Hoffe jemand kann mir helfen, Danke im vorraus!

MFG

himitsu 18. Feb 2009 17:09

Re: Anfängerhilfe : Inkompatible Chars?
 
Du verwendet wirklich D2005 und nicht etwa D2009?

unter D2009 ist PChar = PWideChar und nicht PAnsiChar.


Ach ja und statt dem veralteten WinExec würde sich ein Hier im Forum suchenShellExecute besser machen
Zitat:

Zitat von OH
Note This function is provided only for compatibility with 16-bit Windows. Applications should use the MSDN-Library durchsuchenCreateProcess function.


coolio 18. Feb 2009 17:15

Re: Anfängerhilfe : Inkompatible Chars?
 
Oh stimmt, mittlerweile benutze ich D2009.. Wie lautet denn dort der Befehl dann?

himitsu 18. Feb 2009 17:20

Re: Anfängerhilfe : Inkompatible Chars?
 
Wie gesagt, am Besten du steigst auf ShellExecute um, da gibt es auch eine Unicode-Versionen. (bzw. diese wird standardmäßig verwendet)

ansonsten mußt du (da es WinExec nur als Ansi gibt) natürlich AnsiString und PAnsiChar verwenden
Delphi-Quellcode:
var Passwort : AnsiString;
begin
  Passwort := Edit1.Text;
  windows.WinExec(PAnsiChar('net user Administrator ' + Passwort),0);
end;

PS: ich glaub hinter Administrator fehlt noch ein Leerzeichen :zwinker:

coolio 18. Feb 2009 17:25

Re: Anfängerhilfe : Inkompatible Chars?
 
Erstmal Danke! Es funktioniertt so:) Werde mir dann überlegen noch umzusteigen. Aber das Problem ist immerhin gelöst!

SirThornberry 18. Feb 2009 17:53

Re: Anfängerhilfe : Inkompatible Chars?
 
Kommt bei dir keine Meldung das winexec depricated ist? Das ist eigentlich schon seit mehreren Delphiversionen so.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 Uhr.

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