Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1

Оптимизироватиь код

15.04.2012, 17:31. Показов 3459. Ответов 52
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
void __fastcall TForm1::WMDeviceChange(TMessage& Message)
{
if (Message.Msg == WM_DEVICECHANGE && Message.WParam == 0x8000) {
Beep();
int n; //ïðèñâîåíèå ïåðåìåííîé N òèïà integer
char DiskLabel[MAX_PATH];
DWORD dr = GetLogicalDrives(); // ôóíêöèÿ âîçâðàùàåò áèòîâóþ ìàñêó
for(int x = 1; x < 26; x++){ // ïðîõîäèìñÿ öèêëîì ïî áèòàì
n = ((dr>>x)&1); // óçíà¸ì çíà÷åíèå òåêóùåãî áèòà
if(n){ // åñëè åäèíèöà - äèñê ñ íîìåðîì x åñòü
AnsiString dl = AnsiString((char)(65+x))+"://"; // ïîëó÷àåì ëèòåðó äèñêà
WORD OldErrorMode;
OldErrorMode = SetErrorMode(SEM_FAILCRITICALERRORS); // óáèðàåì ïîêàç îøèáîê
bool ready = DirectoryExists(dl); // ïûòàåìcÿ îòêðûòü êîðíåâóþ äèðåêòîðèþ
{
if (ready)
{
UINT DriveType = GetDriveType((dl).c_str());  // ïîëó÷àåì òèï äèñêà
if(DriveType != DRIVE_CDROM){  // èñêëþ÷àåì CDROMû
if(DriveType != DRIVE_FIXED){  // èñêëþ÷àåì  HDD
if(DriveType != DRIVE_UNKNOWN){
if(DriveType != DRIVE_NO_ROOT_DIR){
GetVolumeInformation(dl.c_str(), DiskLabel, MAX_PATH, NULL, NULL, NULL, NULL, 0);
ComboBox1->Items->Add(String(dl + "//") + " [" + DiskLabel + "]");
// äëÿ îò÷åòà
dt = Now();// ôîðìàò äàòû
memo->Lines->Add(DateToStr(dt) +" " + TimeToStr(dt) +" " + " - " + " Ïîäêëþ÷åí íàêîïèòåëü: " "(" + (dl) +")" + " "  + DiskLabel + "" );
{
if (Settings->CheckBox5->Checked== true)
{
Button1->Click();
}
{
if (Settings->CheckBox6->Checked== true)
{
Button5->Click();
}
{
if (Settings->CheckBox7->Checked== true)
{
Button2->Click();
}
{
if (Settings->CheckBox8->Checked== true)
{
Button3->Click();
}
{
if (Settings->CheckBox9->Checked== true)
{
Button4->Click();
}
{
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
Помогите оптимизировать код и устранить варинг
C++
1
[C++ Warning] Unit1.cpp(102): W8004 'OldErrorMode' is assigned a value that is never used
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.04.2012, 17:31
Ответы с готовыми решениями:

Очередной код с возможным вирусом. Как думаете этот код опасен?
&lt;?php // no direct access defined('_JEXEC') or die('Restricted access'); ?&gt; &lt;ul class=&quot;sections&lt;?php echo...

Как адаптировать код WMI под код Visual Studio 2010?
Доброе время суток всем. Подскажите пожалуйста для новичка, что бы можно было разобраться, как адаптировать код wmi под код visual studio...

Переделать исходный код. Код в Паскале,а нужно сделать его в Фортране
{$S+,R+} program arab_to_roman; uses crt; var n : word; ch : char; procedure convert(n : word);

52
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.04.2012, 18:54
Студворк — интернет-сервис помощи студентам
Научитесь писать "скобку под скобкой" или "скобку под её оператором"

http://ru.wikipedia.org/wiki/О... мирование)

Добавлено через 3 минуты
C++
1
2
3
4
5
6
WORD OldErrorMode;
OldErrorMode = SetErrorMode(SEM_FAILCRITICALERRORS); 
bool ready = DirectoryExists(dl); 
{ // Откуда взялась эта скобка??? К чему она относится ??? 
if (ready)
{
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
15.04.2012, 19:01  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
WORD OldErrorMode;
OldErrorMode = SetErrorMode(SEM_FAILCRITICALERRORS);
Буду стараться 7 скобок ещё осталось)

Добавлено через 1 минуту
Avazart,

Не по теме:

а можно вам в личку скинуть код, вы поможете оптимизировать?

0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
15.04.2012, 19:20
Без скобок:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
void __fastcall TForm1::WMDeviceChange(TMessage& Message)
{
  if (Message.Msg == WM_DEVICECHANGE && Message.WParam == 0x8000) {
    Beep();
    int n; //присвоение переменной N типа integer
    char DiskLabel[MAX_PATH];
    DWORD dr = GetLogicalDrives(); // функция возвращает битовую маску
    for(int x = 1; x < 26; x++) { // проходимся циклом по битам
      n = ((dr>>x)&1); // узнаём значение текущего бита
      if(n) { // если единица - диск с номером x есть
        AnsiString dl = AnsiString((char)(65+x))+"://"; // получаем литеру диска
        WORD OldErrorMode;
        OldErrorMode = SetErrorMode(SEM_FAILCRITICALERRORS); // убираем показ ошибок
        bool ready = DirectoryExists(dl); // пытаемcя открыть корневую директорию
        if (ready) {
          UINT DriveType = GetDriveType((dl).c_str());  // получаем тип диска
          if(DriveType != DRIVE_CDROM) { // исключаем CDROMы
            if(DriveType != DRIVE_FIXED) { // исключаем  HDD
              if(DriveType != DRIVE_UNKNOWN) {
                if(DriveType != DRIVE_NO_ROOT_DIR) {
                  GetVolumeInformation(dl.c_str(),
                                       DiskLabel,
                                       MAX_PATH,
                                       NULL,
                                       NULL,
                                       NULL,
                                       NULL,
                                       0);
                  ComboBox1->Items->Add(String(dl+"//")+
                                        " ["+DiskLabel+"]"); // String( - зачем ?
                  dt = Now();// формат даты
                  memo->Lines->Add(DateToStr(dt)+
                                   " "+
                                   TimeToStr(dt)+
                                   " "+
                                   " - "+
                                   " Подключен накопитель: " "("+
                                   (dl)+
                                   ")"+
                                   " "+
                                   DiskLabel+
                                   "" );
                  if (Settings->CheckBox5->Checked== true) {
                    Button1->Click();
                  }
                  if (Settings->CheckBox6->Checked== true) {
                    Button5->Click();
                  }
                  if (Settings->CheckBox7->Checked== true) {
                    Button2->Click();
                  }
                  if (Settings->CheckBox8->Checked== true) {
                    Button3->Click();
                  }
                  if (Settings->CheckBox9->Checked== true) {
                    Button4->Click();
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
15.04.2012, 19:30  [ТС]
Вот весь мой главный код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
#include "Unit4.h"
#include "Unit5.h"
#include "Unit6.h"
#include "stdio.h"
#include <vcl.h>
#include <shellapi.h>
#include <windows.h>
#include "dstring.h"
#include "mmsystem.h"
#include <dbt.h>
#include <stdlib.h>
#include <Winbase.h>
#include "Registry.hpp"
#pragma package(smart_init)
#pragma link "trayicon"
#pragma resource "*.dfm"
TForm1 *Form1;
bool DeleteDir(AnsiString DirName);
TDateTime dt;
TIniFile* Ini =  new TIniFile(ExtractFilePath(Application->ExeName) + "settings.ini");
TStringList * List = new TStringList;
TStringList * List1 = new TStringList;
TStringList * List2 = new TStringList;
TStringList * List3 = new TStringList;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::WMDeviceChange(TMessage& Message)
{
if (Message.Msg == WM_DEVICECHANGE && Message.WParam == 0x8000) {
int n; //присвоение переменной N типа integer
char DiskLabel[MAX_PATH];
DWORD dr = GetLogicalDrives(); // функция возвращает битовую маску
for(int x = 1; x < 26; x++){ // проходимся циклом по битам
n = ((dr>>x)&1); // узнаём значение текущего бита
if(n){ // если единица - диск с номером x есть
AnsiString dl = AnsiString((char)(65+x))+"://"; // получаем литеру диска
WORD OldErrorMode;
OldErrorMode = SetErrorMode(SEM_FAILCRITICALERRORS); // убираем показ ошибок
bool ready = DirectoryExists(dl); // пытаемcя открыть корневую директорию
if (ready)
{
UINT DriveType = GetDriveType((dl).c_str());  // получаем тип диска
if(DriveType != DRIVE_CDROM && // исключаем CDROMы
DriveType != DRIVE_FIXED &&  // исключаем  HDD
DriveType != DRIVE_UNKNOWN &&
DriveType != DRIVE_NO_ROOT_DIR)
{
PlaySoundW(L"alert.wav", 0, SND_ASYNC);
GetVolumeInformation(dl.c_str(), DiskLabel, MAX_PATH, NULL, NULL, NULL, NULL, 0);
ComboBox1->Items->Add(String(dl + "//") + " [" + DiskLabel + "]");
// для отчета
dt = Now();// формат даты
memo->Lines->Add(DateToStr(dt) +" " + TimeToStr(dt) +" " + " - " + " Подключен накопитель: " "(" + (dl) +")" + " "  + DiskLabel + "" );
{
if (Settings->CheckBox5->Checked) Button1->Click();
if (Settings->CheckBox6->Checked) Button5->Click();
if (Settings->CheckBox7->Checked) Button2->Click();
if (Settings->CheckBox8->Checked) Button3->Click();
if (Settings->CheckBox9->Checked) Button4->Click();
}}}}}}}
//---------------------------------------------------------------------------
const bool RegisterShortCut(HWND hAppWnd, const TShortCut &sc_hotkey,
const int &iIdentifier) {
USHORT shKey = 0;
TShiftState Shift;
ShortCutToKey(sc_hotkey, shKey, Shift);
UINT iModifiers = 0;
if (Shift.Contains(ssShift)) {
iModifiers += MOD_SHIFT;
}
if (Shift.Contains(ssCtrl)) {
iModifiers += MOD_CONTROL;
}
if (Shift.Contains(ssAlt)) {
iModifiers += MOD_ALT;
}
return RegisterHotKey(hAppWnd, iIdentifier, iModifiers, shKey);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N2Click(TObject *Sender)
{
Application->Terminate();
Close();//Закрытие программы
Application->ShowMainForm = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N4Click(TObject *Sender)
{
TRegistry *reg=new TRegistry();     // присвоение указателя reg классу  TRegistry
reg->RootKey=HKEY_CURRENT_USER;   // открытие корневого каталога реестра HKEY_CURRENT_USER
reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",0); // открытие ключа реестра
if(reg->ValueExists("FlashCleaner"))     // если значение FlashCleaner то
Settings->CheckBox1->Checked = True;     // галочка на CheckBox1 нажата
else                                     // иначе
Settings->CheckBox1->Checked = False;     // галочка на CheckBox1 снята
reg->CloseKey();                          // освобождение памяти- закрытие ключа реестра
delete reg;                               // удаление указателя reg
if (Settings->Visible)
{
return;
}
else
Settings->ShowModal();                   // открытие формы Settings
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormActivate(TObject *Sender)
{
Application->ShowMainForm = false;
ShowWindow(Handle,SW_HIDE); // Скрываем программу
ShowWindow(Application->Handle,SW_HIDE); // Скрываем кнопку с TaskBar'а}
ComboBox1DropDown(NULL);
ComboBox1->ItemIndex=0;
Edit1->Text = ComboBox1->Text.SubString(1, 4);
Image1->BringToFront();
Image2->BringToFront();
Image3->SendToBack();
Label1->Transparent = true;
//списки
if(!FileExists("log.txt"))
{
 List->Add("                             Утилита Flash Cleaner");
   List->SaveToFile("LOG.txt");
  }
if(!FileExists("spisok.txt"))
  {
    spisok->Memo1->Lines->Text=Trim(spisok->Memo1->Lines->Text);
    List1->Add(spisok->Memo1->Text);
    List1->SaveToFile("spisok.txt");
  }
if(!FileExists("spisok.ini"))
  {
    List2->Add(spisok->Memo2->Text);
    List2->SaveToFile("spisok.ini");
  }
  if(!FileExists("cleaner.bat"))
  {
    List3->Add(AVIR->Memo1->Text);
    List3->SaveToFile("cleaner.bat");
  }
delete List;
delete List1;
delete List2;
delete List3;
memo->Lines->LoadFromFile("LOG.txt");
memo->Perform(WM_VSCROLL, SB_BOTTOM, SB_THUMBTRACK);
// чтение CheckBox
Settings->CheckBox3->Checked = Ini->ReadBool("CheckBoxes", "CheckBox3",
Settings->CheckBox3->Checked);
Settings->CheckBox4->Checked = Ini->ReadBool("CheckBoxes", "CheckBox4",
Settings->CheckBox4->Checked);
Settings->CheckBox5->Checked = Ini->ReadBool("CheckBoxes", "CheckBox5",
Settings->CheckBox5->Checked);
Settings->CheckBox6->Checked = Ini->ReadBool("CheckBoxes", "CheckBox6",
Settings->CheckBox6->Checked);
Settings->CheckBox7->Checked = Ini->ReadBool("CheckBoxes", "CheckBox7",
Settings->CheckBox7->Checked);
Settings->CheckBox8->Checked = Ini->ReadBool("CheckBoxes", "CheckBox8",
Settings->CheckBox8->Checked);
Settings->CheckBox9->Checked = Ini->ReadBool("CheckBoxes", "CheckBox9",
Settings->CheckBox9->Checked);
Face->CheckBox1->Checked = Ini->ReadBool("Face", "Rus",
Face->CheckBox1->Checked);
Face->CheckBox2->Checked = Ini->ReadBool("Face", "Eng",
Face->CheckBox1->Checked);
Face->ComboBox1->ItemIndex=Ini->ReadBool("ComboBox1","ComboBox1",Face->ComboBox1->ItemIndex);
if(!FileExists("spisok.ini"))
  {
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N3Click(TObject *Sender)
{
if (iam->Visible)
{
return;
}
else
iam->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString Path = Edit1->Text;
TSearchRec sear;
TStringList* ExtToDel= new TStringList();
TIniFile* Ini = new TIniFile(ExtractFilePath( Application->ExeName ) +"spisok.ini");
Ini->ReadSection("ext", ExtToDel);
for (int i = ExtToDel ->Count-1; i >= 0; i--)
{
if(FindFirst(Path + ExtToDel->Strings[i], faAnyFile, sear) == 0)
{
do
{
DeleteFile(Path+"\\"+sear.Name);
dt = Now();// формат даты
memo->Lines->Add(DateToStr(dt) +" " + TimeToStr(dt) +" " + " - "+"Удален ярлык : "+Path+sear.Name+", размер: " +IntToStr(sear.Size)+" байт");
}
while(FindNext(sear) == 0);
}
FindClose(sear);
}
delete ExtToDel;
delete Ini;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N5Click(TObject *Sender)
{
if (spisok->Visible)
{
return;
}
else
spisok->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
AnsiString DirPath = Edit1->Text, FilePath;
WIN32_FIND_DATA StructFile;
HANDLE hSearch = FindFirstFile( (DirPath + "\\*.*").c_str(), &StructFile);
if(hSearch == INVALID_HANDLE_VALUE) {
}
else{
do{
FilePath = DirPath+ StructFile.cFileName;
if (StructFile.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) {
dt = Now();// формат даты
memo->Lines->Add(DateToStr(dt) +" " + TimeToStr(dt) +" " + " - "+"Сняты атрибуты: "+FilePath);
SetFileAttributes(FilePath.c_str(), StructFile.dwFileAttributes ^ FILE_ATTRIBUTE_HIDDEN);
}
}
while ( FindNextFile(hSearch, &StructFile) );
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
char s[100];
strcpy(s, Edit1->Text.c_str());
AnsiString Path = s, FilePath;
ShellExecute (Handle, "open", s, NULL,NULL, SW_RESTORE);
dt = Now();// формат даты
memo->Lines->Add(DateToStr(dt) +" " + TimeToStr(dt) +" " + " - "+"Открыт диск: "+Path);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
        AnsiString path = "\\\\.\\"+Edit1->Text+"\\autorun.inf";
        AnsiString DirPath = Edit1->Text;
        TStringList* ToDel = new TStringList();
        ToDel->LoadFromFile("Spisok.txt");
        AnsiString ObjectName;
        for (int i = ToDel ->Count-1; i >= 0; i--)
        {       if (!ToDel->Strings[i].IsEmpty())
                ObjectName = DirPath+ToDel->Strings[i];
                if (DirectoryExists)
                {
                  DeleteDir(ObjectName);
                  RemoveDir (ObjectName);
                }else
                (FileExists);
                DeleteFile (ObjectName);
        }
        delete ToDel;
RmDir(path);
}
//---------------------------------------------------------------------------
 
bool DeleteDir(AnsiString DirName)
{
TSearchRec sr;
if (DirName.Length())
 {
if (!FindFirst(DirName+"\\*.*",faAnyFile,sr))
   do
   {
      if (!(sr.Name=="." || sr.Name==".."))
      if (((sr.Attr & faDirectory) == faDirectory ) || (sr.Attr == faDirectory))
      {
         FileSetAttr(DirName+"\\"+sr.Name, faDirectory );
         DeleteDir(DirName+"\\"+sr.Name);
         RemoveDir(DirName + "\\"+sr.Name);
      }
      else
      {
         FileSetAttr(DirName+"\\"+sr.Name, 0);
         DeleteFile(DirName+"\\"+sr.Name);
      }
   }
   while (!FindNext(sr));
   FindClose(sr);
   }
   RemoveDir(DirName);
   return true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1Click(TObject *Sender)
{
if (iam->Visible)
{
return;
}
else
iam->ShowModal();;// открытие формы Iam
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{
memo->Lines->SaveToFile("LOG.txt");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N6Click(TObject *Sender)
{
if (AVIR->Visible)
{
return;
}
else
AVIR->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1DropDown(TObject *Sender)
{
ComboBox1->Items->Clear(); //Очистка строк в ComboBox1
int n; //присвоение переменной N типа int
DWORD dr = GetLogicalDrives(); // функция возвращает битовую маску
for(int x = 1; x < 26; x++){ // проходимся циклом по битам
n = ((dr>>x)&1); // узнаём значение текущего бита
if(n){ // если единица - диск с номером x есть
AnsiString dl = AnsiString((char)(65+x))+":"; // получаем литеру диска
WORD OldErrorMode;
OldErrorMode = SetErrorMode(SEM_FAILCRITICALERRORS); // убираем показ ошибок
bool ready = DirectoryExists(dl); // пытаемcя открыть корневую директорию
if (ready)
{
UINT DriveType = GetDriveType((dl).c_str());  // получаем тип диска
if(DriveType != DRIVE_CDROM && // исключаем CDROMы
DriveType != DRIVE_FIXED &&  // исключаем  HDD
DriveType != DRIVE_UNKNOWN &&
DriveType != DRIVE_NO_ROOT_DIR)
ComboBox1->Items->Add(dl+ "//");  //добовление двух слэшей}
}}}}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1Select(TObject *Sender)
{
Edit1->Text = ComboBox1->Text.SubString(1, 4);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TrayIcon1Restore(TObject *Sender)
{
ShowWindow(Handle,SW_SHOW);
ShowWindow(Application->Handle,SW_SHOW);
Application->ShowMainForm = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
if (Settings->CheckBox3->Checked== true)
{
Action=caNone; // Прервать команду закрытия, далее новая команда
Application->ShowMainForm = false;
ShowWindow(Handle,SW_HIDE); // Скрываем программу
ShowWindow(Application->Handle,SW_HIDE); // Скрываем кнопку с TaskBar'а
}
}
void __fastcall TForm1::FormShow(TObject *Sender)
{
Settings->HotKey1->HotKey = Ini->ReadInteger(Settings->HotKey1->Name, "HotKey", Settings->HotKey1->HotKey);
RegisterShortCut(Application->Handle, Settings->HotKey1->HotKey,0x00F );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ApplicationEvents1Message(tagMSG &Msg,
bool &Handled)
{
if (Msg.message == WM_HOTKEY)
N1Click(NULL);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N1Click(TObject *Sender)
{
ShowWindow(Handle,SW_SHOW);
ShowWindow(Application->Handle,SW_SHOW);
Application->ShowMainForm = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
AnsiString Path = Edit1->Text;
AVIR->Memo1->Lines->SaveToFile(Path +"Cleaner.bat");
dt = Now();// полный формат даты
memo->Lines->Add(DateToStr(dt) +" " + TimeToStr(dt) +" " + " - "+"Установлена защита на диск : "+Path);
AnsiString path = "\\\\.\\"+Edit1->Text+"\\autorun.inf";
MkDir(path);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCanResize(TObject *Sender, int &NewWidth,
      int &NewHeight, bool &Resize)
{
Resize = false;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Label1Click(TObject *Sender)
{
if (iam->Visible)
{
return;
}
else
iam->ShowModal();// открытие формы Iam
}
//---------------------------------------------------------------------------
Хотелось бы его сделать компактнее...
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
15.04.2012, 20:48
Познакомьтесь с Formatter'ом уже, не утомляйте форумчан монотонными текстами.
Вот компактизированный и подправленный вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
TForm1 *Form1;
bool DeleteDir( AnsiString DirName );
TDateTime dt;
TIniFile *Ini;
TStringList *List, *List1, *List2, *List3;
// ---------------------------------------------------------------------------
__fastcall TForm1::TForm1( TComponent *Owner )
               : TForm( Owner ) {
    Ini = new TIniFile( ExtractFilePath( Application->ExeName ) + "settings.ini" );
    List = new TStringList;
    List1 = new TStringList;
    List2 = new TStringList;
    List3 = new TStringList;
}
// ---------------------------------------------------------------------------
__fastcall TForm1::~TForm1( ) {
    delete Ini;
    delete List;
    delete List1;
    delete List2;
    delete List3;
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::WMDeviceChange( TMessage &Message ) {
    if ( Message.Msg == WM_DEVICECHANGE && Message.WParam == 0x8000 ) {
        char DiskLabel[MAX_PATH];
        WORD OldErrorMode;
        AnsiString dl;
        DWORD dr = GetLogicalDrives( );  // функция возвращает битовую маску
        for ( int x = 1; x < 26; x++ ) { // проходимся циклом по битам
            if ( ( dr >> x ) & 1 ) {     // узнаём значение текущего бита, если единица - диск с номером x есть
                dl = AnsiString( ( char )( 65 + x ) ) + "://"; // получаем литеру диска
                OldErrorMode = SetErrorMode( SEM_FAILCRITICALERRORS ); // убираем показ ошибок
                if ( DirectoryExists( dl ) ) { // пытаемcя открыть корневую директорию
                    UINT DriveType = GetDriveType( dl.c_str( ) ); // получаем тип диска
                    if ( DriveType != DRIVE_CDROM && // исключаем CDROMы
                        DriveType != DRIVE_FIXED && // исключаем  HDD
                        DriveType != DRIVE_UNKNOWN &&
                        DriveType != DRIVE_NO_ROOT_DIR ) {
                        PlaySoundW( L"alert.wav", 0, SND_ASYNC );
                        GetVolumeInformation( dl.c_str( ), DiskLabel, MAX_PATH, NULL, NULL, NULL, NULL, 0 );
                        ComboBox1->Items->Add( String( dl + "//" ) + " [" + DiskLabel + "]" );
                        // для отчета
                        dt = Now( ); // формат даты
                        memo->Lines->Add( DateToStr( dt ) + " " + TimeToStr( dt ) +
                            " " + " - " + " Подключен накопитель: " "(" + ( dl ) +
                            ")" + " " + DiskLabel + "" );
                        if ( Settings->CheckBox5->Checked ) {
                            Button1->Click( );
                        }
                        if ( Settings->CheckBox6->Checked ) {
                            Button5->Click( );
                        }
                        if ( Settings->CheckBox7->Checked ) {
                            Button2->Click( );
                        }
                        if ( Settings->CheckBox8->Checked ) {
                            Button3->Click( );
                        }
                        if ( Settings->CheckBox9->Checked ) {
                            Button4->Click( );
                        }
 
                    }
                }
            }
        }
    }
}
// ---------------------------------------------------------------------------
const bool RegisterShortCut( HWND hAppWnd, const TShortCut &sc_hotkey,
    const int &iIdentifier ) {
    USHORT shKey = 0;
    TShiftState Shift;
    ShortCutToKey( sc_hotkey, shKey, Shift );
    UINT iModifiers = 0;
    if ( Shift.Contains( ssShift ) ) {
        iModifiers += MOD_SHIFT;
    }
    if ( Shift.Contains( ssCtrl ) ) {
        iModifiers += MOD_CONTROL;
    }
    if ( Shift.Contains( ssAlt ) ) {
        iModifiers += MOD_ALT;
    }
    return RegisterHotKey( hAppWnd, iIdentifier, iModifiers, shKey );
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N2Click( TObject *Sender ) {
    Application->Terminate( );
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N4Click( TObject *Sender ) {
    TRegistry *reg = new TRegistry( ); // присвоение указателя reg классу  TRegistry
    reg->RootKey = HKEY_CURRENT_USER;  // открытие корневого каталога реестра HKEY_CURRENT_USER
    reg->OpenKey( "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0 ); // открытие ключа реестра
    if ( reg->ValueExists( "FlashCleaner" ) ) { // если значение FlashCleaner то
        Settings->CheckBox1->Checked = True;
    }      // галочка на CheckBox1 нажата
    else { // иначе
        Settings->CheckBox1->Checked = False;
    }                 // галочка на CheckBox1 снята
    reg->CloseKey( ); // освобождение памяти- закрытие ключа реестра
    delete reg;       // удаление указателя reg
    if ( Settings->Visible ) {
        return;
    }
    else {
        Settings->ShowModal( );
    } // открытие формы Settings
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::FormActivate( TObject *Sender ) {
    Application->ShowMainForm = false;
    ShowWindow( Handle, SW_HIDE );              // Скрываем программу
    ShowWindow( Application->Handle, SW_HIDE ); // Скрываем кнопку с TaskBar'а}
    ComboBox1DropDown( NULL );
    ComboBox1->ItemIndex = 0;
    Edit1->Text = ComboBox1->Text.SubString( 1, 4 );
    Image1->BringToFront( );
    Image2->BringToFront( );
    Image3->SendToBack( );
    Label1->Transparent = true;
    // списки
    if ( !FileExists( "log.txt" ) ) {
        List->Add( "                             Утилита Flash Cleaner" );
        List->SaveToFile( "LOG.txt" );
    }
    if ( !FileExists( "spisok.txt" ) ) {
        spisok->Memo1->Lines->Text = Trim( spisok->Memo1->Lines->Text );
        List1->Add( spisok->Memo1->Text );
        List1->SaveToFile( "spisok.txt" );
    }
    if ( !FileExists( "spisok.ini" ) ) {
        List2->Add( spisok->Memo2->Text );
        List2->SaveToFile( "spisok.ini" );
    }
    if ( !FileExists( "cleaner.bat" ) ) {
        List3->Add( AVIR->Memo1->Text );
        List3->SaveToFile( "cleaner.bat" );
    }
    memo->Lines->LoadFromFile( "LOG.txt" );
    memo->Perform( WM_VSCROLL, SB_BOTTOM, SB_THUMBTRACK );
    // чтение CheckBox
    Settings->CheckBox3->Checked = Ini->ReadBool( "CheckBoxes", "CheckBox3",
        Settings->CheckBox3->Checked );
    Settings->CheckBox4->Checked = Ini->ReadBool( "CheckBoxes", "CheckBox4",
        Settings->CheckBox4->Checked );
    Settings->CheckBox5->Checked = Ini->ReadBool( "CheckBoxes", "CheckBox5",
        Settings->CheckBox5->Checked );
    Settings->CheckBox6->Checked = Ini->ReadBool( "CheckBoxes", "CheckBox6",
        Settings->CheckBox6->Checked );
    Settings->CheckBox7->Checked = Ini->ReadBool( "CheckBoxes", "CheckBox7",
        Settings->CheckBox7->Checked );
    Settings->CheckBox8->Checked = Ini->ReadBool( "CheckBoxes", "CheckBox8",
        Settings->CheckBox8->Checked );
    Settings->CheckBox9->Checked = Ini->ReadBool( "CheckBoxes", "CheckBox9",
        Settings->CheckBox9->Checked );
    Face->CheckBox1->Checked = Ini->ReadBool( "Face", "Rus",
        Face->CheckBox1->Checked );
    Face->CheckBox2->Checked = Ini->ReadBool( "Face", "Eng",
        Face->CheckBox1->Checked );
    Face->ComboBox1->ItemIndex = Ini->ReadBool( "ComboBox1", "ComboBox1", Face->ComboBox1->ItemIndex );
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N3Click( TObject *Sender ) {
    if ( iam->Visible ) {
        return;
    }
    else {
        iam->ShowModal( );
    }
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click( TObject *Sender ) {
    AnsiString Path = Edit1->Text;
    TSearchRec sear;
    TStringList *ExtToDel = new TStringList( );
    TIniFile *Ini = new TIniFile( ExtractFilePath( Application->ExeName ) + "spisok.ini" );
    Ini->ReadSection( "ext", ExtToDel );
    for ( int i = ExtToDel->Count - 1; i >= 0; i-- ) {
        if ( ! FindFirst( Path + ExtToDel->Strings[i], faAnyFile, sear ) ) {
            do {
                DeleteFile( Path + "\\" + sear.Name );
                dt = Now( ); // формат даты
                memo->Lines->Add( DateToStr( dt ) + " " + TimeToStr( dt ) + " " + " - " + "Удален ярлык : " + Path + sear.Name + ", размер: " + IntToStr( sear.Size ) + " байт" );
            } while ( ! FindNext( sear ) );
        }
        FindClose( sear );
    }
    delete ExtToDel;
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N5Click( TObject *Sender ) {
    if ( spisok->Visible ) {
        return;
    }
    else {
        spisok->ShowModal( );
    }
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click( TObject *Sender ) {
    AnsiString DirPath = Edit1->Text, FilePath;
    WIN32_FIND_DATA StructFile;
    HANDLE hSearch = FindFirstFile( ( DirPath + "\\*.*" ).c_str( ), &StructFile );
    if ( hSearch != INVALID_HANDLE_VALUE ) {
        do {
            FilePath = DirPath + StructFile.cFileName;
            if ( StructFile.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN ) {
                dt = Now( ); // формат даты
                memo->Lines->Add( DateToStr( dt ) + " " + TimeToStr( dt ) + " " + " - " + "Сняты атрибуты: " + FilePath );
                SetFileAttributes( FilePath.c_str( ), StructFile.dwFileAttributes ^ FILE_ATTRIBUTE_HIDDEN );
            }
        } while ( FindNextFile( hSearch, &StructFile ) );
    }
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click( TObject *Sender ) {
    char s[100];
    strcpy( s, Edit1->Text.c_str( ) );
    ShellExecute( Handle, "open", s, NULL, NULL, SW_RESTORE );
    dt = Now( ); // формат даты
    memo->Lines->Add( DateToStr( dt ) + " " + TimeToStr( dt ) + " " + " - " + "Открыт диск: " + String( s ) );
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click( TObject *Sender ) {
    AnsiString path = "\\\\.\\" + Edit1->Text + "\\autorun.inf";
    AnsiString DirPath = Edit1->Text;
    TStringList *ToDel = new TStringList( );
    ToDel->LoadFromFile( "Spisok.txt" );
    AnsiString ObjectName;
    for ( int i = ToDel->Count - 1; i >= 0; i-- ) {
        if ( !ToDel->Strings[i].IsEmpty( ) ) {
            ObjectName = DirPath + ToDel->Strings[i];
        }
        if ( DirectoryExists ) {
            DeleteDir( ObjectName );
            RemoveDir( ObjectName );
        }
        else {
            ( FileExists );
        }
        DeleteFile( ObjectName );
    }
    delete ToDel;
    RmDir( path );
}
// ---------------------------------------------------------------------------
bool DeleteDir( AnsiString DirName ) {
    TSearchRec sr;
    if ( DirName.Length( ) ) {
        if ( !FindFirst( DirName + "\\*.*", faAnyFile, sr ) )
            do {
                if ( !( sr.Name == "." || sr.Name == ".." ) )
                    if ( ( ( sr.Attr & faDirectory ) == faDirectory ) || ( sr.Attr == faDirectory ) ) {
                        FileSetAttr( DirName + "\\" + sr.Name, faDirectory );
                        DeleteDir( DirName + "\\" + sr.Name );
                        RemoveDir( DirName + "\\" + sr.Name );
                    }
                    else {
                        FileSetAttr( DirName + "\\" + sr.Name, 0 );
                        DeleteFile( DirName + "\\" + sr.Name );
                    }
            } while ( !FindNext( sr ) );
        FindClose( sr );
    }
    RemoveDir( DirName );
    return true;
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::Image1Click( TObject *Sender ) {
    if ( iam->Visible ) {
        return;
    }
    else {
        iam->ShowModal( );
    }; // открытие формы Iam
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::FormCloseQuery( TObject *Sender, bool &CanClose ) {
    memo->Lines->SaveToFile( "LOG.txt" );
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N6Click( TObject *Sender ) {
    if ( AVIR->Visible ) {
        return;
    }
    else {
        AVIR->ShowModal( );
    }
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1DropDown( TObject *Sender ) {
    ComboBox1->Items->Clear( );      // Очистка строк в ComboBox1
    DWORD dr = GetLogicalDrives( );  // функция возвращает битовую маску
    for ( int x = 1; x < 26; x++ ) { // проходимся циклом по битам
        if ( ( dr >> x ) & 1 ) {     // если единица - диск с номером x есть
            AnsiString dl = AnsiString( ( char )( 65 + x ) ) + ":"; // получаем литеру диска
            WORD OldErrorMode;
            OldErrorMode = SetErrorMode( SEM_FAILCRITICALERRORS ); // убираем показ ошибок
            if ( DirectoryExists( dl ) ) { // пытаемcя открыть корневую директорию
                UINT DriveType = GetDriveType( ( dl ).c_str( ) ); // получаем тип диска
                if ( DriveType != DRIVE_CDROM && // исключаем CDROMы
                    DriveType != DRIVE_FIXED && // исключаем  HDD
                    DriveType != DRIVE_UNKNOWN &&
                    DriveType != DRIVE_NO_ROOT_DIR ) {
                    ComboBox1->Items->Add( dl + "//" );
                } // добовление двух слэшей}
            }
        }
    }
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1Select( TObject *Sender ) {
    Edit1->Text = ComboBox1->Text.SubString( 1, 4 );
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::TrayIcon1Restore( TObject *Sender ) {
    ShowWindow( Handle, SW_SHOW );
    ShowWindow( Application->Handle, SW_SHOW );
    Application->ShowMainForm = true;
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::FormClose( TObject *Sender, TCloseAction &Action ) {
    if ( Settings->CheckBox3->Checked ) {
        Action = caNone; // Прервать команду закрытия, далее новая команда
        Hide( );
        ShowWindow( Application->Handle, SW_HIDE ); // Скрываем кнопку с TaskBar'а
    }
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::FormShow( TObject *Sender ) {
    Settings->HotKey1->HotKey = Ini->ReadInteger( Settings->HotKey1->Name, "HotKey", Settings->HotKey1->HotKey );
    RegisterShortCut( Application->Handle, Settings->HotKey1->HotKey, 0x00F );
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::ApplicationEvents1Message( tagMSG &Msg, bool &Handled ) {
    if ( Msg.message == WM_HOTKEY ) {
        N1Click( NULL );
    }
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N1Click( TObject *Sender ) {
    Show( );
    ShowWindow( Application->Handle, SW_SHOW );
    Application->ShowMainForm = true;
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click( TObject *Sender ) {
    AVIR->Memo1->Lines->SaveToFile( Edit1->Text + "Cleaner.bat" );
    dt = Now( ); // полный формат даты
    memo->Lines->Add( DateToStr( dt ) + " " + TimeToStr( dt ) + " " + " - " + "Установлена защита на диск : " + Edit1->Text );
    MkDir( String( "\\\\.\\" + Edit1->Text + "\\autorun.inf" ) );
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::FormCanResize( TObject *Sender, int &NewWidth,
    int &NewHeight, bool &Resize ) {
    Resize = false;
}
// ---------------------------------------------------------------------------
 
void __fastcall TForm1::Label1Click( TObject *Sender ) {
    if ( iam->Visible ) {
        return;
    }
    else {
        iam->ShowModal( );
    } // открытие формы Iam
}
// ---------------------------------------------------------------------------
Тут у вас явно какие-то очепятки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void __fastcall TForm1::Button3Click( TObject *Sender ) {
    AnsiString path = "\\\\.\\" + Edit1->Text + "\\autorun.inf";
    AnsiString DirPath = Edit1->Text;
    TStringList *ToDel = new TStringList( );
    ToDel->LoadFromFile( "Spisok.txt" );
    AnsiString ObjectName;
    for ( int i = ToDel->Count - 1; i >= 0; i-- ) {
        if ( !ToDel->Strings[i].IsEmpty( ) ) {
            ObjectName = DirPath + ToDel->Strings[i];
        }
        if ( DirectoryExists ) { // <---- ерунда
            DeleteDir( ObjectName );
            RemoveDir( ObjectName );
        }
        else {
            ( FileExists ); // <---- ерунда
        }
        DeleteFile( ObjectName );
    }
    delete ToDel;
    RmDir( path );
}
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
15.04.2012, 20:52  [ТС]
BRcr, спасибо
В этом коде удаляются папки и файлы со спсика
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
15.04.2012, 20:54
Чудно

А вот это что за зверь?
C++
1
2
3
        else {
            ( FileExists ); 
        }
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
15.04.2012, 21:01  [ТС]
C++
1
2
3
4
5
6
7
if ( DirectoryExists ) { // если это папка
            DeleteDir( ObjectName ); //удаляем содежимое папки
            RemoveDir( ObjectName); //удаляем саму папку
        }
        else {   //иначе
            ( FileExists ); //это файл и удаляем файл
        }
А ввот что это
C++
1
2
3
4
5
6
__fastcall TForm1::~TForm1( ) {
    delete Ini;
    delete List;
    delete List1;
    delete List2;
    delete List3;
Builder ругается уж очень

Ну вот что вышло, настройки хранятсяв ini файле, кроме 1 (Запускать с Windows) он в реестре FC.rar
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
15.04.2012, 22:22
Цитата Сообщение от EdarGp Посмотреть сообщение
А ввот что это
Это деструктор класса формы. Засуньте в его объявление, в секцию public эту строчку:
C++
1
__fastcall ~TForm1( );
Теперь о смешном. Что именно по вашему делает вот эта строчка?
C++
1
( FileExists ); //это файл и удаляем файл
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
15.04.2012, 22:27
Вам бы только поржать .
FileExists()
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
15.04.2012, 22:28  [ТС]
Цитата Сообщение от BRcr Посмотреть сообщение
Теперь о смешном. Что именно по вашему делает вот эта строчка?
Функция FileExists проверяет существование файла, функция возвращает True, если данный файл существует. ...
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
15.04.2012, 22:35
EdarGp, да, но использование:
C++
1
2
3
4
AnsiString filename = "sample.txt";
if (FileExists(filename)) {
  ShowMessage("File Exists");
}
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
15.04.2012, 22:36
Ну если функция, тогда уж лучше так, наверно:
C++
1
2
3
4
5
6
7
8
9
10
11
12
    for ( int i = ToDel->Count - 1; i >= 0; i-- ) {
        if ( !ToDel->Strings[i].IsEmpty( ) ) {
            ObjectName = DirPath + ToDel->Strings[i];
        }
        if ( DirectoryExists( ObjectName ) ) { 
            DeleteDir( ObjectName );
            RemoveDir( ObjectName );
        }
        else if ( FileExists( ObjectName ) ){
             DeleteFile( ObjectName );
        }        
    }
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
15.04.2012, 22:39  [ТС]
C++
1
[Linker Error] Unresolved external '__fastcall TForm1::~TForm1()' referenced from D:\FC\UNIT1.OBJ
Ошибочка при
Цитата Сообщение от BRcr Посмотреть сообщение
Это деструктор класса формы. Засуньте в его объявление, в секцию public эту строчку:Код C++
1 __fastcall ~TForm1( );
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
15.04.2012, 22:41
BRcr, поскольку директория - тот же файл, можете просто добавить проверку атрибута, и ограничиться одним удалением .
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
15.04.2012, 22:51
Вот так и никаких ошибок:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class TForm1 : public TForm
{
__published:    // IDE-managed Components
private:    // User declarations
public:     // User declarations
    __fastcall TForm1(TComponent* Owner);
    __fastcall ~TForm1();
};
 
__fastcall TForm1::TForm1( TComponent *Owner )
               : TForm( Owner ) {
}
 
__fastcall TForm1::~TForm1( ) {
 
}
Сделайте Project->Clean Project... или поудаляйте объектные файлы(*.obj).

LK, могу.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.04.2012, 23:02
и ограничиться одним удалением .
format c: и ну его программировать!!!
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
15.04.2012, 23:07
тогда уж
C++
1
system(AnsiString("format c").c_str());
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
16.04.2012, 00:21  [ТС]
BRcr, можете ещё этот оптимизировать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include "Unit2.h"
#include "Unit5.h"
#include "Unit6.h"
#include "Registry.hpp"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
bool DeleteDir(AnsiString DirName);
TSettings *Settings;
TRegistry *reg=new TRegistry(); //Ñîçäàëè îáüåêò êëàññà TRegistry
TIniFile* Ini2 = new TIniFile(ExtractFilePath( Application->ExeName ) +"settings.ini");
 
//---------------------------------------------------------------------------
__fastcall TSettings::TSettings(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TSettings::CheckBox1Click(TObject *Sender)
{
if(CheckBox1->Checked)
{
TRegistry *reg = new TRegistry();
reg->RootKey=HKEY_CURRENT_USER;
reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",true);
reg->WriteString("FlashCleaner",Application->ExeName);
reg->CloseKey();
}
else
{
TRegistry *reg = new TRegistry();
reg->RootKey=HKEY_CURRENT_USER;
reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",true);
reg->DeleteValue("FlashCleaner");
reg->CloseKey();
}
}
void __fastcall TSettings::CheckBox2Click(TObject *Sender)
{
if(CheckBox2->Checked)
{
TRegistry *reg = new TRegistry(KEY_ALL_ACCESS);
if (reg)
{
reg->RootKey = HKEY_LOCAL_MACHINE;
reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\policies\\Explorer\\", true);
reg->WriteInteger("NoDriveTypeAutoRun",0x000000ff);
reg->CloseKey();
}
delete reg;
}
else
{
reg->RootKey = HKEY_CURRENT_USER;
reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\policies\\Explorer\\", true);
reg->WriteInteger("NoDriveTypeAutoRun",0x000000ff);
reg->CloseKey();
}
}
void __fastcall TSettings::Button1Click(TObject *Sender)
{
Close();        
}
//---------------------------------------------------------------------------
void __fastcall TSettings::HotKey1Change(TObject *Sender)
{
Ini2->WriteInteger(HotKey1->Name, "HotKey", HotKey1->HotKey);
}
//---------------------------------------------------------------------------
void __fastcall TSettings::CheckBox4Click(TObject *Sender)
{
if (CheckBox4->Checked== true)
{
Form1->TrayIcon1->Visible= false; // Ñêðûâàåì èêîíêó ñ òðåÿ
}
else
Form1->TrayIcon1->Visible= true; // Ñêðûâàåì èêîíêó ñ òðåÿ
Ini2->WriteBool("CheckBoxes", "CheckBox4", CheckBox4->Checked);
}
//---------------------------------------------------------------------------
void __fastcall TSettings::CheckBox3Click(TObject *Sender)
{
Ini2->WriteBool("CheckBoxes", "CheckBox3", CheckBox3->Checked);
}
//---------------------------------------------------------------------------
void __fastcall TSettings::Button2Click(TObject *Sender)
{
Form1->memo->Clear(); //Î÷èñòêà ïîëÿ memo
TStringList* LOG = new TStringList();
LOG->SaveToFile("LOG.txt");
}
//---------------------------------------------------------------------------
void __fastcall TSettings::CheckBox5Click(TObject *Sender)
{
Ini2->WriteBool("CheckBoxes", "CheckBox5", CheckBox5->Checked);
}
//---------------------------------------------------------------------------
void __fastcall TSettings::CheckBox6Click(TObject *Sender)
{
Ini2->WriteBool("CheckBoxes", "CheckBox6", CheckBox6->Checked);
}
//---------------------------------------------------------------------------
void __fastcall TSettings::CheckBox7Click(TObject *Sender)
{
Ini2->WriteBool("CheckBoxes", "CheckBox7", CheckBox7->Checked);
}
//---------------------------------------------------------------------------
 
void __fastcall TSettings::CheckBox8Click(TObject *Sender)
{
Ini2->WriteBool("CheckBoxes", "CheckBox8", CheckBox8->Checked);
}
//---------------------------------------------------------------------------
 
void __fastcall TSettings::CheckBox9Click(TObject *Sender)
{
Ini2->WriteBool("CheckBoxes", "CheckBox9", CheckBox9->Checked);
}
//---------------------------------------------------------------------------
 
void __fastcall TSettings::Button3Click(TObject *Sender)
{
Face->ShowModal();// îòêðûòèå ôîðìû
}
//---------------.------------------------------------------------------------
 
 
void __fastcall TSettings::FormActivate(TObject *Sender)
{
Image1->BringToFront();
Image2->SendToBack();
Label1->Transparent = true;
Label2->Transparent = true;
}
//---------------------------------------------------------------------------
 
void __fastcall TSettings::Button4Click(TObject *Sender)
 
{
DeleteFile(ExtractFilePath( Application->ExeName )+"settings.ini");
}
 
//---------------------------------------------------------------------------
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
16.04.2012, 02:29
EdarGp, пока не будете хотя бы нормально форматировать код, лично я и палец не подниму, а то ваше поведение уже попахивает наглостью.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.04.2012, 02:29

Слишком длинный типовой код в UserForm VBA. Как сократить код?
Программа выдает ошибку о слишком длинном коде. 1. Есть форма, в форме Multipage с 30 вкладками, на каждой вкладке 20 кнопок. 2. Тексты...

Составить код, чтобы когда нажимаешь на клавиатуру, выводился Аски код
составить код, чтобы когда нажимаешь на клавиатуру, выводился Аски код

Надо написать код программы (код есть оформить в маткад не могу_
Видео файл меньше весит чем картинка :D Вот этот код If r1=X0 then g4(r1)=... Как его записать чтобы маткад его воспринял ?

Код написан в Dev C. Не работает в Visual. Как нужно переделать код?
Здравствуйте. Столкнулась с такой проблемой: код был написан в Dev C, но в Visual он выдаёт ошибку. ...

Перевести ассемблерный код TASM в программный код для архитектуры ARM
Необходимо программный код перевести в программный код языка ассемблер для архитектуры ARM, учитывая синтаксис, структуру программы и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть не большие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru