|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Aug 2007
Città: Losgoth, Italy
Messaggi: 126
|
Delphi Far eseguire programmi
ok ho bisogno di 1 mano con delphi, devo scrivere 1 programma che quando lanciato esegua altri 2 .exe, questi 2 eseguibili sono nella stessa cartella del exe ke voglio scrivere ma la loro collocazione nn e' sempre uguale (lo voglio mettere su una chiavetta usb quindi il nome dell'unita' cambia a seconda del computer in cui la inserisci),
qualcuno puo' aiutarmi, probabilmente sono 2 righe di programma pero' mi servirebbe veramante 1 mano
__________________
What is good? All that heightens the feeling of power in man, the will to power, power itself. What is bad? All that is born of weakness. What is happiness? The feeling that power is growing, that resistance is overcome. -Friedrich Nietzsche, The Antichrist, section 2 |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Aug 2007
Città: Losgoth, Italy
Messaggi: 126
|
bump, so che non e' bello ma mi serve proprio 1 risposta
__________________
What is good? All that heightens the feeling of power in man, the will to power, power itself. What is bad? All that is born of weakness. What is happiness? The feeling that power is growing, that resistance is overcome. -Friedrich Nietzsche, The Antichrist, section 2 |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
ShellExecute(0, nil, 'notepad.exe', nil, PChar('.'), SW_SHOWNORMAL);
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Aug 2007
Città: Losgoth, Italy
Messaggi: 126
|
questo esegue notepad giusto? ma e' svincolato dalla lettera dell'unita'?
__________________
What is good? All that heightens the feeling of power in man, the will to power, power itself. What is bad? All that is born of weakness. What is happiness? The feeling that power is growing, that resistance is overcome. -Friedrich Nietzsche, The Antichrist, section 2 |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Sì, esegue il notepad (giusto per provare).
E' svincolato dalla lettera dell'unità perché ho impostato '.' come directory da usare per lanciare il comando (PChar('.') serve appunto a specificarlo).
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Aug 2007
Città: Losgoth, Italy
Messaggi: 126
|
ma se devo eseguire il programma X:\pippo\programma.exe (x sta per la lettera svincolata) ma la cartella pippo e' fissa ci metto cosa? e x cosa sta nil e 0?
scusate per la nubbiaggine, so di essere noioso...
__________________
What is good? All that heightens the feeling of power in man, the will to power, power itself. What is bad? All that is born of weakness. What is happiness? The feeling that power is growing, that resistance is overcome. -Friedrich Nietzsche, The Antichrist, section 2 Ultima modifica di V Ronin : 06-08-2007 alle 13:49. |
|
|
|
|
|
#7 | ||||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
"scrivere 1 programma che quando lanciato esegua altri 2 .exe, questi 2 eseguibili sono nella stessa cartella del exe ke voglio scrivere" per cui quando parte l'applicazione principale, questa si troverà in una certa cartella (anche dentro una chiavetta USB, è lo stesso). Quando quest'applicazione lancerà a loro volta le altre due, queste due, visto che è specificato "." come cartella "di partenza", "erediteranno" la stessa cartella in cui si trova quella principale. Dunque non hai alcun bisogno di specificare dei path, tanto meno assoluti. Quote:
http://msdn2.microsoft.com/en-us/library/ms647732.aspx Il primo nil indica che non hai specificato l'azione da eseguire, quindi varrà questo: "NULL In systems prior to Microsoft Windows 2000, the default verb is used if it is valid and available in the registry. If not, the "open" verb is used. In Windows 2000 and later, the default verb is used if available. If not, the "open" verb is used. If neither verb is available, the system uses the first verb listed in the registry." Il secondo nil riguarda invece i parametri addizionali, da passare, per cui il sistema si comporterà in questo modo: "If lpFile specifies an executable file, this parameter is a pointer to a null-terminated string that specifies the parameters to be passed to the application." Quindi saranno i parametri da passare all'applicazione. Quote:
"A handle to the owner window used for displaying a user interface (UI) or error messages. This value can be NULL if the operation is not associated with a window." In questo caso (0 o NULL in QUESTO contesto si possono usare indifferentemente) vale la seconda, cioé l'applicazione lanciata non sarà legata a nessuna finestra (e relativa applicazione). Dunque sarà svincolata / indipendente. Quote:
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
||||
|
|
|
|
|
#8 |
|
Member
Iscritto dal: Aug 2007
Città: Losgoth, Italy
Messaggi: 126
|
ok, come evento d 1 pulsante va bene?
__________________
What is good? All that heightens the feeling of power in man, the will to power, power itself. What is bad? All that is born of weakness. What is happiness? The feeling that power is growing, that resistance is overcome. -Friedrich Nietzsche, The Antichrist, section 2 |
|
|
|
|
|
#9 | |
|
Member
Iscritto dal: Aug 2007
Città: Losgoth, Italy
Messaggi: 126
|
Quote:
prima mi sono spiegato male, cmq grazie x l'aiuto!!!!
__________________
What is good? All that heightens the feeling of power in man, the will to power, power itself. What is bad? All that is born of weakness. What is happiness? The feeling that power is growing, that resistance is overcome. -Friedrich Nietzsche, The Antichrist, section 2 |
|
|
|
|
|
|
#10 |
|
Member
Iscritto dal: Aug 2007
Città: Losgoth, Italy
Messaggi: 126
|
mi da che non conosce il comando, devo mettere qualke include?
__________________
What is good? All that heightens the feeling of power in man, the will to power, power itself. What is bad? All that is born of weakness. What is happiness? The feeling that power is growing, that resistance is overcome. -Friedrich Nietzsche, The Antichrist, section 2 |
|
|
|
|
|
#11 | ||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Va benissimo.
Comunque se hai bisogno di lanciarli immediatamente alla partenza dell'applicazione principale hai due possibilità (ce ne sarebbero altre, ma per semplificatre rimaniamo con due - inserisci le due ShellExecute dentro l'evento FormCreate del form principale; - inserisci le due ShellExecute dentro il corpo programma principale. In quest'ultimo caso avresti qualcosa del tipo: Codice:
program ProvaShellExecute; uses ShellApi; begin ShellExecute(...); ShellExecute(...); Application.Initialize; Application.CreateForm(TMainForm, MainForm); Application.Run; end. Quote:
Comunque in tal caso ti conviene specificare 'pippo\notepad.exe' anziché 'notepad.exe', oppure se i programmi hanno bisogno di "trovarsi già dentro la cartella pippo' allora al posto di PChar('.') metti PChar('pippo'). Quote:
Codice:
implementation uses ShellAPI; procedure Button1Click(Sender: TObject); begin ShellExecute(...); end;
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
||
|
|
|
|
|
#12 |
|
Member
Iscritto dal: Aug 2007
Città: Losgoth, Italy
Messaggi: 126
|
quando eseguo il comando il debugger mi da EAcces Violation on kernel32.dll, eppure si compila, puo' essere 1 prob d window?
__________________
What is good? All that heightens the feeling of power in man, the will to power, power itself. What is bad? All that is born of weakness. What is happiness? The feeling that power is growing, that resistance is overcome. -Friedrich Nietzsche, The Antichrist, section 2 Ultima modifica di V Ronin : 07-08-2007 alle 09:49. |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Mi sembra strano. Posta il pezzo di codice in oggetto, e dimmi anche su quale s.o. stai lavorando.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#14 |
|
Member
Iscritto dal: Aug 2007
Città: Losgoth, Italy
Messaggi: 126
|
questo e' tutto il programma, e' solo la versione di test:
Codice:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses
ShellAPI;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(0, nil, 'freepopsd.exe', nil, PChar('FreePOPs'), SW_SHOWNORMAL);
ShellExecute(0, nil, 'ThunderbirdPortable.exe', nil, PChar('.'), SW_SHOWNORMAL);
close();
end;
end.
__________________
What is good? All that heightens the feeling of power in man, the will to power, power itself. What is bad? All that is born of weakness. What is happiness? The feeling that power is growing, that resistance is overcome. -Friedrich Nietzsche, The Antichrist, section 2 Ultima modifica di V Ronin : 07-08-2007 alle 16:40. |
|
|
|
|
|
#15 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
ad entrambe le chiamate al quarto parametro anzichè nil prova a metterci PChar(''), cioè stringa vuota.
|
|
|
|
|
|
#16 |
|
Member
Iscritto dal: Aug 2007
Città: Losgoth, Italy
Messaggi: 126
|
non cambia niente, mi da lettura di indirizzo 000002E (penso sia esadecimale) fallito, ho provato anke a cambiare pc ma niente...
__________________
What is good? All that heightens the feeling of power in man, the will to power, power itself. What is bad? All that is born of weakness. What is happiness? The feeling that power is growing, that resistance is overcome. -Friedrich Nietzsche, The Antichrist, section 2 |
|
|
|
|
|
#17 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
sono anni che non tocco Delphi ma mi sa tanto che anche il terzo parametro (in entrambe le chiamate) andrebbe castato a PChar...
|
|
|
|
|
|
#18 |
|
Member
Iscritto dal: Aug 2007
Città: Losgoth, Italy
Messaggi: 126
|
ora provo, ma il debug riconosce l'oxazione, solo ke da 1 accesso nn autorizzato a kernel32.dll il che e' alquanto strano...
![]() Edit: Infatti nn funzia, mi da errore al codice: 7C809DEA
__________________
What is good? All that heightens the feeling of power in man, the will to power, power itself. What is bad? All that is born of weakness. What is happiness? The feeling that power is growing, that resistance is overcome. -Friedrich Nietzsche, The Antichrist, section 2 Ultima modifica di V Ronin : 07-08-2007 alle 19:09. |
|
|
|
|
|
#19 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
non è un "accesso non autorizzato", è semplicemente l'equivalente di un segmentation fault di Linux; la funzione API che hai richiamato (o una di quelle che vengono a loro volta richiamate da essa, forse la CreateFile) sta tentando di accedere ad un indirizzo di memoria non valido probabilmente perché la stringa non gliela puoi passare così com'è ma va castata. questo credo sia dovuto alla particolare gestione delle stringhe in Delphi.
|
|
|
|
|
|
#20 | |
|
Member
Iscritto dal: Aug 2007
Città: Losgoth, Italy
Messaggi: 126
|
Quote:
favoloso, xro' e' come se mi avessi parlato in armaico antico cosa devo fare quindi in pratica, plz, sto impazzendo!!!!!
__________________
What is good? All that heightens the feeling of power in man, the will to power, power itself. What is bad? All that is born of weakness. What is happiness? The feeling that power is growing, that resistance is overcome. -Friedrich Nietzsche, The Antichrist, section 2 |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:19.












prima mi sono spiegato male, cmq grazie x l'aiuto!!!!









