제가 만든 Menu파일인데 질문에 대한 이해를 하는데 도움이 되셨으면 합니다.
PChar를 사용해보세요....사용예제가 소스에 있습니다.....
//---------------------------------------------------------------------------
#include <vcl.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#pragma hdrstop
#include "Menu.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "ProDlgs"
#pragma resource "*.dfm"
//---------------------------------------------------------------
int InputCount;
char PassWord[10];
String TYPE;
TMenuForm *MenuForm;
//---------------------------------------------------------------------------
__fastcall TMenuForm::TMenuForm(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TMenuForm::FormClose(TObject *Sender, TCloseAction &Action)
{
AnsiString FILENAME = ExtractFilePath(ParamStr(0))+"rx.idx";
DeleteFile(FILENAME);
Action=caFree;
}
//---------------------------------------------------------------------------
void __fastcall TMenuForm::SpeedButton3Click(TObject *Sender)
{
WinExec("InfoSetup.exe",SW_SHOW);
}
//---------------------------------------------------------------------------
void __fastcall TMenuForm::SpeedButton5Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TMenuForm::SpeedButton1Click(TObject *Sender)
{
WinExec("InfoLIST.exe",SW_SHOW);
MakeRx();
}
//---------------------------------------------------------------------------
void __fastcall TMenuForm::SpeedButton2Click(TObject *Sender)
{
WinExec("InfoCompany.exe",SW_SHOW);
MakeRx();
}
//---------------------------------------------------------------------------
void __fastcall TMenuForm::SpeedButton6Click(TObject *Sender)
{
//통신연결
TIniFile *ini;
AnsiString p=ExtractFilePath(ParamStr(0))+"InfoSetup.INI";
ini = new TIniFile(p);
p = ini->ReadString("Setup","통신 프로그램명","C:\\CHOL98\\bin\\CHOL98.exe");
delete ini;
// Application->Minimize();
WinExec(PChar(p.c_str()),SW_SHOW);
}
//---------------------------------------------------------------------------
void __fastcall TMenuForm::FormActivate(TObject *Sender)
{
String p,temp;
TIniFile *ini;
AnsiString DR=ExtractFilePath(ParamStr(0))+"InfoSetup.INI";
ProPasswordDialog1->Caption="사용자 암호확인";
ini = new TIniFile(DR);
temp = ini->ReadString("Setup","관리암호","");
Label2->Caption = "프로그램 사용권 : " + ini->ReadString("Setup","업체명","");
delete ini;
if(ProPasswordDialog1->Execute()) {
p = ProPasswordDialog1->Password;
String FILENAME = ExtractFilePath(ParamStr(0))+"rx.idx";
if (p == temp) {
//사용자 암호
TYPE = "user";
ini = new TIniFile(FILENAME);
ini->WriteString("Setup","type","user");
delete ini;
StatusBar1->Panels->Items[2]->Text ="User Mode";
InfoMix();
}
else if (p=="10520722") {
//관리자 암호
TYPE = "manager";
ini = new TIniFile(FILENAME);
ini->WriteString("Setup","type","manager");
delete ini;
StatusBar1->Panels->Items[2]->Text ="Manager Mode";
}
else if (p=="0909") {
//Recovery
TYPE = "recovery";
ini = new TIniFile(FILENAME);
ini->WriteString("Setup","type","recovery");
delete ini;
SpeedButton4Click(Sender);
Close();
}
else {
Close();
}
}
else
Close();
//컴퓨터이름을 알아낸다.
char name[30];
unsigned long Length;
Length = sizeof(name);
GetComputerName(name,&Length);
StatusBar1->Panels->Items[1]->Text = "ComputerName:"+AnsiString(name);
///////////////////////////////////////////////////////////////////////
}
//---------------------------------------------------------------------------
void __fastcall TMenuForm::warning()
{
//TODO: Add your source code here
Label1->Visible = true;
ShowMessage("확인을 누르세요");
Close();
}
void __fastcall TMenuForm::SpeedButton4Click(TObject *Sender)
{
WinExec("InfoRead.exe",SW_SHOW);
MakeRx();
}
//---------------------------------------------------------------------------
void __fastcall TMenuForm::SpeedButton7Click(TObject *Sender)
{
//Word 연결
TIniFile *ini;
AnsiString p=ExtractFilePath(ParamStr(0))+"InfoSetup.INI";
ini = new TIniFile(p);
p = ini->ReadString("Setup","Word 프로그램명","C:\\hnc\\hwpw.exe");
delete ini;
// Application->Minimize();
WinExec(PChar(p.c_str()),SW_SHOW);
}
//---------------------------------------------------------------------------
void TMenuForm::MakeRx()
{
//TODO: Add your source code here
TIniFile *ini;
String FILENAME = ExtractFilePath(ParamStr(0))+"rx.idx";
ini = new TIniFile(FILENAME);
ini->WriteString("Setup","type",TYPE);
delete ini;
}
|